Skip to main content

Command Palette

Search for a command to run...

My favourite free resources for learning how to code

Published
My favourite free resources for learning how to code
J

Developer with a background in international affairs. You can read more about my journey on my blog :)

Since switching careers from politics to software engineering, some people have asked me how I learnt to code. At some point I noticed that I just kept repeating myself, so I've decided to write it all down.

Getting started

Before diving into it at the time, I did some quick research on what you actually need to learn to become a developer. For the web, the answer was pretty much HTML, CSS and JavaScript. So that is what I started with.

  • Khan Academy - I went over the AP/College Computer Science Principles section to learn more about the foundations of computer science and programming.
  • Codecademy - I took the HTML, CSS and JavaScript courses. Their explanations are quite clear and they generally try to visualise where they can.
  • SoloLearn - A learning platform with bitesized lessons, little quizzes and challenges for all kinds of languages. You can collect points and level up as you complete more lessons. There is a web and app version. I used the app on the go to revise my knowledge of HTML, CSS and JavaScript.
  • freeCodeCamp - I did the Responsive Web Design certification, and most of the JavaScript Algorithms and Data Structures section. Don't feel intimidated if you're just starting out. It took me some time to solve my very first algorithmic challenge. If you get stuck, the best thing to do is to take a break, and then write down what you want to do and break it into little steps on a piece of paper. Talking it through with another person is also really helpful. FreeCodeCamp also has an active YouTube channel and a Discord server that you can join.
  • The Odin Project - This is my favourite. I started with The Odin Project after having spent some time on Codecademy and freeCodeCamp, but it eventually became my main resource. It's an open source curriculum for learning fullstack development with JavaScript or Ruby on the backend. The Odin Project requires you to set up your own environment, which can feel daunting at first, but it's a great step towards coding your first project :) They also have an active Discord server where you can find study buddies and share your progress with fellow learners.

Whilst these were the main resources I've used to get started and returned to throughout, there are many more websites that I found very helpful.

For CSS

  • Flexbox Froggy - A game for learning Flexbox
  • Grid Garden - A game for learning CSS Grid
  • CSS Tricks - A great resource for more in-depth information and helpful tricks
  • MDN Dev Docs - CSS - Also a great reference, but not as visual as CSS Tricks
  • Frontend Mentor - Website for frontend challenges. They provide you with the requirements and images if needed and you try to code the project as best as you can. Once you submit your solution, the community can provide you with feedback. You can also comment on other people's solutions. I used one of the free challenges to practice my CSS skills.

For JavaScript

