Skip to main content

What Programming Language Should I Learn First?

If you’re a non-programmer and want to learn to code, do not get stuck on this decision. I did and I wasted a lot of time thrashing between languages. The question is, “What programming language should I learn first?” The answer is:

  1. HTML
  2. CSS
  3. JavaScript

what programming language should I learn first

HTML is the simplest of languages. It tells the browser where text, images, videos, forms and other stuff goes. You can learn the basics of this today.

what programming language should i learn first - HTML

CSS is for styling. It makes a page look cool and adjusts the way things look and the way things are laid out. CSS is a deep well of powerful tools, but you can learn the basics in a few days.

JavaScript is for dynamic data. JavaScript is a deep well of powerful tools. To become a useful programmer you’ll learn to think in JavaScript.

Start Learning to Code Today

To get started. Go to

This is the best resource for the non-programmer to become a useful programmer.

I’ve created a collection of tutorials to supplement your work as you go through FreeCodeCamp. Later we will develop additional tools to help you become a useful programmer.

Why JavaScript and not Python, Ruby, Erlang or C+?

If you learn JavaScript basics, it will be easy to convert what you’ve learned to all the other programming languages.

Some people are passionate about programming languages. As a non-programmer you don’t need to care about those opinions.

After you become slightly proficient with JavaScript, you’ll be in a place where you can make a decision on what to learn next. When you don’t know how to write a script, it’s impossible to make effective decisions on what script writing tool you’ll use.

Analogy: If you don’t know how to paint, don’t worry about what paint brush to use. Just start painting. You’ll develop a paint brush brand decision making framework after you learn a bit about painting.

Ruby programmers will swear that you need to learn Ruby.

Python programmers will swear that you need to learn Python.

This goes on-and-on forever. Programming geeks love to argue over nuances of programming languages but as a non-programmer, you don’t need to care about those people.

Just start solving problems in JavaScript.

JavaScript can do Most Things

JavaScript can be used to build a lot of good stuff.

  • Node is a server-side language so you can make web apps like PayPal and LinkedIn.
  • Electron makes it so you can write application on iOS like the Atom text editor.
  • React is the front-end for Facebook and many other applications.
  • JSON is a data format that you’ll probably utilize when working to integrate your application with data from another.
  • Chrome, Safari, Brave, Firefox – Every web browser is based on JavaScript.

Learning JavaScript is unlikely to be a waste of time. If you get a job writing Python or Ruby later, your experience with JavaScript will still be relevant. If you get a JavaScript job and have Ruby experience, that Ruby experience will largely be lost as you focus on JavaScript.

After you can write a calculator in JavaScript, CSS and HTML, you’ll be able to develop an opinion about what to move onto next.

Start learning for free.


  • Josh Haokip says:


    I have just started out on my journey to becoming a developer and have been going through the content on freecodecamp so I was glad to see that you were making videos based on their curriculum.

    I was wondering if you knew when you will upload videos regarding the tech doc page and personal portfolio page?

    I find your videos very useful! Please keep making more!

    All the best,


  • Matt Schucker says:

    Wow- your videos have been AMAZING!! I have a couple ideas of web apps that I want to develop to help me with my job (and perhaps earn some money at some point) and I thought time at home due to COVID was the best time to jump in.

    I started by learning on Codecademy and a couple other sites but really started loving FreeCodeCamp and I took root there. Obviously, things can get a bit tricky and when I googled one of the lessons a link to your videos popped up. THEY ARE GREAT!! I appreciate so much your descriptions and logical follow through. I can obviously get the answer through the links provided on FreeCodeCamp, but it doesn’t do much good to just SEE the answer. I appreciate your explaining (especially at the end of a lesson after the answer is found).

    I am currently a little over halfway through the REACT module and my head is definitely spinning. Thanks so much for your videos. REALLY appreciate them!!

    • ian says:

      Wow. Thank you for the kind words Matt. It’s great to hear you’re finding these videos useful. Keep up the great work.

  • shreyans jain says:

    Hello sir, randomly i saw your video on youtube about coding and i started to learn about this coding thing through freecodecamp. I think i’m addicted to it everyday i’m learning new thing about it.
    And your video are helping a lot the way you explain why this works and why it is not working are really helpful sir. Even after i crack some lessons in freecodecamp without watching your video then to i visit to your youtube channel and i learn about it a lot.
    Thank You sir…
    love from INDIA.

    • ian says:

      Wow Shreyans Jain, I’m happy to hear you’re finding these videos useful. Thank you for taking the time to comment here and I wish you continued success in your journey to learning to code.

  • Do you also have videos on using your command prompt? call me bro! This website is great.

  • Dmitri Sanzharov says:

    Thank you, thank you, thank you…. you are a life saver!

  • Dara says:

    Hello, I was wondering if you could help me with something. I am working with free code camp and working on the random quote machine. I originally used the code pen template because I didn’t understand the terminal app. Well I finally figured it out and downloaded atom and made a account on github, so I could redo the project and publish it on github. My issue is as I was watching your tutorial (which have been super helpful by the way) I got to this point in the video (3:23) and for some reason when I tested the index.html on atom it didn’t appear in the google chrome page. I was wondering if there is something on my end I need to add something? Thank you again for your help!

  • Muhammad Ahmed Raza says:

    Sir you are awesome:) you are doing great thing for all of us new beginner. this post was really helpful. Thank you!

  • MReza says:

    hi ian
    how is it going ?
    I be come a big fan of you
    plz start web design beta on freecodecamp
    Waiting for you on youtube

  • Luke Jackson says:

    Just as Matt stated.. checking the hint and reading the code isn’t taking the steps for me to actually understand and learn anything that way. But your videos are great and very help man!! Appreciate the time and energy you’ve put into all the Youtube content.

    Hope all is well,
    Luke (Leeds, England)

  • Gina says:

    Thank you for your videos, Ian! Very helpful and inspiring. I went through your channel and this website looking for, I guess, more personal information about your journey to becoming a programmer (how old you are, what did you do before programming, why did you decide to start programming, etc). Are you planning on doing something like that? As a 30+ woman who’s recently started freecodecamp in an attempt to change careers, I’m looking for some inspiring stories lol.

  • Linda says:

    Hi Ian,
    I just found your video’s. Thank you so much for taking the time to make them. Do you or could you make any of the Free Code Camp FrontEnd Development Cert?
    Again I am greatful for your videos they’ve helped explain a lot for me.

  • LindaS says:

    Hi Ian,
    I just found your video’s. Thank you so much for taking the time to make them. Do you or could you make any of the Free Code Camp FrontEnd Development Cert?
    Again I am greatful for your videos they’ve helped explain a lot for me.

  • arjun-india says:

    hello sir i have a question which is i get stuck sometimes, not sometimes but more often while solving the problems from FCC js DSA course and i have gone through most of ur videos for understanding the solution after many hours of trying to solve by my own . its like i get that glimpse of how to approach the problem but i cant totally solve it by my own and endup seeing the solution and then learning from it. what should i do so that i can improve and solve by my own with out seeing solution atleast for some problems . i have solved almost all the problems from intermediate scripting by seeing ur videos and then learning from it. what is it that im missing. i dont like this feeling of always seeing the solution .

Leave a Reply