Which Programming Language Should I Learn First? [Infographic]

Before choosing your first programming language, you should also check out this infographic on What Is Programming And What Do Programmers Do.

So you want to learn programming. Maybe you have asked your developer friends for recommendations and get different answers. They explained with terms that you don’t understand (what is object-oriented?!). To help you to pick your first programming language to learn, here is an easy-to-understand infographic that recommends the best option, depending on your purpose and interest. Details such as learning difficulty, popularity, and average salary for each computer programming language are provided too.

I have also compiled a list of best programming tools and resources for each programming language, to help you get started quickly.

Special thanks to Prithviraj Udaya for allowing me to use his awesome The Lord of the Rings analogy on Quora.

Note: A good programmer must know at least a few programming languages to learn different ways to approach problems. They continue to learn and grow as technology advances. This is just the beginning of your programming journey. Simply pick one and start coding now!

Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

– Linus Torvalds (creator of Linux)

Infographic: Which Programming Language Should I Learn FirstClick on the infographic above to view in full size.
Order the printed poster here or get the PDF version here.

I thought Facebook uses PHP? Why is Python everywhere? Is PHP for small sites only? I’ve received a lot of questions and misinterpretations of the infographic, which is understandable. There’s only so much information I can squeeze into an infographic. Check out the full explanation of the infographic & FAQ at the end of the post (Click here to jump).

Best Programming Tools & Resources

Here is the compiled list of the best courses, tutorials, books, etc. for each programming language. Feel free to suggest any new resources to keep this list growing!

Beginners read this: IDE stands for Integrated Development Environment. It is a tool that facilitates developers to write code, which normally consists of a code editor, compiler, and debugger.

Also, you need to understand some important concepts behind programming. Check out: 40 Key Computer Science Concepts Explained In Layman’s Terms.

PythonJavaC/C++JavaScriptC#RubyPHPObjective-CFor Kids

Official site: https://www.python.org/


Free Interactive Tutorial


For Web Development

If you want to create websites using Python, try Flask, a beginner-friendly Python web framework:

Then, you should probably move on to Django, the most popular and widely-used Python web framework:

Official site: http://www.oracle.com/technetwork/java/javase/overview/index.html


Tutorials (Free)


  • Java: A Beginner’s Guide
  • Thinking in Java (Get the older edition for free here)
  • Effective Java
  • After learning the basics & fundamentals: Head First Java
  • If you are serious in mastering Java: Java The Complete Reference
  • Think Java (Free)

If you want to create Android Apps:

For C/C++

For C

  • Books
    • C Programming Absolute Beginner’s Guide
    • A must have if you are serious in C programming – The C Programming Language
    • C Programming: A Modern Approach
    • Learn C The Hard Way (free)
  • Tutorials (free)

For C++


Tutorials (Free)


  • A Smarter Way to Learn JavaScript
  • JavaScript: The Good Parts
  • JavaScript Patterns
  • JavaScript: The Definitive Guide
  • Eloquent JavaScript (Free)

For front-end developers, you must also learn HTML & CSS. Probably jQuery as well.

For server-side developers, check out Node.js:

Official site: http://msdn.microsoft.com/en-US/vstudio/hh341490




  • Head First C#
  • C# 5.0 in a Nutshell: The Definitive Reference
  • CLR via C#
  • Beginning ASP.NET 4.5: in C# and VB (For web development)
  • Programming C# for Beginners (Free)

Note: Theses resources are mainly for Ruby on Rails framework only.

Official site: http://rubyonrails.org/

  • Official Ruby on Rails getting started guide
  • IDE: RubyMine
  • You must have a basic understanding of HTML, CSS, and JavaScript to develop websites using Ruby on Rails. Go to “JavaScript” tab for more information.




  • Ruby on Rails Tutorial (free to read online)
  • The go-to books for beginners – Agile Web Development with Rails 4
  • If you are serious in Ruby on Rails development – The Ruby Programming Language

Official site: http://php.net/



  • PHP and MySQL for Beginners
  • Head First PHP & MySQL

After you’ve learnt the basics, you may consider to use a framework:

  • CodeIgniter – Excellent for beginners, easy and suitable for small projects
  • Laravel – One of the best and most popular PHP framework

Official site: https://developer.apple.com/


Tutorials (Free)


  • Objective-C Programming: The Big Nerd Ranch Guide
  • iOS Programming: The Big Nerd Ranch Guide
  • Programming in Objective-C
  • Cocoa Programming for Mac OS X
  • 8 – 16 years old: Scratch – Create your own games, stories, and animations easily.
  • More fun ways to learn programming for kids:
    • 10+ years old: Lego Mindstorms – Write programs to bring the robot to life.
    • 3 – 8 years old: Robot Turtles – Board game that teaches programming.
  • Great list of coding apps and websites for kids
  • Interactive courses for children – Tynker
  • Once your kid has learned the fundamentals of programming, you can proceed to teach them Python (Refer to “Python” tab).
    • Suitable Python book for kids: Python for Kids: A Playful Introduction to Programming

More Recommended Sites

Infographic Explained & FAQ

1. Why is Python everywhere? Are you a Python fan?

I’ve decided to use Python as the go-to language when there are multiple answers in a scenario, simply because it is widely regarded as the best programming language for newbies. Here are the evidences:

There are tons of debates that argue other coding languages are better, but I think we should to stick to the majority opinion.

2. Favourite Toys Analogy
  • Lego (Python) and Play-Doh (Ruby): Here’s the original quote of the toys analogy –

    I’m recommending Python to most beginners, but it doesn’t matter THAT much. Whether you are more of a Ruby or Python programmer depends on your personality. If your favorite toy at a young age was Lego, choose Python. If it was clay, use Ruby.

    – Mattias Petter Johansson on Quora

  • Old & ugly toy, but I love it so much! (PHP): There were very limited options to develop websites in the 90s, and PHP slowly dominated web development during the Internet revolution. It is still the most popular server-side scripting language right now but slowly losing popularity to C# (ASP.NET), Ruby (Ruby on Rails), JavaScript (Node.js), etc. Check out the great analogy here on why PHP is ugly, and why it is still very useful and important.
3. Auto & Manual Car Analogy

C gives you more control than Java. You don’t have to worry about shifting gears (e.g., memory management) in Java, but you may be able to drive (execute code) faster and more efficient in C.

4. I thought Facebook uses PHP? Is Google using Python only?

Both companies use multiple coding languages like Java and C++. In this case, we should follow the rule stated in #1. The bottom line is, you definitely need to learn more than one programming language to get a job in most companies.

5. What are the challenges that programmers normally face?
  1. Staring at your supposedly working codes for hours.
  2. You feel stupid sometimes.
  3. You end up spending a lot more development time that you think.
  4. You are certified and assigned to fix anything that has to do with computer.
6. Is PHP for small websites only?

No, PHP is not limited to small sites only. What I’m trying to say is PHP makes it easy to get a simple website up and running at low cost. It works and scales perfectly well for large and high traffic websites too. Here are some good reads if you can’t decide whether to learn PHP or not:

Do you agree with the flowchart? Let us know in the comment section below. Also, feel free to suggest improvements as I will be constantly updating the infographic and content when necessary.

If you liked this, check out:

At least I'm not an annoying pop-up

If you like our posts, you should give our email list a try. We'll only send you 2-4 emails a month. We hate spam as much as you do!

80 comments… add one

Leave a Comment