For Coding Challenges

  • CodeWars - Fun way to practice your JavaScript skills. You start at level 8kyu and work your way up to 1kyu as you solve coding challenges and gain points. You can filter challenges by languages and difficulty level. Make sure not to rush through it, but take time to understand why your solution works (or doesn't work). After you've solved a challenge, you can view other people's solutions. Comparing solutions is very helpful in understanding what works and what doesn't. Be careful not to confuse the highest voted or shortest solution with the best one. Pairing on challenges and discussing solutions can be very helpful here. Or finding a mentor.

There are many more code challenge websites out there like CoderByte, HackerRank, LeetCode, and Exercism, but I started with CodeWars and somehow it just stuck.

For Computer Science

  • Harvard's CS50 Intro to Computer Science - I started with this one, but never finished it. The lecturer is great though, and there are several specialisation courses you can take afterwards if you're more of a university-style learner.
  • The Missing Semester of Your CS Education - I did the first six sections or so with a particular focus on the command line (don't worry if this doesn't tell you anything right now, but if you want to find out more, you can read about it here). This is also where I learnt what I currently know about vim (including how to exit it :D). Vim is a code editor that you can navigate using your keyboard only. Some people love it, some hate it, because it's not necessarily very intuitive for everyone... that's why there are jokes about not being able to exit vim :P
  • BashCrawl - A game to learn how to use the command line. Not technically a Computer Science course, but can be used in conjunction with the previous course to practice your command line skills. You need to know how to clone a repository for this one, which you can learn as part of The Odin Project.

For entire curricula, you can take a look at Open Source Society University (mostly online courses) or Teach Yourself Computer Science (mostly books). I haven't gone through them yet, but I think they serve as a nice reference.

Free Bootcamps

Technically, not all of the below are resources I've used, but since some people have asked me about being self-taught vs. going to a bootcamp, I thought I'd list some free bootcamps I know. While App Academy for example is technically a paid bootcamp, their curriculum is freely available online and can give you a sense of whether you'd like to attend a bootcamp or not.

  • Full Stack Open - A fullstack course by the University of Helsinki. The content is the same as the one taught at their Department of Computer Science. If you follow the timeline and complete the course, including exercises, you can earn a certificate. Finnish participants are also guaranteed interviews with the programme's corporate partners.
  • App Academy Open - Uses the same resources as the paid content, but with less support (without live lectures, graded assessments, etc.)
  • Rithm School - Free courses by a paid bootcamp.
  • Front-End Foxes - For women, by women.
  • Class Central - Free, online and open to all. Structured around freeCodeCamp's web development certification.
  • Codebar - Not technically a bootcamp, but the community holds regular workshops and also has an active Slack channel and Discord server.
  • Founders & Coders - Non-profit in London. You need to do quite some pre-work to apply, but I've only heard good things about it so far. I went to some of their open sessions to do some of the pre-work with others. During the pandemic, their cohort was online. I think they're back to in-person cohorts but I thought I'd list them anyways.
  • Open Classrooms - Distance learning platform registered with the Board of Education in Paris. They offer a lot of free courses in English and French as well as paid training programmes in web development.

For more resources

  • Hackr.io - You can find both paid and free resources for all kinds of languages on here, including JavaScript.
  • Bento - Learning paths for different topics, including JavaScript.

That's it. I hope this list is helpful for at least some of you. If you're completely new to coding, I would suggest focusing on one resource first and consulting others as you try to learn more. Jumping between websites can actually be quite distracting, or at least it was for me.

Also remember that you don't need to know it all. As someone who's now working as a developer, I can tell you that there's a lot I learnt during my self-studies that I don't actively use at work, and a lot that I only learnt on the job. So the best strategy in my eyes is still to get the fundamentals right, build some projects, and then apply for jobs, so you can start learning by doing as soon as possible. That way, you'll find out sooner what you want to focus on, as there is simply too much for one person to know it all.

So happy learning! You can do it! ๐Ÿ’ช๐Ÿผ

Cover image by Aaron Burden on Unsplash

M

Thanks a bunch for sharing this with all of us you actually know what you are talking about! Bookmarked. Please also visit my site. <a href="https://abtrainings.com/sql-server-course-training-in-hyderabad/"> SQL Training In Hyderabad</a> <a href="https://abtrainings.com/sql-server-course-training-in-hyderabad/"> best SQL training institute in hyderabad</a> <a href="https://abtrainings.com/sql-server-course-training-in-hyderabad/">SQL online Training in hyderabad</a> <a href="https://abtrainings.com/sql-server-course-training-in-hyderabad/">SQL training in ameerpet</a> <a href="https://abtrainings.com/sql-server-course-training-in-hyderabad/">SQL server Training in Hyderabad</a>

K

Amazing curation!

I wasn't even aware of most of these.

Thanks for sharing, JJ!

2
J

Youโ€˜re welcome Kingsley ๐Ÿ˜Š Enjoy!

D

Wow, that is quite a list. I have a lot to look over and consider. Thanks!

2
J

:D Youโ€˜re welcome Jake. Happy learning! ๐Ÿ˜Š

S

Awesome Collection :)

1
J

Thank you! :))

1
D

This is so great! I currently use The Odin Project myself and I can attest to how wonderful the lessons are. I will be checking out the other sites listed, there's a lot of them. Thanks, Jing-Jing Hu!

2
J

Youโ€˜re welcome Dolamu! ๐Ÿ˜Š Happy to hear that youโ€˜re also enjoying The Odin Project. You go ๐Ÿ’ช๐Ÿผ

A

Thanks for the list. Loved it. Will bookmark the post.

1
J

Thanks Ashik, happy learning! ๐Ÿ˜

M

Awesome list of resources!

1
J

Thank you Melvin! ๐Ÿ˜Š

M
MCCurcio4y ago

Hi JJ, I really respect peeps when they actually have taken the courses or used the sites they recommend. There are too many "Top X Sites For Y" that people just google then don't add anything.

I have heard others say good things about 'The Missing Semester of Your CS Education.' I'll have to try sometime.

Kudos for adding great comments

2
J

Thank you, I'm very happy to hear that ๐Ÿ˜Š And yes, you should! I found it quite challenging, but that knowledge still comes in handy at times, and it's also part of the reason I'm not afraid of the command line... or vim :D

Enjoy!

1
M
MCCurcio4y ago

Jing-Jing Hu Hi JJ, I started with Linux before Vim so I like the CLI but haven't really gotten over the Vim hurdle. ;) Are you a Linux or Python person?

D

You can add OpenClassRooms. Very good website

And very good article! Thanks for sharing

2
J

Thank you Kazbek, I will check it out and add it to the list ๐Ÿ˜Š

1
D

Jing-Jing Hu I see you did it. Thank you Jing-Jing Hu =)

1
J

Of course! Thank you Kazbek Akhmetkhanov ๐Ÿ˜Š