As I’ve mentioned here before, I’ve been taking some courses over the last year or two, chipping away at a degree. I finally made it through all the prerequisites and last week started my first hard core programming class, “Programming C++”.
Now, I could say that I’ve been programming since the early 80’s or maybe even as far back as 1979 when I’d go into Sears and type in infinite loops of “Keith is Great!” on the display model TI-99. (Ha! longer than most of you kids have been alive!)
But really, I caught the programming bug in 1986 when I got my hands on a Commodore 128. Since then I’ve used BASIC, C, C++, C#, Objective-C, Pascal, Perl, Python, PHP, Processing, Java, JavaScript, Assembly, Lingo, and maybe a few others (like that ActionScript stuff). Most have been just dabbling, but I’d say I’ve made at least one really cool program in more than half of them.
I actually tried to teach myself C++ a few times in the 90’s. I worked through a couple basic books on it, with a good basic understanding, and then jumped straight into Windows programing, gave myself a nasty headache and quit. Yeah, went through that whole cycle a couple of times and gave up on programming all together, til I discovered Flash in ‘99. 🙂
So while I’m no expert in C++, more than 90 percent of it is old hat. However, the devil is in the details. I could skim past the section on if statements, for example, as they are nearly identical to what I use every day in ActionScript. But I might miss that little point about how variables are scoped to blocks, so if I declare a variable inside an if statement or any other bracketed block, it exists only in that block. Could be important some day.
Overall though, I’m enjoying it. Did two courses so far. We are whizzing through the first few weeks as a review of stuff you are supposed to know already, which works out pretty well for me. The first three weeks will cover data types, operators, stream input and output, libraries, typecasting, all kinds of conditionals and loops, functions and arrays. All stuff I wouldn’t want to spend huge amounts of time on, but is worth a check through to see what’s different that the languages I use more often. After that we are in to structures, classes, pointers, heavier OOP stuff, STL, linked lists and recursion. Pretty comprehensive, I’d say.
My professor definitely knows her stuff and is pretty tough on us, which is to say that she expects us to have our prerequisites done, and understand new concepts the first time she explains them. No handholding. If you are having problems with something, you are expected to put in the time to figure it out and get back on track. I like that. A lot. Most of the courses I’ve done so far have been dragged down to the level of the slowest student, which is excruciating for anyone at a higher level. In this case, she was telling some students, on the first day of class, that they should probably consider quitting, as they weren’t ready for the course. I wanted to hug her. 🙂