To help explain the idea behind this endeavor, some history might be needed. I went a large chunk of my life without immediate access to a PC. My family had a PC for a couple of years around the Windows ‘95 era, but when the hardware went south it was never replaced. This would mean the only exposure I had to computers from late elementary school through graduation from high school was only at school during times like typing class. This adds up to basically the most influential decade of my life was all but computer-less. This is not to say that my early experiences with my family PC didn’t stick with me. When I was re-familiarized with a Windows Vista computer of my very own once I finally started college (~3 years out of high school) it was a bit like I had never left. But the advanced techniques were something I had never been able to get around to. So at the crisp young age of 21 I was reminded of how much I loved computers and how badly I wanted to be able to do everything there is to do with one. I also quickly realized I did not have the background needed to do that anytime soon. Another problem came with the fact that I had chosen to be a Mechanical Engineer and not a Software Engineer. Sure I learned MatLab my sophomore year, and therefore have a base for coding logic, but MatLab is no C++.
That’s how we come to the true objective of this endeavor. As stated, I did learn MatLab as part of my college curriculum but, as some of you may already know, MatLab is a “higher level” language and is therefore not very portable. Having repeatedly heard “If you can learn C/C++, you can learn any language”, I plan to teach myself C++ and see what happens from there. Being that another of my interests is robotics and automation, I may end up going even deeper into assembly languages but that remains to be seen. Right now I have decided that I want to learn C++ for multiple reasons. Instead of spoiling things by outlining those reasons here, I will be presenting different projects as I progress that should provide obvious insights into some of my reasons. At this point, this could be an out of date directive so there could be a python project or two throughout my postings, but for the most part I will be sticking to the C++ guns.
I will provide some spoilers on how I plan to go about this. Just to make it extra fun, I plan to write my program Vim on Linux and compile using G++ and make. That reminds me, there might be a couple of Linux posts as I learn some of the more advanced secrets in Linux. Short story on why I started using Linux: Windows Vista. And all that stuff I said earlier. But mostly Vista. But back to how I’ll be going about this: that’s right, I do not plan on using a premade IDE. I would like to think that the limited help provided by the Linux built-in compiler (G/G++) will make me a stronger, more attentive coder. Nobody likes debugging. Let alone for an amount of time measured in hours. Another goal to is to create code that is as portable as possible. That really should be a given these days anyway. I have found quite a bit of resources online as far as textbooks and coursework goes. I will be mostly working from the college coursework uploaded by MIT and this resource http://www.cplusplus.com/doc/tutorial/. I do have a couple of actual paper textbooks that I’ve found at library sales and the like, but those will be mostly for reference and light reading away from the computer. In order to feel like I’ve neared accomplishing my goal I want to have a Finite Element Analysis program with a working graphical interface and graphing capabilities. Yes, a tall order from C++. Let alone from a beginner to C++. I didn’t say I was going to be done this year. I will also probably be actually using the github account I setup years ago….