If you’re an aspiring developer and want to learn how to code, there are plenty of free resources out there. Here’s a short summary of my experience with a few.

(Free = F, Paid = P)
  • Codecademy (F, P) - the hardest thing about learning how to code is the syntax (set of rules for the language). Codecademy does a fabulous job at enforcing correct syntax and teaching logic. I repeated their HTML, CSS, JavaScript, and Ruby section 2–3 times to get used to writing code.

  • FreeCodeCamp (F) - teaches you the basics, but does not hold your hand so much. It takes a lot of googling to figure out how to solve some of the problems on there. You follow a curriculum and build projects. They even connect you with a non-profit for you to get real-world experience. Most people actually never get to this point or even finish the curriculum because they usually land a job by then.

  • Udacity (F, P) - offers high quality courses taught by industry experts. A lot of the courses from their Nanodegree program are actually free. Various new topics: AI, AR, VR, Machine Learning, Flying Cars.

  • Lynda (P) - provides source files to work along-side of video tutorials. They have tracks for different skills which makes it easy to follow. Plus, you can add a Lynda certification to your LinkedIn profile after each course. There’s a way to get it for free for most states, if you have a library card you should be able to get a login and use it for free. It’s also free for students.

  • Treehouse (P) - explains things in detail, tracks for different types of development, all video. Love their CEO, Ryan Carson. He’s all about giving opportunities and providing a way to earn a good living without a college degree (or getting in debt).

  • CodeWars (F) - this is a great resource to really learn a programming language. It helps you apply the language to logical problems (and algorithms). It forces you to learn the methods of a language and its capabilities. Great for a whiteboard/coding interview.

  • YouTube (F) - there is a lot of old content on here I’ve found it useful to look up things when I don’t understand a concept. It’s good for computer science concepts that will not really change over time.

These resources definitely do not replace official documentation, you’ll find that as you advance in your career you’ll grow out of these and just figure things out as you go!