So you want to learn about programming (part 1)

Part1: I’ve got some tips. Start here!

Mountain view from the bottom

I ‘member when I was way over there. I tried to start alone, learned my way around the Internet’s resources and many of its tentacles that suck you into procrastination, and one of the biggest challenges with self-guided learning is telling whether a resource is reliable, if it’s teaching you good patterns, and if it’s worth your time and money.

This is the first post in my tourists guide to the amazingly large area that is “software development”. I’m going to detail tools and platforms where I think you should invest your time. Sometimes it might seem like taking a detour, and you’ll have to learn about things you really don’t think make sense, but I’m convinced that learning how the big guys do it at a very early stage is a good way to avoid bad habits that settle in when you begin to feel comfortable writing code.

First stop: resources

How much commitment are you going to put in this anyway? Is this going to be like that one time when you said you didn’t need to go to the gym and you were going to exercise without spending a dime?

This part is sort of a reality check. Depending on your personality, you might want to commit in a different way: finantially. I think the gym comparison is pretty valid — when people sign up for a gym and they don’t really feel like going, sometimes they keep attending because they’re paying for it. There are lots of free resources out there, but paid ones are ultimately what will allow you to progress faster. You need an extra dose of motivation to be able to succeed with the free resources, but I don’t want to scare you off. Developers treasure free resources the most. Stack Overflow is a good example of this, as it is a community driven Q&A website, and everybody knows and uses it!

CodeSchool

This was the first paid online school I ever enrolled in, and I don’t believe I could have chosen much better than this. Those guys are absolutely incredible and produce top notch courses, with a significant part of them targeted for beginners. Their interface is usually what locks people in, since you watch classes and then practice what you learned at the end of each lesson, which is a treat for actually remembering things some time later after you’ve learned.

Here’s a summary of what they teach divided by difficulty and platform, as of January 2017:

  • Beginner, front-end: HTML, CSS, JavaScript.
  • Beginner, back-end: PHP, Python, Ruby on Rails, .NET, NodeJS
  • Intermediate, front-end: SASS, Bootstrap, Web design, JS Frameworks
  • Intermediate, back-end: Ruby on Rails, Python, NodeJS
  • Advanced, front-end: HTML emails, Web animations, JS Frameworks

CodeSchool goes a step further and divides their courses into paths, which is perfect for self-paced learners who don’t really know what they should be doing next. If you want to learn how to build websites and web applications you should start with their HTML/CSS path, and then move on to the JavaScript path.

You can get a special price for college students of 19$/month if you request it via email to their support team.

Pluralsight

Pluralsight has been around for a while and they also have lots of students. At some point, they looked at CodeSchool and thought they had a really good idea and they probably wanted to use some of their ideas and talent, so they bought CodeSchool. This should give you an idea not only of its success, but also of how things ended up given that CodeSchool still exists independently of PluralSight.

While CodeSchool specializes in software development, Pluralsight has courses on design, 3D modelling, management and other areas non related to programming. Their course authors are also very good, and you can find pretty famous people among them (e.g. Troy Hunt, the creator of haveibeenpwnd). They lack the interactive interface offered at CodeSchool, but they’ve rolled out a feature which lets you take tests to measure your knowledge for some language paths.

I can’t really list what PluralSight teaches because they have tons of courses, but you must also take into account that they are slightly more expensive at 29$/month. Take into account that PluralSight is a place where you can also go past the beginner and initiate levels in most areas that they teach. CodeSchool has courses on some languages for which they offer only introductory courses, which don’t allow really teach you much if you want to dive deeper.

Good news: not only do they offer temporary trials so you can see if you like it, you can get a 90-day free period thanks to the Microsoft Imagine program, which requires (again) an account registered for college students.

TL;DR

If you want the best learning experience, be prepared to drop some dollars and invest in yourself. Try CodeSchool or PluralSight. I can personally vouch for both these resources, and that’s why I’m not listing any more. You’ll have to look around for the best options if you can’t afford it or if you don’t want to spend money, but if you are an extremely motivated individual I’m sure you’ll push through it.