Learn to Code: How To Get The Most Out Of Your Treehouse account

For the last few weeks, I’ve been hunkering down to get down to something that I always wanted to learn – web development in order to build my own side projects for fun through Treehouse.  Treehouse provides a easy to approach platform, so that anyone can learn pretty much all the mainstream topics of learning to code, starting with the latest HTML/CSS standards, web development as well as iPhone and Android app development.

As a former non-technical founder and product manager, it was hard to understand how long a particular feature might take to build let alone what technology might be appropriate. It was one thing to read about stuff you’d find on HackerNews and understand what people were writing about conceptually, but it’s entirely different when you’re handcrafting your own software, hacking on your own stuff and having at least a modicum of understanding of what the hell is going on.

After combing the Treehouse forum for an answer that had been bugging me with one of their Rails modules, I stumbled upon a thread asking what’s the best way to learn on Treehouse – so this is my take on how I’ve been learning and using their platform.

1. Use the forums and ask as many questions as you need to

As you’re going through the video lectures, lots of questions will naturally arise. The forums are a community driven resource and 95% of the time, they’ll have encountered the same problem you’re encountering or at least encountered a situation similar to yours so you have a starting point of where to figure out your problem. Usually, I would spend the time to figure out the problem myself, like if a test errors out, it’s been usually a typo of my own. The instructors there are pretty responsive and answer questions within a few hours, and if your questionsn is on a weekend, they’ll have an answer ready by Monday (instructors have lives too you know… thanks Jason! ;). In any case, it’s a great way to get to know the other students through their own threads, to see how they’re progressing, which gives you encouragement that you’re not going through it alone.

Team Treehouse forum

Check out a thread I started on the Treehouse Forums

2. Blocking out time for your coding adventures

This is a tip I picked up after reading Zack Shapiro’s blog. While he has his own views on learning to code online, one of the points that resonated with me is giving yourself time to be able to learn, fail and learn again. Learning to code is no trivial pursuit.  It takes a while to wrap your brain in terms of how everything works (like MVC for instance) and to piece everything together.  Consistently dedicating time in your calendar is so important, which can mean the difference between staying in it for the long haul (this is a lifelong skill that you’re learning right?) and giving up within a few short weeks.

3. Googling stuff or referring to Stack Overflow

For those edge cases or questions that aren’t answered in the forums or simply because I’m curious, I Google it. 99.9% of your questions have already been tackled, so if you’re not able to figure a problem out within a reasonable amount of time, simply ask the internets and you’ll find your answer. This is a worthwhile habit to ingrain earlier on as developers don’t have the luxury of time to figure out problems that have already been tackled in much more elegant ways than they would have thought of themselves using boilerplate code (Twitter bootstrap).

4. To make any worthwhile progress, use Parkinson’s Law

Parkinson’s Law states that “work expands so as to fill the time available for its completion“.  Blocking out time in your schedule, (such as having a 4 hour block) to finish a stage and reviewing it is a challenging goal, but not impossible. By setting constraints for yourself, the onus is on you to get as much done as possible within the time block you’ve set for yourself.

If your concentration and focus isn’t rock solid yet, you might want to check out RescueTime.

5. Use Spaced repetition learning software

The efficacy of spaced repetition software has been written about many times already, especially for software development.  When it comes to learning code, being presented stuff you’ve learned on a regular basis can help reinforce what you’ve learned so that it’ll eventually committed to long term memory.   I use Anki flash cards software (it’s a free download) and spend a few minutes every morning to review through concepts I have a hard time understanding a concept I’ve just learned (like MVC).  If you’re too lazy to come up with questions on your own, you can copy the Treehouse quiz questions and create your own cards that way.  I You should read about Derek Sivers post about it as it’s a fascinating read.

6. Show off your work

This may be blogging or showing off your working examples that you’ve learned from Treehouse – but I find this reinforces what you’ve learned and allows you to see how you’re progressing and how far you’ve come along. It’s a great way to build momentum and will be incredibly humbling to see how far you’ve come along after you’ve created your own pieces of work :)

7. Go to meetups and connect with people at similar skill levels to you

