It is a little more than a year since the New York mayor announced his resolution to learn programming through Codecademy. The frenzy to learn programming and the enthusiasm shown by companies to cater to that frenzy has almost reached its crescendo now – what with the availability of so many services that you can no longer count with your fingers!
There are plenty of resources, alright. But, as beginners, are people confident about where to start and/or how to land that much dreamed about software job or how to build the next golden iphone app?
I was a beginner in programming once (a learner still) and I can vouch for one thing – learning to code is a pleasant experience. The caveat is that if you start by biting more than you can chew, you are more likely to give up without ever experiencing the joy of creating something.
This post compares two services with different approaches to teaching beginners – Teamtreehouse and Codelearn. The idea is to help readers make an informed decision about choosing the learning tool that fits their needs right.
Who is it meant for
“From zero experience to job-ready.The extensive Treehouse library of step-by-step video courses and training exercises will give you a wide range of competitive, in-demand technology skills that will help you land your next dream job or build your startup idea. No experience? No problem!”
As their landing page says, Treehouse caters to the very absolute beginners. They take you through a series of simple videos explaining even the most basic details required to get started with web programming. It is a great starting point if you
- have no introduction to HTML or CSS
- have never really used linux commands or your terminal or a text editor
- don’t know the difference between a client or a server
- don’t know the difference between a language and a framework
“We help you start from the basics of Rails and general aspects of making a web app. Whether you’re completely new or coming from another language, we have something for you!”
Codelearn on the other hand, caters to a more aware audience. ‘Whether you are completely new’ – is ambiguous for the reason that they probably mean ‘new to Rails’ and not new to the concepts related to programming itself. Codelearn is a great start if
- you are familiar with HTML and CSS
- you have some idea about using linux commands from the terminal
- understand the difference between a language and a framework
- understand the concepts of Database, MVC, Client and Server.
Content – Structure and Quality of production
They have absolutely lovely videos (very professional production quality) with carefully crafted script that suits the audience they are aiming at. Videos take beginners through baby steps with clear instructions. They also provide viewers with the transcript of videos and an option to download. The links relevant to the discussion in that video are presented below for quick reference.
It makes learning quite easy for beginners – they have broken their course material down to such easily digestible pieces that it is tough to get bogged down during the learning phase. Though it looks like a lot of material to consume at first glance, once you start, it is a very smooth ride. No video is more than a few minutes.
Here’s a course that will help in building a static website (designed to your requirements) and will help in hosting it.
Here’s what it is going to look like
In Codelaern, though the idea of building a web app in 5 quick steps sounds enticing, it is actually much more difficult to consume because of the sheer heaviness of what is being discussed in every stage. Whereas it is not particularly heavy for somebody with even a little experience in another language, it can involve a bit of back and forth of googling, reading and understanding if this is the first ever app you are writing.
It would be easier if Codelearn presented learners with quick reference links for prior/further reading in each lesson to better understand the topic discussed in that stage.
Code Challenges / Quizzes
This is one area where both of them could do better – the way they handle errors in quizzes.
I would absolutely appreciate some hints or clues to get past my errors; else it can be very frustrating.
At the cost of sounding dramatic, I can say that the inability to quickly get past bumps like these can act as ‘give up’ triggers for beginners. Very few users come with a rock-solid resolution to grok everything presented. For most, it is their first attempt at trying something new; an attempt at evaluating their abilities. If the software is accommodating enough, it can help learners get past these. Else they’ll end up as frustrated users.
Approach – Video Vs Environment in Browser
The one feature that is absolutely awesome about Codelearn is their technology that brings the development environment to your browser. While I have to go through long videos in Treehouse trying to set up Rails in my local machine (which is a major deterrent for learners) I could already get my hands dirty in Codelarn by generating a controller and feeling the Rails magic right from my browser.
Codelearn is the right choice if you still consider yourself a beginner in web but have some understanding of the general programming concepts. The ‘Installation’ phase can be gruelling for a beginner and the challenges there inspite of helpful videos can be unnerving. The Codelearn team totally gets it and it is great that one has the opportunity to experience the building of an app without all the setup hassle.
Learning to build – Active Vs Passive
Codelearn has a very active – get your hands dirty – approach to learning while Treehouse is passive. Passive because one can go through all the videos and quizzes without writing much code.
One of the important advantages of using the ‘active’ approach in teaching is the ability to help students learn the art of debugging – using the console, going through logs and understanding error messages – while they are at it.
Codelearn has a significant advantage as a learning tool because they have the above paradigm baked into their offering. It would be absolutely helpful if they use their edge to help students acquire some debugging skills instead of letting them run to Google.
What is next?
Self learning in the context of programming is ever evolving. While these tools are no doubt striving to replace classroom learning they are yet to reach a point where they can be considered silver-bullet solutions for self learning. It is a safe bet to say these services are headed in the right direction and I am looking forward to see the ‘learning paradigm’ unfold in the next few years while I continue evaluating more services in this space.
About the author
Nithya is a freelance writer; a startuper and a hobby programmer. With her experience in founding Muziboo and SupportBee, she currently helps start-ups with their content strategy and execution. She can be contacted at firstname.lastname@example.org