Which Programming Language Should you Learn First?

It’s the question I first asked myself when I started to learn to program. And if you’re reading this, you’re most likely asking yourself the same question.

It’s a question one hears a lot in the tech community, along with:

  • Do you know Angular?
  • Which editor do you use?
  • Do you know Angular?
  • Have you tried Soylent?
  • Can you help me with Angular?
Live look at someone drinking Soylent.

Speaking of languages all the time leads one to think, especially for a beginner, that choosing the right language is crucial to your future career.

Choose the right one and you’ll be living it up in a Silicon Valley tech office.

Choose the wrong one and you’ll be stuck programming printers for HP.

Mmmm, assembly code.

It can stress out newcomers, so I’m here to help relieve your anxiety.

Which language should you learn?

Ruby.

There you go. Was that really that hard? I guess we’re done now.

Jokes aside, it really can be that easy. Programming is hard enough without having to worry about whether you’re going to print “Hello World” with a

p "Hello World"

or

#include<stdio.h>

main()
{
printf("Hello World");
}

You may be asking why I told you to start with Ruby. Well, there is no reason. I could have easily said Python or Java. If that confuses you, I’ve got something to tell you.

You’re focusing on the wrong thing.

Mastering the fundamentals is your main priority right now.

  • Learn to problem solve.
  • Adopt programmatic thinking.
  • Get comfortable with Terminal.
  • Figure out exactly why you want to learn programming (More on this later).

Obviously you need to choose a language first before you tackle these concepts. The thing is using any language will help solidify these ideas. These are concepts that grow while you learn and practice.

In fact, most programming languages act the same at their most basic levels.

  • Booleans
  • Methods/Function
  • Arrays
  • Hashes/Objects

All languages share these features, they just implement them differently.


Let’s take a big picture approach to this language ordeal. I’m going to assume you’re a novice but you’ve committed yourself to a career in tech. You’re looking for a language that is sought after and that big companies will pay handsomely for.

You want that juicy six-figure salary and a workstation like Gilfoyle’s in Silicon Valley.

Unfortunately, just knowing a language won’t get you a job. Hell, it won’t even get you an interview.

Dozens of other people are probably applying to that same job and they ALL know that language. And learning the latest JavaScript framework because some blogger said it was the future won’t give you much of an edge. Chances are that framework will be old news soon enough.

So if it’s not the language that gets you the job, then what is it?

The utilization of that language.

Mind blowing, I know.

Programming is a tough job and it requires patience and mindfulness. When you debug and problem solve eight hours a day, those traits may be in short supply. That’s why your focus should be on mastering the fundamentals and the other concepts I listed above than which language is hot right now.

There is one concession I will make. If you know to a 99% degree the specific sector of the tech industry you want to work in, let that be your guide.

  • Want to work with Apple products? Learn Swift or Objective-C.
  • If you want to be an Android Developer, you should probably learn Java.
  • Dead set on making Wordpress plugins or finding a place at Facebook? PHP.
  • Dying to contribute to MicroSoft’s domination of the PC market? C# is for you.
  • If the fast-paced environment of a startup is what you seek, then go with Ruby, Python, or Back-end JavaScript (node.js).

And if you’re an open canvas, I made a little tool for you.

If picking a language is the only thing that’s keeping you back from starting, you’re only hurting yourself.

Beginning on a wrong track and then course correcting is better than never beginning at all.

So take your pick:

- Perl
- C
- C++
- .Net
- ETC. (not an actual language, though that would be amusing and confusing)

Whichever one has a funnier name, cooler symbol or you think will look snazzy on your business card.

Or do what I said in the beginning and just start with Ruby.