In this article, I would like to share some resources that I have used to teach myself how to code.
These are resources that cover more than one topic and I keep coming back to them because they are so good.
Even if you have no experience whatsoever you can get started with (almost) any of the resources covered in this
article. However, I highly recommend learning the fundamentals first from Introduction to Computer Science at Harvard,
which is where I started. I discuss this course in more detail in
Learning material – software development, where I share the learning path I took.
Udacity is awesome. Their course catalogue includes intro to programming, Android, iOS, web development,
artificial intelligence and more. The first course I completed at Udacity was
Android Development for Beginners
and I really enjoyed it. I have also completed some of their more advanced Android and iOS courses,
which were at a really high standard.
Online courses from universities
edX’s mission is ‘quality education for everyone, everywhere’ and offers free courses from
leading universities such as Harvard and MIT. They have a wide range topics available in their
list of computer science courses.
This is where I discovered Introduction to Computer Science at Harvard
and where my interest in taking online courses started.
Online courses from universities
Coursera is similar to edX in that they offer courses from universities.
Founded by two computer scientists from Stanford there are many courses on offer to help you learn to code
and cover a wide range of topics. Coursera’s catalogue includes
Learning How to Learn
which at the time of writing is number 1 on the list of the
50 most popular MOOCS of all time.
Head First Labs
Head First Labs has a large catalogue of really good books
which cover a wide range of topics from a variety experts.
The style of the books is quite relaxed,
which makes them more fun to read. I have completed Head First Java, Head First Design Patterns and
Free Code Camp
Tutorials and projects
Free Code Camp has a really supportive community and is constantly growing.
Here you can learn about front and backend web development and they appear to have plans to expand their content
in the near future. I started using Free Code Camp in mid 2017 and have completed some of their
which I found to be very helpful.
Khan Academy is amazing.
In late 2015 I was thinking of starting a degree in computer science (which I later decided was not necessary).
In order to prepare for it, I took Differential Calculus and
Integral Calculus. Both courses were awesome.
I have also completed
Intro to SQL.
This helped me gain enough understanding of databases and SQL syntax for my first project,
which was a web application for the public sector (and had lots of data!)
If you are looking for a free education in computer science,
the OSS University has a curriculum that will probably suit your needs.
It is constantly being updated and improved upon and already has a huge following.
Community and Podcast
According to their website,
CodeNewbie is “the most supportive community of programmers and people learning to code.”
I would recommend listening to their podcast and signing up for their newsletter
as there is a lot of content for beginners.
New Think Tank
New Think Tank is hosted by Derek Banas and offers his expertise on many topics.
I first discovered him when I took his
design patterns tutorial,
which really helped me consolidate my knowledge on that topic.
thenewboston is similar to New Think Tank in that there is a wide range of topics to learn from another smart host,
Bucky Roberts. I first discovered the website when I took his
node.js for beginners tutorial.
Traversy Media offers free and paid tutorials in web development.
The source code for this website can be found on