Richard Ng
What should I do if I want to learn programming?
27/11/20193 Min Read — In Programming
Should I read this post?

I think that you are more likely to find value in reading this post if you are:

  1. Early on in, or thinking about, a journey of learning to code; or
  2. Interested in my thoughts on learning to code.

I sometimes get asked to recommend resources for somebody interested in learning to code. I'm pulling these thoughts together in a blog post to put them in the public domain.

As a headline takeaway:

  1. My primary recommendation is FreeCodeCamp's Responsive Web Design and JavaScript lessons; and
  2. My secondary recommendation would be a Scrimba course, e.g. The Coding Bootcamp Primer.

I think both are worth trying out, as one may be more suited to how you prefer to learn.

Broad justification

Firstly, I am going to restrict myself here to recommending free resources.

This is both because I think that there are a lot of extremely high quality free resources that can be used, and also because I think that it's important to focus on recommending free resources for accessibility reasons.

Secondly, I believe that, for a given individual, the biggest single factors within their control that can determine their success in learning programming are the time and effort that they put into their learning - and I am taking it as a given that said individual is going to put time and effort into their learning.

I don't think that the language learned matters as much as that time or effort - I think that the language learned mostly matters insofar as it makes it easier or harder for an individual to put time and effort into their learning.

Thirdly, I believe that time and effort is easier to put in when there is a stronger feedback loop between "here's some time and effort I put in" and "here's the concrete outcome from that time and effort", and I believe that front-end development offers a stronger feedback loop than back-end development.

As such, I recommend starting out with front-end development - which leads to HTML, then CSS, and then Javascript (in that order).

Therefore, in answering the open question of 'What should I do if I want to learn programming?', I am answering the question, 'What are the best free resources for me to put time and effort into if I am to learn HTML, CSS and Javascript?'


  • What is it?: short online exercises which are extremely focussed
  • Better for: rapid practice of very short skills
  • What looks good?:

    • Responsive Web Design Certification
    • Javascript Algorithms And Data Structures Certification
  • Bear in mind:

    • FCC's time estimation for each block (300 hours) is daunting - but I think an overestimate
    • Don't let it stop you from starting, take it one exercise at a time


Final words

Good luck! With time and effort, you will be able to get there.

Ping me on Twitter or by email to let me know how you get on!