Example: the other Sunday when I was working with Diego, I had the idea that I wanted to extend this C++ object’s void* field by having it point to a struct so I could store lots of stuff in it. Very standard. This ended up taking me a good 40 minutes to figure out, because, as it turned out, I had forgotten to allocate the space for the struct via ‘new’. Now, as a Python programmer, I’m not used to having to do this. The idea of allocating memory is abstracted in Python so you don’t have to deal with it so directly. But the point of the story is that I felt pretty dumb, because this really amounted to a mistake made by inexperienced C programmers, which I certainly am.
I’m running into the same kind of thing working through the labs for my Operating Systems class, which is taught completely in C. Of course, these things get easier with repetition, just like the concepts I struggled with when I was first learning to write code. It’s a bit of a strange feeling though, because there are some languages (esp. Python) in which I’m very comfortable with my skill level, and to be thrown back to the beginning when writing C can be jarring.
Anyway, the point of this is that I’m learning C/C++/Obj-C quite thoroughly this semester, both through working on this delicious project and my classes. Related: get excited for our game! It’s going to come out on iPhone at a time in the moderately-near future. It’ll be fun and cheap and you will buy it and play it and love it.
Also: if you’re a CS person of any skill level: follow my new link stack on Delicious! I started it to share with people the links that I’ve used and been helped by in the past. Included right now are the pages that first taught my shell scripting, Applescript, Python, and a bunch more cool stuff. I highly recommend checking out “What Every Computer Science Major Should Know” on that stack, too – it’s a helpful benchmark I’ve been using as I go through school.
Follow my stack! Get pumped for our game! Talk to you later!