Which programming language should I learn?

At Grok, we’re asked by students and teachers alike which language is the best. Which language is used most? Which one will take me further in the tech world? Do I need to be good at all of them?

This line of thinking is misleading. You know which language is the best language to learn? Any of them.

Programming languages are an ever-changing landscape

Languages change all the time.

In the 2018 Stack Overflow Developer Survey, the “Most Loved” language was Rust. Before 2010, Rust didn’t even exist. The second most loved, Kotlin, wasn’t invented until 2011.

C++ went from being the second-most loved technology in 2015 to being dreaded by most respondents in 2018.

In 2013, being a full-time PHP developer in the US was one of the highest paying jobs on offer. In 2018, PHP didn’t even make the list.

It’s not just languages, either: the environments you’re developing for are constantly changing as well.

A computer blissfully unaware of Flappy Bird

Prior to the web, languages like HTML, CSS and Javascript were inconceivable. Smart phones are only about a decade old — the first iPhone was released in 2007 — and today over half of all web traffic is mobile. The current market for apps is worth tens of billions of dollars, but before smart phones, there was no such thing as a mobile app at all.

The most important skill isn’t coding, it’s learning

It doesn’t matter which languages you know, because if you are a good learner, you will be a good software engineer.

Pick a language and dive into it. Learn it, use it, challenge yourself with it. Why? Because becoming good at one language builds the knowledge to become good at others. If you have a clear, solid knowledge of programming concepts, these will transfer to any language for any context. It just depends on what you’re trying to build.

Approximately how many technologies are born and/or die per year

Imagine: you’re a stellar Objective-C programmer, churning out fantastic apps for your employer, AppCo. At Apple’s developer conference, they announce a secret project they’ve been working on: the Swift programming language!

Wait a second — you only know Objective-C. What will happen to your job? The rest of your career?!

Simple: you learn. You know how to design apps, you know how to animate, you know how to use basic data structures, and so on. Sure, Swift may look a little unfamiliar or handle some situations differently — but you’re most of the way there.

You might pick up new languages informally by tinkering with side projects, or by learning from a colleague on the job, or by taking a formal course. This is why so many employers engage in and offer to pay for employee training; they’ve hired smart generalists (like Google does!) who can pick up any new tech with enough practice.

Python, a perfectly useful programming language

Don’t focus on which language is the “best”, or the most stable, or the one that will live longest — focus on developing your general programming knowledge.

So which language should I learn?

Any! (Well, maybe not FORTRAN. It’s 61 years old.)

For a starting language, we like Python — it’s powerful, but still easy to pick up. Check out our Intro to Programming course.

For younger kids (around years 3 to 6), we recommend starting with Blockly — it teaches programming concepts in a simpler, more visual way. See Intro to Programming (Blockly).

If you’re a teacher, addressing the new Digital Technologies curriculum can be tricky, especially if you’ve not done much programming before. Grok provides a free teacher account to all school teachers who sign up, which includes solutions for problems, teacher notes and hints, and free access to all content. We want teachers of all levels of experience to be able to teach programming in the classroom. Our advice to you is the same — pick a language and give it a go!


The shape of the tech world is always changing; being able to learn and change along with it is the most useful skill there is. To start, pick a language you enjoy learning (forget about its future prospects!), and learn it well.

The most important skill for being a software engineer isn’t knowing things, it’s knowing how to learn. Being able to learn by yourself, learn from others, and teach those around you is what will further your career — not knowing everything there is to know about any particular language or technology.