The best programming language

When I first started programming I spent an unusual amount of time googling things like "best programming language to learn." I would spend hours reading up on the pros and cons of different languages, or how some specific language was clearly the best. Having spent the last several years writing code in a wide array of languages, I finally feel comfortable declaring the definitive G.O.A.T.

The best programming language is the one that makes you program the most. I don't mean the the language that requires the most lines of code to get stuff done, I mean the one that keeps you at the keyboard the longest. The language that makes programming as fun as possible for you. In 99.99% of cases, the bottleneck for the development of new programmers is not the capabilities of the language they're using, but the amount of time with which they use it.

Programming requires an absurd amount of deliberate practice in order to become proficient. Before the point of proficiency, your time is best spent actually programming instead of reading dogmatic articles about which language or technology is the best. Ignore the senior dev in your office that constantly exclaims how "You need to learn C++!" Instead, play around with a few languages or pick the one that you're already the most familiar with, and start building. One of my favorite programming personalities, George Hotz, gives terrible advice in this regard. George recommends that new programmers start with Assembly then C then Python. His logic for this suggestion is to start as close to the hardware as possible, and slowly work your way up, gaining an appreciation for the utility and features that each higher level language gives you. In theory this makes sense, but in practice, most aspiring developers are overcome by boredom before making it past Assembly. I would never have become a software developer had I taken George's advice.

I recommend learning a language that allows you to make things fast. Keep in mind that the bottleneck of your development as a programmer is not the capabilities of the language you're using, but your own attention span and time. Languages that produce results fast and in few lines of code will maximize the probability of you finishing the project that you're working on and minimize the chances of you getting bored and quitting. Python is one such language, as it's highly expressive (can do lots with a few lines of code), and has extensive libraries for building whatever you want (websitesvideo gamescommand-line toolsmachine learning, you name it).

Only after you've become proficient at programming in some language does it make sense to weigh the pros and cons of different languages and technologies, and even then the debate is highly subjective. The Linux Kernel is written in C, Chrome is written in C++, Kubernetes is written in Go, and VS Code is written in TypeScript. For every great tool written in some language, there's a great alternative written in another. There are no silver bullets in the world of programming, only trade-offs.

I'll finish with this. To become a great piano player, you don't read books on the piano, you play the piano. Programming is no different. If you want to become a great programmer, spend less time reading about which programming language is the best, and more time programming with a language that you enjoy.


← Back to home