For about the first 8 months of my time coding I was teaching myself from online resources. While I did pay for a few things (a few months of Team Treehouse membership and a handful of Udemy courses), most of the resources I used were completely free. Below is a list of most of the things I’ve used to get me feeling confident with the basics of several programming languages and concepts.

And for everything on the list below, if you’re stuck on something, always check the documentation! Reading documentation is a skill (one that I’m definitely still working on!) and is always a good idea to practice, and will more often than not teach you something in addition to what you were specifically looking to find.

General

Codecademy

This is the ultimate one-stop shop for getting started in coding. Whether you’re interested in front end web development, or any of the main higher-level back end programs, it’s the most supportive and satisfying way to learn syntax, terminology and basic logical processes. If someone wants to try coding for the first time this is the place to send them.  I worked through their courses on HTML/CSS, Javascript, SQL, Ruby, Rails, Python, JQuery, PHP and the Command Line and would recommend any of them!

Code School

Code school has some great tutorial videos and challenges, though for most topics you will get one or maybe two free courses and everything more advanced you have to pay for. Could be worth it, personally I’ve recently joined their monthly subscription and am planning on binging through some of their Ruby, Rails and Git content and then unsubscribing, but am glad to know it will always be there to go back to.

If you are happy to pay a small subscription also definitely checkout Team Treehouse, who offer a free 7 day trial. They have an immense library of content and great quizzes and small coding challenges. Also a great community. Their Ruby and Rails tracks (they use the term tracks about everything, not just a Rails pun) really worked for me!

Code Wars

Once you have the basics of any language under your belt, Code Wars is a great place to go to practice your new skills! Again, it has a huge range of languages and challenges and is lots of fun.

PythonTutor Visualiser

Despite the name this site covers a bunch of languages, including Ruby, JavaScript and C. It makes visualising your code an absolute breeze, and steps you through exactly how the computer is reading your code, when variables are changing and is brilliant for debugging single file programs.

HTML/CSS

HTML Dog

Some great tutorials and examples on the basics of HTML and CSS. Non interactive but great for referencing back to for how to do tables, links or other basics of HTML

FlexFroggy

A very specific link but great fun and super helpful for learning flex-box .

JavaScript

Free Code Camp

This has got to be one of the best free ‘learn to code’ resources there is. FreeCodeCamp is an open source project which teacher full stack Javascript. It of course also covers HTML and CSS but moves onto Javascript and JQuery quickly. Great interactive tutorials working from the basics up to very advanced, it offers free certificates in Front End, Back End and Data Visualisation. The goal is to complete the course and start giving back by volunteering your new skills to assist not-for-profit organisations.  Very active and supportive community on the forums too!

Hack Reactor Prep

Great set of challenges to get you working on getting JS drilled into your head – you should be able to do the basics quickly without looking up methods, and this does exactly that, and gets you well practiced at problem solving – for example writing a function to multiply numbers. Without using multiply. And taking into account negatives. Oh joy!

Ruby

Try Ruby

Exactly as the name suggests, this is a great place to get started with Ruby and to see how wonderfully simple and readable the syntax is. It is quite brief, and goes into some strange areas for beginners (such as reading and writing to files, which isn’t normally one of the first things you would learn in a language), but is fun and straightforward and lets you play around a little with what you’ve learnt as you go.

Ruby Monk

A great resource that clearly explains a lot of Ruby concepts – several levels to work through, and a good mix of examples (which you can run in the browser to actually see the output) and code challenges to complete. Nice hints to support you when you get stuck, and solutions if needed.

RailsGirls App Tutorial

This is a great introduction to Rails, stepping you through how to build your first Rails app, and then providing lots of other materials to further develop your app or to learn more about Ruby. I can’t recommend enough however – if there is any RailsGirl event near you, try to go to this rather than doing it yourself online. If you’re in Australia (near Brisbane, Sydney, Melbourne or Adelaide) Reinteractive hosts Rails install-fests quite regularly which cover similar material. It definitely helps to have other people around to help or support you, or just help you see other people being challenged by the same things you are! If you can’t make it to a physical event, however, then this is a great alternative. Warning: you will not understand Rails after finishing this, but you will know *how* to set up a basic app. To start understanding the magic see the next resource…

Michael Hartl’s Ruby on Rails Tutorial

A fantastic guide to how Rails works, rather than just how to set up an app. I’ve only made it through the first few chapters but so far it’s clear, concise and very informative.  Hard to fault such a thorough resource that is made free online, though of course you can choose to purchase a hard copy or the ebook.

Python

Learn Python the Hard Way

The ‘The Hard Way’ series includes Ruby, Javascript, SQL and a bunch more, but the author Zed Shaw started the series with python and I think that’s where it’s strongest. The writing style can be at times a little condescending, and unapologetically so, but it’s got some great exercises to work through which make you work harder than a lot of the online tutorials available, and thus get you much more confident.

Django Girls

Django is to Python what Rails is to Ruby – this walks you through a fairly similar tutorial to the Rails Girls one above, and you come out of it with a cool blog that you built from scratch. Similar to Rails Girls though, you won’t understand a heap of what you accomplish without a lot more work!

GIT

Learn Git Branching

It’s pretty! It has lots of colours! While frustrating at times this very visually clear tutorial works through a whole range of the aspects you’ll need to know when working with Git for version control.

Pro Git

Full text book available online that explains Git concepts really thoroughly

Editors

Repl.it 

A great online editor that runs a heap of different languages, perfect for playing around with code and running it when you don’t want to go to the effort of writing/saving a file and running through the command line.

Atom 

An offline text-editor which is great for starting to code. Once you save your file with the appropriate file extension (ie. .rb for ruby or .py for python) it will automatically colour-code and help with indentations etc.