When I was studying graphic design at the Academy of Fine Arts I was introduced to programming by one of my teachers. From that moment on I developed a passion for it but my studies were more focused on graphic design (I wrote a post about the benefits of being a web developer with a graphic design background). So, I decided to dedicate some of my free time to learning programming from various websites that were offering online courses.

This was a couple of years ago and, as for today, the number of websites offering online courses has tripled. I am still subscribed to some of them and I really love how they are always kept up to date. Some require a monthly (or yearly) subscription, while others let you offer the option to buy individual courses.

Below is a list of the top 3 websites to learn programming. My colleague Sam also wrote a blog post that gives an insight into web development and all the information that you need if you want to become one.

TreeHouse: this is, in my opinion, one of the best websites to learn programming. It offers both project-oriented and language-oriented courses, so it’s perfect for a novice programmer with a planned purpose or for anyone looking to learn a specific programming language. Every course has its own teacher and, after a video or two, you can practice yourself with exercises and quizzes. There is always an interactive workspace available that you can launch to follow along with the teacher and to experiment with the code yourself.
What I really love are tracks. You can follow a track and stick to it until completion. Tracks usually start from the basic concepts of the language to the more advanced and complex ones.

The basic account costs $25/mo. The pro account costs $49/mo and includes conference videos, bonus content and the ability to download the videos. There is also a Techdegree account which costs $199/mo and gives you Treehouse Certification to showcase on your resume, personalised feedback on your code and one-on-one video mentoring sessions with a certified Treehouse Mentor.

DIFFICULTY: easy – intermediate – hard
PRICE: basic $25/mo, pro $49/mo or techdegree $199/mo


CodeCademy: this is the first site that I have used to learn the basics of programming. The clean interface helps you find the right course for you. Upon choosing a course, the lesson will start and you will receive textual instructions on the left panel while you will write your code on the right panel. In case you make a mistake, you will be warned and a hint will be provided. Codecademy is free but they recently added a PRO version, which costs $19.99 monthly. This includes a personalised learning plan, access to quizzes, real world projects and help from advisors.

DIFFICULTY: easy – intermediate
PRICE: free, pro $19,99/mo


Udemy: the first thing that you will notice about Udemy is the huge amount of courses available (not only about programming!). You really can find anything that you need. The only downside is that you will need to individually buy each course. Before you buy it, I strongly suggest that you read the reviews from people who have taken the course.
On the other hand, what is really great, is that most of the time there are huge discounts on the courses (from 30% to 70% off during promotional periods). Once you buy it, the course will be yours forever and you can access it at any time.

DIFFICULTY: easy – intermediate – hard
PRICE: each course has his own price


Don’t be intimidated from all of the names and concepts:
, Css and Javascript (don’t confuse this with Java) are the core basics if you aim to be a front-end developer.
Php, Ruby and Python are good to learn if you want to become a back-end developer.
Java, Android and IOS are the courses for you if you want to focus on mobile/app development.