There’s something to be said about connecting with people in real life and sharing your struggles and experiences.  Perhaps working on a beginner project together, or simply going through exercises and explaining concepts you’ve learned can help reinforce what you’re learning or give a different perspective.  While you can get by without interacting with anyone, as social creatures, I think you’re better off interacting with people who are going through the same process.

Right now there are over 75 Treehouse meetup groups around the world, so that would be one of the best ways to start.

8. Getting real life mentors

This one might be trickier.  Maybe you have friends who are developing software and can act as a mentor or maybe you don’t.  If you don’t, attend meetups where you can connect with others to see if you can cultivate friendships that way and find a mentor there.   Having someone who can call you on your own bullshit, give you feedback when necessary and encourage you to persevere are crucial to keep the momentum going.

9. Learn outside of Treehouse too!

Take the time to step outside of the Treehouse sandbox – because once you’ve learned everything at Treehouse, you’ll be exposed to different way learning and  approaching problem solving.  For instance, I felt I needed more practice when it came to Javascript, so I turned to Codecademy for extra practice.  Treehouse’s main competitor, Code School, has some pretty awesome courses too, as does TutsPlus.  Really into Rails?  Perhaps Railscast or RailsTutorial.org might fit the bill.  Want to learn pure Computer Science? There’s Udacity, Coursera and Stanford’s lectures too.

The point is, you need to mold and take ownership of your own learning. Think of Treehouse and these other “Education as a Service” platforms as the training wheels to get you up to speed in terms of the foundations of programming.  Make the learning journey your own and choose your own adventure.

Are you a Treehouse member?  What other ways are you learning to code?

  • http://twitter.com/ryancarson Ryan Carson

    Thanks for telling your readers about us! :)

    • http://www.quantifire.net/blog Will

      Hi Ryan,

      Thanks for the comment, especially coming from the Treehouse founder :)

  • P Mort

    Concerning #8…”Meetups”. This is much easier said than done, particularly when you don’t live in a larger metropolitan area. Otherwise, some solid advice all around. I strongly recommend Codecademy as a complement to Treehouse, though I can’t say the same of Code School. Was really unimpressed with their videos.

    • http://www.quantifire.net/blog Will

      Hey P Mort – Thanks for your comment! How did you find this blog post consider I posted it almost 2 weeks ago?

      Yes, that would be a challenge if you don’t live in a larger metropolitan area. I don’t have much experience with Code School as I’ve only played around with their Try Ruby, RubyBits and Try R courses – but not in depth as Treehouse so I can’t say how effective the courses are. However, it SEEMS the production quality seems pretty high.

      Even then, Treehouse isn’t perfect either and I’d go so far as play around with all of these platforms before you commit to any one education platform.

      • http://twitter.com/shawn_parker Shawn Parker

        First great article, I am a Treehouse member who signed up after hearing Ryan on Kevin Rose’s Foundation show.

        I am old programmer( Pascal dont laugh ) who has went into Networking and now wants to code for fun and profit.

        I found the virtually joining a meet up group also good. I live in Miami area but belong to a group in Minneapolis. I am allowed access to notes, slides and presentation and all member are great at answering my ” baby ” questions .

        Just some thoughts

        Shawn

        • http://www.quantifire.net/blog Will

          Thanks for reading and taking the time to comment, Shawn!

          I am an old programmer too who first touched Turing many years ago in high school lol (please don’t laugh).

          That’s a pretty good and resourceful idea if there aren’t any decent meetups that are available in your immediate area!

          I haven’t watched Foundation in a while, but thanks for reminding me.. lots of awesome people that Kevin interviews!

          Out of curiosity, what about asking those “baby” questions on Treehouse as well?

          Cheers,

          Will

    • http://www.quantifire.net/blog Will

      Hm.. I just found out that Treehouse posted my blog post on their Fb feed, so I guess that’s how you found me? :)

  • Matthew Ong

    Great article! I love what you said about Parkinson’s Law, I find that law to be true with everything from code to big essays. #9 is so true as well, as nice and fun Treehouse is to learn the basics, when I was going more in depth into php phpacademy was my go to teacher.

    Going to follow your advice and show off my progress with learning code so far :) The site I’m creating right now from scratch is http://minecraftserverland.com/