Back to Articles A woman surrounded by various programming languages looking confused

How to Learn to Code: Advice for Beginners

The language you should learn will vary greatly depending on what you want to build. So instead of thinking “I want to learn Python”, or, “I want to learn Javascript”, pick a language based on what you want to build. Learn by building a small project, focus on fundamentals, then expand. Skills usually transfer across languages, so prioritize practice and building projects over chasing a “best” language.

Asking “what language should I start learning?” is the wrong question. There are so many choices and if you pick one at random, you might choose one that is suboptimal for what you want to build.

Key Takeaways

  • The best language to learn completely depends on what you want to build
  • Most things can be built in many languages, but not all things work best in all languages
  • Narrow down what you are interested in first. WebDev? Mobile app dev? Embedded chip dev?
  • Once you choose the area, a few minutes searching google or a 10 second wait for your LLM of choice will give you options of what to learn
  • Don’t get stuck watching tutorials. Choose something to make and do it. See Escaping tutorial Hell for my thoughts on doing that.

How to Learn Programming: Quick Language Comparison

Interest / GoalRecommended LanguagesWhy / Good First Project
Web developmentJavaScript / TypeScriptUbiquitous for front-end and full-stack; build a personal website or Todo app
Data science / scriptingPythonRich data libraries and gentle learning curve; build a data-cleaning script or analysis notebook
Mobile appsSwift (iOS) / Kotlin (Android) / Flutter (cross-platform)Native performance and ecosystem; build a simple weather app
Game developmentC# (Unity) / C++ / Godot (GDScript)Engines and performance tradeoffs; build a small 2D game
Embedded / systemsC / C++ / RustLow-level control and performance; blink an LED or control a sensor

Use the table to match your motivation to a practical language and a bite-sized first project.

Outline

  1. The Conundrum New Developers Face
  2. There is No Best Language
  3. What to Ask Instead
  4. A Side Benefit
  5. It’s Not All Doom and Gloom

The Conundrum New Developers Face

I think everyone feels a little sorry for developers just entering the industry. AI is moving at a ridiculous speed. So much so that even veterans are overwhelmed and can’t keep up. Combine that with an ever increasing number of tools, languages, platforms, etc. Getting into this industry has some major hurdles for new-comers. It is therefore very understandable that they want to know “where should I start?”. However, I think they start with the wrong question, “which language should I learn”. This isn’t a bad question, I just don’t think this is the right place to start. Allow me to explain why.

There is No Best Language

With, relatively, few exceptions, most languages can be used to build anything. Javascript can be used to build servers, you can use C# to build front ends, python can tie just about anything together, etc. Even for things like embedded chips, you can use Rust, C, or C++. There are so many languages, so many things to build, and so many types of technology, why do I recommend people to ask a different question?

The reason is pretty simple, just because a language can be used for something doesn’t mean it excels at doing so. For example, there will be some pretty big speed differences in games programmed in something like python versus a game made in C or C++ just because of how the languages work. On the other hand, C and C++ isn’t good for web applications or scripting. An interesting graph can be found on github that shows the speeds of languages when calculating pi. This doesn’t necessarily mean you can’t do it, just might not be optimal for what you are trying to achieve.

What to Ask Instead

I never liked being told something was incorrect without being given an alternative. So what question do I recommend instead?

What made you want to program in the first place?

Was it a website with gorgeous CSS? Was it a mobile app that changed how you operated day to day? Was it something you heard about on the news and want to understand better?

If something made you want to know how to program, it must have affected you pretty heavily. Use that motivation to learn. Coding is hard. It requires a lot of patience and perseverance to learn and the learning never stops. Tech changes continually, best practices keep being updated, etc. You need a strong reason to want to do this. So start with that. Whatever made you want to start coding, find the language/languages it is written in, and then choose from those. A question to your favorite LLM or a few minutes googling will get you this info easily.

A Side Benefit

I’ve written about this before, but tutorial hell is a very real trap. When you start learning something new, the draw is to just watch/read tutorial after tutorial and never actually practice. If something made you want to get into this business, you already have something that you want to build or at least understand. Like I wrote about in Escaping Tutorial Hell having something you want to build will help you stay out of this trap.

Once you understand the basics of your chosen language, start trying to understand and build pieces of what got you interested. That will not only help you use what you have already learned, but show you the pieces you are missing.

It’s Not All Doom and Gloom

If you search AI on the news or your social media of choice, you will be inundated with posts about “AI will replace xyz”, “D company laid of XXX employes, plans to use AI”, etc. That is all happening, it is true. But there is a whole host of people who are learning to use AI (myself included) to do things faster and better than we ever thought possible. It’s terrifying and exciting and everything in between. I don’t believe AI will ever replace software engineers. I do believe it will change how we work though. Software engineering won’t disappear, it will just change. Like it has so many times before each time there was a leap forward in technology.

So jump on in, learn how to code, learn how your favorite piece of tech works and then build your own. Use LLMs to improve your knowledge and let your curiosity run wild. That curiosity will serve you well and will help keep the feeling of doom and gloom at bay.

FAQ — Quick Answers

QuestionShort Answer
Which programming language should I learn first?Pick a language that matches what you want to build (web → JavaScript/TypeScript; data → Python; mobile → Swift/Kotlin). Start with a small project to practice fundamentals.
How long does it take to learn a language?Basics can be picked up quickly but everyone is different. But if you build something you are interested in, it will go faster!
Will AI replace the need to learn languages?AI changes workflows but doesn’t remove fundamental problem-solving skills. Learn to use AI as an assistant, not a replacement.