For a few years I’ve been wanting to learn how to code. After quite a few takes it seems like I finally started understanding how programming works.
About 7-8 years ago, I ordered Aaron Hillegass’ Cocoa Programming for Mac OS X book. I picked it up when I put it in a carton box when we moved to a new house. Despite forum members and reviews saying it’s a really good book to start programming, it unfortunately didn’t grab me.
Then, almost 2 years ago, Twitterrific developer Craig Hockenberry wrote a book on how to code for iOS. He describes how to code - and market - a flashlight app. Designers and developers alike tweeted it was a great book. Seemed like the ideal book for me: Since I’ve had an iPhone, I started coming up with a bunch of app ideas but didn’t have the skills to code them, meaning I’d have to look for a developer who’d commit his free time bla-bla-bla hard to find.
I had coded a little ActionScript before so I reckoned that it would be an OK foundation to start coding for iOS. My hopes were demolished when after Hockenberry showed a little block of Objective-C code with a ‘for loop’ in it. He wrote, “In this contrived example, it’s easy to see you’re checking for even and odd values in a loop that executes 10 times.” Noticed the word ‘easy’? Yeah. I didn’t understand any of that code because I’d never seen a ‘for loop’ before. I quit.
When Codecademy’s Code Year launched in December ‘11, I thought: if now isn’t the time, I might just never do it. I immediately signed up. The first week of 2012 I followed the instructions of Code Year but haven’t really done anything with it since then. But then Benjamin De Cock happened:
What’s the best book / online tutorial for an absolute noobie like me to learn iOS development? — Benjamin De Cock (@bdc)Jun 27, 2012
This was last week. One of the responses he received was to give Treehouse (ref.) a try. I’ve visited the site before but the price was a bit steep: $ 25 a month.
He tweeted a few hours later that the Treehouse development training videos were the best he’d ever watched, I dug deeper into Treehouse and saw on their Twitter account that they have student discounts, although their site doesn’t mention it. Instead of paying $25 a month, you’d only pay $9 a month. Huge win. I emailed them a picture of my college card and received a URL to sign up for a student account, and another URL to a closed Treehouse Facebook group which they use as a forum.
Just watched about 10 iOS development training videos by @paradoxed on @treehouse. Those are by far the best tutorials I’ve ever seen. — Benjamin De Cock (@bdc)Jun 27, 2012
if/else/else if statements, loops, variables, etc. For the first time, I really started to understand how code worked.
What Treehouse taught me is the best thing I’ve ever learned about myself. Clearly the best way for me to learn something is to see someone do it, recreate that, experiment with it by changing values (and rules) a little, and see what the results are. This applies to most tutorials, whether it be a Photoshop or programming tutorial. I reckon I can’t be the only one.
What’s rather unique and brilliant about Treehouse is it presents you with a quiz where it asks you a few tough multiple-choice questions about the videos you’ve just watched to see if you understood the material. Manage to answer 5 answers in a row correctly? You unlock the next ‘adventure’. Sometimes you’ll get a funny video as a surprise. Amazing.
At times I’d just re-watch a tutorial video because it turned out I didn’t really understand the material as well as I thought. Re-taking the quiz, it went much better. Really, this is how online learning should be. Validation is key.
I’m still learning and still don’t really know if development is something I should be focusing on. I felt it was time to learn something new again. Treehouse is perfect for that. Because every morning you ask yourself, ‘What do I want to learn today?’ Treehouse will teach you.
Thanks to Treehouse and Codecademy, I now understand Hockenberry’s ‘for loop,’ and know how to:
console.log("print things in the console! And more, of course. ;-)")