After watching a video I became inspired to make a blog post after realizing how developers actually become developers.
I know from personal experience that when I decided to start developing I was both discouraged by my parents and family members but also fellow developers, which is really disappointing. My family said that I should focus on Middle/High school then start focusing on College where I can study software engineering and have all the resources in the world. I didn’t realize it at the time but now I am rather shocked to see that in my past, to see that my own family was so resistant to letting me learn how computers operate and how to program.
Regardless of the resistant family I pressed on, when I was younger I found I had a lot of free time as I had learned most of what was in school already from my experience with computers. I began by trying to learn how different things work, such as keygens (serial key generators). Keygens I always found an interesting art form and I also found it interesting that they managed to make these small programs which serve one purpose but yet they have graphics that game makers are working on along with music while staying under 500 kilobytes in size. So I later learned how to reverse engineer and that taught me a lot that I still use to this day and sometimes I come back to RE just to understand some C/C++ concepts (like bitflags). This critical skill was both a borderline illegal skill to have because of how most REs are software crackers and how keygens are typically illegal so when I told my parents that I cracked a program, they weren’t exactly thrilled.
I later got bored with being a reverse engineer and moved on to hacking where I learned nothing really but when I decided to work on a project with my friend Lordofsraam on IRC, Navn, that’s when things started taking off. I know I am rambling so I hope you’re still with me here, I learned C++ off Navn and I am still learning from that project even as I am making this post. Navn being the first project I ever started, I did a lot of nasty experiments on it to learn how the C/C++ language works. I have learned things that some developers may take years to solve (see glibc error) and don’t learn in college but when I ask for help from other fellow developers who work on similar projects or have viewed my code, they suddenly hate my code and myself. Why? well because I have learned everything from Navn, which is based on Anope, and Navn has all kinds of nasties I would like to keep (like setjmp). When I asked for help from other IRC developers, Atheme for example, I was met with both a strong dislike because it was C++ and not C but also because it was based on Anope, when they finally got passed their ego and looked at my code, they look for 5 minutes and instead of trying to say what I need to improve on or what I am doing wrong, they let their ego get to them and start saying how horrible it all is. I understand my code is crap, that’s why I am asking you to look at it, not criticize and ridicule me over the fact that it’s crap code.
I have learned everything I know from experience, experiments, and google. I don’t think this should be how people learn how to develop because that just makes it painful to learn and discourages the general public from learning. I think that programming and development should be taught at a young age, middle school and up should offer basic, introductory programming classes which make programming fun. My friend Lordofsraam said that he thought programming involved a lot of math and a lot of difficult to understand code but it’s really whatever project you’re working on (I have proven that programming doesn’t need math since I suck massively at math).
If you have survived my post, I thank you very much for reading it and I hope that it all made sense and had minimal ramble. :)
I really think that the world needs to be less resistive to very young and even just young software developers, many can learn great things and it could become their future job!
And its in C++ (I bet we know where this is going), after a few hours finding Borland free command line tools out on the internet (which was surprisingly hard) I installed the editor my school uses (ProjectFUN) and my teacher asked me to “make a mod for your game”. Well the mod is proving to be mildly hard since most of the ProjectFUN code is actually C code, and some of its functions are retardedly coded.. (who does Trace4() and that means the console output takes 4 args with a message, the biggest trace you can do is 9 args, my traces? 384719469816 args! fuck yeah custom functions!) As for the game its self, I figured out the RandInt() function that comes with ProjectFUN is actually broken.. which I laughed at.. ended up making my own.. I guess I’ll be writing my own small library this semester XD
I already know that with the code I have now my teacher will be flabbergasted at my skill.. I imported my value_cast function I made a few months ago and uses it, she reviews the code so she’s probably going to be clueless as to what it does and how it works.. I did my best to explain it but I doubt I can explain that haha
I have also been trying to stick to C++ style casting instead of C-style casting since its a bad habit and (from what I read) just runs through all casting operators instead of the one you need, which is rather inefficient. So I know my teacher is going to be wondering what that’s all about.. seeing static_cast everywhere wondering what I am doing with it.
This is going to be a fun semester XD