Don’t spend too much time choosing your first programming language. It can be a difficult choice to make, so here are some notes on what several languages are good for.

  • If you will soon start a course, bootcamp, etc. that might choose a language for you, figure out which one and start learning ahead. It can be good to focus on just one language for a while when you’re learning your first language.
  • If you want the easiest starting point, learn Python because it has excellent error messages, a generally beginner-friendly design, and a very active community with tons of guides and places to ask questions.
  • If you’re focused on getting a software development job quickly:
    • Look at job postings that interest you to see what they require.
    • If you want to get a software development job as fast as possible, consider learning JavaScript. JavaScript is one of the easier languages to learn and there are many entry-level job opportunities that require practice with it.
  • If you’re determined to become a software developer, learn whatever language interests you most. It doesn’t really matter which one you pick because it’s normal and good for software developers to be familiar with many languages. If you can’t choose, start with C because it’s a widely used language that will let you focus on the fundamentals.
  • If you’re not very interested in programming but just want something to help with data processing, and tools like Wolfram Alpha, CyberChef, ffmpeg, ImageMagick, and Pandoc don’t meet your needs, then you will probably want to choose either Python, PowerShell, or Bash depending on your exact needs.
  • If you want to learn…
    • how to make websites, learn JavaScript (and HTML/CSS). While it is possible to build websites without any JavaScript, most websites use at least a little bit of it and many websites use a ton.
    • how to make games, read develop.games and design a game first, then choose a game engine that works well for that design, then choose a programming language that is supported by that game engine.
    • how to make desktop apps using web technologies, check out the comparisons between several options (not just Go and Rust) in Why Golang instead of Rust to develop the Krater desktop app by Ronald Pereira.
    • how to make desktop apps for Windows, consider using C# with .NET MAUI and Visual Studio. I’ve tried a few different ways to make desktop apps with C++, C#, and Python, and this one was amazingly fast and easy, yet also had a high-quality result.
    • artificial intelligence, machine learning, and/or data science, you will probably want to learn Python or C++. Some other options are R and Julia, but there are very few job opportunities for R developers outside academia, and Julia doesn’t seem to be getting much attention from the community for some reason.
    • cybersecurity, check out OverTheWire: Wargames.

language comparisons

further reading