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. 🙂
Hahaha your dropping your managed memory for a scary unmanaged lanuage….cool I have gone through the teach yourself c++ and got way to bored for the same reasons weeeeeeeee
You will enjoy working with the STL and generic programming in general. Working with an unmanaged resource exposes a lot more details during app. development, but provides a lot more control. In large-scale, production development, Bounds Checker and Purify are your friends.
I came to AS programming after seven years of C++ development. I’ll venture to say that going the other way around, you will have more fun. Good luck with the course!
Heh, I’ve been taking C/C++ over the last few months too, basically just as a personal project… while I had some C background from learning it 10 years ago, man, it’s easy to see the difference between a high level language like AS when compared to C now. I spent two days learning how to do a proper concatenation. But hey, it’s fun. 🙂
I also envy the teacher you have. In my college degree that I’m also finally taking, many courses/classes have their quality dragged down because the teacher molds his/her talk to the lesser common denominator, trying to reach the dumb crowd instead of just letting them play catchup for themselves. It’s pretty frustrating.
although I’m one of those people who weren’t around when you caught the bug, I have a similar story. I taught myself the basics of c++ half a dozen times before I gave up on the harder stuff. Then I went on to other languages before really getting the hang of things with actionscript. Now, I too am starting a course in c++, where the elementary material seems to be taking a little long.
good luck with it
Man, u said it so well, i had the same road into computer/programming, first i started on Z80, in 1993, then i went to K6-2-3DNOW 350 MHZ (wowowow) :p, it was back in 1998, from 1996 i started learning C (DOS) then moved on to C++, i caught the Java wave, but i quit it very fast(because it was always too slow for my computer), then i discovered the marvel of flash 4 -> 5 -> 6 -> 7 -> 8 and flash remoting, and flash comm server, and osflash.org … marvelous.
But a few months ago i went back to C++ to program a directshow filter to use as a webcam in my flash application, to get live flash video from an ip web cammera. I had no clue on directx programming, little clue of win32 api (i knew how to restart a computer using win32 api :P, in pascal for windows -> BPW), but steadly, with the help of the internet, i managed to get somewhere.
Do not get scared of C++, its a rough language, but the problem with the language is not the language itself, the problems stay in its API’s.
For ex C/C++ are always blamed about memory management, u have great memory management if you use APR from apache fsf as a memory manager, i just loved it, the same with QT (even though only on linux), or even VCL (from linux).
I hope, if u do windows programming, dont get scared by the many types of string types or bool types 😛 or the strange functions … just learn and discover it, the reward is high knowledge and dazzling applications speed and ultimate control.
It’s funny how so many of us have the same story! I too became enamored with computers and programming in the 80s on the TI99-4A, but then I decided to go for a liberal arts degree in college. Once I got a job “in the industry”, I spent the second half of the 90s trying to learn programming from various books. (I too struggled with and finally gave up on Windows programming!) I never got too far until I started doing Flash. After about a year of studying intensely on my own, I was able to convince my boss to promote me to a programming position because I knew Flash better than any of the other programmers at the company.
I’ve been taking CS classes on the side as well, and I’m about 3 classes away from finishing a 2nd Bachelors Degree. I enjoy working with C and C++ because you can have direct control over just about every aspect of your OS. But of course, this presents numerous challenges that managed languages don’t. Ultimately, though, what I’ve really gotten out of going back to school is the ability to solve computer problems at a conceptual level, regardless of what language I’m using.