As I’m sure many of you are aware, I have a love-hate relationship with programming. Namely, I love the idea of being able to put together custom solutions to my problems, or (dare I say it) write my own games, but I find that actual process of learning to program simply drives me bonkers, and falls through my brain like water through a sieve. Every few months or so, I go through my increasingly large collection of technical and programming books, and take another stab at learning a programming language. “This time, it’ll be different. This time, it’ll stick!”
Only it doesn’t. I took Logo in 4th and 5th grade (even went to a summer camp for it), TrueBASIC my freshman year of high school, Introduction to Object Oriented Programming using C++ my sophomore year, PASCAL my junior year, and then a course in Visual BASIC at a community college after graduating high school. And that’s just formal courses. I’ve got piles of books on learning C, Objective C, Java, even PHP that I’ve either slogged through or started to, and virtually none of the practicum has stuck.
There is a rhyme to this rant, however. It comes down to learning styles. Different people learn in different ways, and some ways are simply more effective than others. Now, in my experience, the most effective method I’ve found for retaining new information is through synthesis and participation, and that’s simply not happening in rote situations like books and most of the programming classes I’ve taken. So, my idea is this:
I’m going to blog the whole damn thing. As I go through the books and exercises and programming attempts, I’m going to write about it and post it here, in a new “Code” category on the blog. It will help me think about and restate the things I’m trying to learn, as well as hopefully serving as a helpful resource for others trying to learn. I’m hoping to start this task on Monday, as that will give me a few days to get things set up on the site and otherwise (I’m installing Xcode 2.3 as we speak). My focus (unless one of you convince me otherwise) is on learning Objective-C, so if anyone has any suggestions on books, sites, articles, et cetera, please post them here or IM me. Also, those of you out there who are gurus on the subject, if you’re willing to help me through pitfalls I might run into, it would definitely be appreciated.
For reference, the books I plan to use/reference:
Programming in Objective-C by Stephen Kochan
Cocoa Programming for Mac OS X by Aaron Hillegass
Core Mac OS X and Unix Programming by Mark Dalrymple and Aaron Hillegass
The Mac Xcode 2 Book by Michael Cohen and Dennis Cohen
Good luck! I’ve always found having a definite project goal is useful when learning new stuff (especially stuff that doesn’t want to stick!)
Hey, thanks a bunch for the advice and well wishes, and welcome to the site. You’re absolutely right, it makes the most sense to have some projects to work towards, and I’ve got a few that are real doozies if my prior experience is any indication. Things like writing a role playing game engine, a MUD, and some image redaction software have been high on my list of wants for a while now, and I think once I get some basics under my belt, I think those’ll give me some nice direction to work towards. :)
Try a smaller game then a mud at first. Something like battleship maybe.
The Aaron Hillegass book worked for me, so definitely give it a try. I have also heard good things about “Step into Xcode” (or maybe it was dive in?).
And if you give up on Cocoa, check out Inform for writing text adventures. Less programmy, but you do at least get to make text adventures.