We won't deny it: the first step into the world of programming is the hardest. Learning to program requires much more than picking a language, but if there's one advantage, it's this: the sheer amount of free resources available is enormous. Whether you want to start at a basic, intermediate, or advanced level, the Web is there to help, and at NeoTeo we've put together a selection of portals to serve as reference.

I admit I've been asked this more than once. I want to learn to program, where do I start? Basically, the first thing you need is fire, and by that I mean the kind of fire that becomes determination and ambition. The idea of programming shares similarities with artistic careers. If the last thing you think about before falling asleep and the first thing that comes to mind when you wake up is "that," let's say you're on the right path. Learning to program can start as curiosity, but sooner or later it must turn into desire. Fortunately, we're living in an extraordinary era for learning languages. Big companies encourage the creation of free services and courses aimed at teaching them, and the reason is simple: there aren't enough programmers. Traditional education channels refuse to incorporate programming as a subject, and the market trend speaks for itself: on average, there will be one qualified programmer for every three job openings in the next ten years.

Online Programming Courses
Programming

Scratch (Beginner level)

Trying to be a programmer means thinking like one, and that's a detail no beginner can escape. That's why our first stop is Scratch, a visual language developed by the MIT Media Lab. Its mechanics are similar to playing with Lego bricks: each new piece adds an effect to the whole, and making mistakes is definitely welcome. Scratch targets kids as its main audience, but if you know absolutely nothing about programming, it never hurts to take a look.

Online Programming Courses
A relatively advanced example of Scratch. Don't let it fool you: it's very simple to master.

CodeCombat and Code Kingdoms (Intermediate level)

If you think Scratch is too simple, there's an alternative: learn by playing. To do that, we must mention two high-quality projects: CodeCombat and Code Kingdoms. One advantage of these systems is that the rawness of code stops being intimidating and becomes a fundamental aspect of progressing through the game. CodeCombat has the advantage of offering several languages (Lua is very interesting for those thinking about making games), while Code Kingdoms focuses on JavaScript, the language that powers the Web today.

Online Programming Courses
CodeCombat is an extraordinary platform to learn by playing, and it now supports more languages.
Online Programming Courses
Code Kingdoms does an excellent job of communicating the basics of JavaScript.

Codecademy and Code School (Advanced level)

Finally, when the stage of exploring and playing is behind you, you'll need to dive into slightly more advanced portals, and two that deserve a mention are Codecademy and Code School. In both cases, the experience is formal, which makes sense given that the core idea behind these sites is to achieve relatively quick employment. The most important difference between Codecademy and Code School is that Codecademy offers free courses, while at Code School you'll have to pay for the more complex sessions.

Online Programming Courses
Codecademy has been recognized worldwide for its free sessions and coverage of the most popular languages. It deserves your time.
Online Programming Courses
Most Code School courses require a subscription, but its basic account offers material at no cost.

Want more? Don't worry, we've done the homework. The list below has been on our site for a while, but it's still perfectly valid for considering other options besides the ones we've presented here. Remember: none of these tools, no matter how complete, can give you the fire or spark you need to keep coming back to the browser and absorbing the exercises. Who knows? Maybe in a few months you'll become our boss. Good luck!

Online Programming Courses
Programming

More courses: