Here I’m including a list of the resources I’ve found particularly useful when trying to learn new things. Unless I indicate otherwise, they’re all free. I’m a big fan of free learning. I’ll categorize by topic, but first here are a few sites that offer courses on a broad range of subjects:

  • Udemy is a great site, and I think many of the paid courses are worth it, but you have to keep a few things in mind. First, look at the ratings before buying anything, and look for signs of how current the content is. Web development and programming are areas where things change all the time so a course that hasn’t been updated for even a couple of years may not be something you want to pay for. Second, don’t ever buy anything for the full price. Udemy almost always has a sale where you can get just about any course for $10-$12 so wait for that.
  • Codecademy has courses that cover a wide range of topics, and many of the introductory ones are free. I’d recommend these to anyone who is just starting out. There are a lot of exercises throughout the courses so you get some hands-on experience. The best paid option costs $20 a month if you sign up for a year.
  • edX provides courses on just about anything. Many are developed by top universities and can count towards a degree, though you have to buy a certificate for that. The certificates range in price, but they are commonly around $100. You can, however, audit for free. This means you can view all the content, but you won’t be able to do exams or graded assignments. A lot of courses still have a good number of free exercises available. Also, a recent change put a restriction on how long you have access to a course you are auditing – I’ve had about a month to get through the courses I’ve taken recently. That’s usually enough, but it’s just something to be aware of. The date you lose access to the course will be displayed when you start taking it.
  • Reddit is a great resource for just about everything and I wish I had thought to look there sooner. Some of the subreddits I find the most useful: r/learnprogramming, r/learnpython, r/webdev. Whatever you’re interested in learning, there’s probably a subreddit for it.

Web Development

  • The Complete Web Development Bootcamp on Udemy (paid course). You’ll learn HTML, CSS, Bootstrap, JavaScript, Node.js, Express, MongoDB and more. The content is mostly project-based. My only qualm is that the instructor hasn’t answered anyone’s questions in months and neither has anyone else on her behalf, but it’s still a great course.
  • Free Code Camp is a great intro to HTML, CSS and JavaScript, and has some more advanced topics too. I haven’t finished everything yet but from what I have seen, and from what people say, I think it’s a great resource. One thing I particularly like is that at the end of each section they give you a few projects to complete, and I think that’s the best way to learn.
  • The Odin Project has two full stack web development courses – one is all JavaScript with Node.js/Express and one teaches Ruby/Ruby on Rails. You can also choose a front end-only path. Regardless of the path you choose, you’ll learn HTML, CSS, JavaScript and Git. You’ll also get a brief look at some JavaScript frameworks such as React and Vue. There is a good amount of content on the site itself, including exercises and projects, and throughout the courses they link to other free resources to provide further information.


  • The Modern Python 3 Bootcamp on Udemy (paid course). I found this to be a really informative course and the instructor is fun to listen to. Most importantly though, there are a lot of coding exercises. The instructor has also hired someone to answer questions, so nothing goes unanswered for long.
  • Talk Python to Me is a podcast which I’ve really enjoyed listening to lately. Pretty much everything Python related is discussed at some point. Although it may be interesting to beginners, I think you’d get more out of it once you’ve at least gone over the basics.


  • Corey Schafer’s Django Series is hands-down my favorite. It’s just really easy to follow and the explanations are well done. If you are really new to programming then you may want to start with the Django Girls tutorial below, but if you have some Python experience already then I’d recommend you start here. If you only do one Django tutorial then do this one.
  • Django Girls tutorial. I found this to be a great resource in learning how to build a website using Django. It’s completely beginner friendly and takes you through a blog-building project. If you complete the extension exercises then you will have gone through deploying your site on both PythonAnywhere and Heroku.
  • The official Django Docs are a good source of information, and the link takes you to their tutorial where they show you how to build a simple poll application.
  • The Mozilla Django tutorial creates a slightly bigger project, but I can’t really recommend it for total beginners. I think it would be best to do after you’ve already learned a little Django because I don’t think everything is explained as well as it could be.

Coding Challenges

  • Coding Bat is a great place to practice Python and Java for beginners. There isn’t a huge range of exercises here, but I think it’s an excellent place to start.
  • Edabit has, according to their site, over 3000 coding challenges. They are ranked in difficulty, with the ranking being determined by the people who complete each challenge. I like the challenges here because they are usually written clearly so you don’t have to waste ten minutes trying to work out what exactly is being asked of you.