I have been interested in learning to code for quite some time now. I’ve tried a number of options ranging from just trying to hack existing code to structured learning programs and a few options in between. I am not formally trained in software, but have a technology background, mostly in project management and systems engineering.
The only thing that has seemed to stick for me has been a great service called Treehouse. Treehouse offers short videos which instruct on how to code in specific languages as well as the theory behind the programming. In addition to the videos there are regular content updates and a forum of helpful, responsive individuals who are learning as well. The collaborative aspect of the forum is one of the most powerful features of Treehouse.
Since starting Treehouse just under a year ago I have learned the following:
1. Become a Web Designer (CSS Foundations)
2. Hypertext Markup Language (HTML) Deep Dive (HTML and the Web, Global Structures, Texts, Lists, Links, Objects, Tables, Forms)
3. Build A Simple Website (HTML, CSS, Text Editors, Web Hosting, Domains, FTP)
4. Website Basics (HTML, CSS, Text Editors)
5. Objective C Basics: Fundamentals of C
6. Objective C Basics: Functional Programming in C
7. Objective C Basics: Pointers and Memory
8. Introduction to Objective-C
9. Foundation Framework
10. Advanced Objective C
In terms of languages I have achieved a basic understanding and proficiency in HTML, CSS, C and am presently working on Objective-C to include both theory and practical coding.
What makes Treehouse stickier than the other coding alternatives? Here are a few reasons from my perspective:
1. Gamification: Treehouse has an optimal blend of gamification elements. Points are awarded for successfully completing a quiz, code challenge, or section. Badges are issued for major accomplishments. You can quickly gain a sense of an individual’s proficiency by viewing their profile or points. I have often noticed the individuals who are the most helpful to me in the forums have higher points when compared to my state at the time of asking the question.
2. Code Engine: Treehouse possesses a Web-based code engine to allow for practicing coding concepts that were learned in previous lessons. The Treehouse editor and code challenge constraints can be a bit unforgiving at times, but overall it is a useful tool for reinforcing concepts.
3. Forum: One of the most useful features is the Treehouse forum. Members of the Treehouse community range in knowledge and experience and are helpful if you run into a snag in your code or are having difficulty understanding a concept. Most of the individuals answering questions within the forum are Treehouse users but there are moderators as well. The Treehouse forums feels like a safe place to discuss challenges regardless of your experience level.
Overall, Treehouse is a valuable service for learning to code.
1. Treehouse: http://teamtreehouse.com