What language should I learn?

A closely related question is ‘Why are there so many languages’?. The short answer is because languages themselves are tools. Perhaps a more correct question is ‘what kind of software projects am I interested in working on’?

So many popular languages are derived from C, it is a good language to know eventually, but it does not need to be the first language you learn. C, one of the oldest languages still in use today, was voted ‘TIOBE language of the year’ in 2017 because it was the fastest growing language according to the TIOBE index.

In the past, a relatively small number of languages tended to dominate. Most programs were written using relatively few languages. This is less the case today.

All programming languages have something to offer. The most important thing to learn is how to think like a programmer:

There is even a book that can help.

The best way to learn any language is to have a reason that is important to you. That is, you have a problem you really want to solve. Pick an appropriate language and start coding!

As the programming is terrible blog says:

The first programming language you learn will likely be the hardest to learn. Picking something small and fun makes this less of a challenge and more of an adventure. It doesn’t really matter where you start as long as you keep going—keep writing code, keep reading code. Don’t forget to test it either. Once you have one language you’re happy with, picking up a new language is less of a feat, and you’ll pick up new skills on the way.

—tef, programming is terrible, 2013-01-13

Don’t worry if you are not completely happy with the results of your early programs. You’ll improve with practice.

Every program I ever wrote is horrible about a year after I finish it. I have never written a program and said:

Wow, this is just perfect. I don’t want to change a thing.

—Dave Parillo, A bold-faced lie, 2018.

What languages did I learn first?

In the late 1970’s, I began programming using Applesoft-BASIC and Sinclair BASIC. In the 1980’s, I progressed from Rocky Mountain BASIC, to Pascal, to C and FORTRAN. Since then, I have been all over the map, coding in a variety of languages, depending on the project.


You have attempted of activities on this page