You Should Learn to Program

Since giving a TEDx talk at TEDxSMU on why everyone should learn to program, I’ve gotten some amazing messages from people all over the world inspired to learn to code, but unsure what to do next.

How do you get started programming? What’s the best language to learn? The options can be overwhelming and confusing, especially for beginners.

Here’s what I recommend to get started coding.

What language should I learn first?

There are thousands of languages you could choose as your first language. Some programmers are very opinionated about what language is the best, and so strongly recommend beginners learn their favorite language first.

Here’s the thing, though: it doesn’t matter what language you learn first. Pick one, and if it turns out it’s not the best language for what you want to do, it’ll be way easier to learn your next one.

Coding languages are very different from human languages. Once you’ve learned one language, it’s really easy to pick up more.

For example, here’s some Javascript code for doing a super basic calculation (5 + 10) and showing the result (15) on the screen:

const a = 5;
const b = 10;
console.log(a + b);

Here’s the exact same program in a totally different language, Python:

a = 5
b = 10
print(a + b)

and the same thing in Ruby:

a = 5
b = 10
puts a + b

and the same thing in Java:

class HelloWorld {
  public static void main(String args[]){
    int a = 5;
    int b = 10;
    System.out.println(a + b);
  }
}

Alright Java is objectively gross. POINT IS once you understand some basic concepts (in this case: how to add numbers together and print them out), it’s super easy to translate those concepts into different languages.

Does this language use semicolons? Do I have to declare what type the variables are? How do I print stuff out? Alright cool I think I’ve got it.

In fact programmers are so good at learning new languages, it’s not unusual for a seasoned programmer to be able to pick up a new language in just a few minutes.

How do I get started?

If you don’t need to worry about what language to learn first, how do you pick what to learn? Simple - pick the way you like to learn best, and find the most enjoyable class you can.

If you like working on a laptop, I recommend:

If you’re on an iPad, I love Swift Playgrounds - you learn to code while playing a game!

On an iPhone, Human Resource Machine is super fun and a great way to learn how machines are working at a really low level. I learned and retained more from playing this game than I did in my Assembly course in an undergraduate computer science degree!

Are you old school and like books? Check out:

Then what?

Oh man, the sky’s the limit.

If you get stuck, or aren’t sure how to reach your goals, feel free to shoot me a message on facebook messenger or send me an email! I read and respond to every message I get, and love helping new programmers :)