Choosing a Programming Language

1.Learning to Drive in Your First Car

A

In this chapter

At her one-year review, Anna is asked what comes next — starting with a question every beginner worries about: which programming language? We'll compare Python, JavaScript, Java and C# (and a few others), and learn why the first language matters less than people think, explained as learning to drive in your first car.

12–14 min

The Problem in Real Life

Month twelve. The festival is over, the Hack Day banner has come down, and Anna sits across a small table from John and Samantha for her one-year review. Samantha starts: "We'd like you to stay — not as a fresher any more." Anna breathes out.

Then John asks the question she's been half-dreading all week: "So — what next? Frontend, backend, data, DevOps, security?" And before she can answer: "And don't tell me you need to learn five more languages first."

J

Your first language teaches you to program. Your second one only takes weeks.

John

Collecting Languages vs. Getting Deep in One

Too many choices

Python, JavaScript, Java, C#, Go, PHP... every article says a different one is "best".

Starting over again and again

Beginners often switch languages every month and never get past the basics.

What do jobs want?

The right language depends on the work you want and the jobs around you.

Choosing a Programming Language: Python vs. JavaScript vs. Java vs. C#

The driving analogy: when you learn to drive, the car you learn in hardly matters. What you're really learning is how to drive: steering, braking, reading the road, judging distances. Once you can drive one car well, you can drive almost any car after a few minutes of finding the controls. Programming languages are cars. Act 07's ideas — variables, conditions, loops, functions, clean code — are driving.

  • What carries over between languages: everything in Acts 07 to 10 (variables, types, conditionals, loops, functions, data structures, memory), and everything in Acts 11 to 27 (HTTP, SQL, Git, testing, Docker, cloud, security). A developer who knows these well picks up a new language in weeks, not years.
  • JavaScript / TypeScript — the language of the web: runs in every browser and, with Node.js, on servers. The only real choice for frontend work; very popular for backend and full-stack. TypeScript adds types that catch mistakes early (Act 07). BlueTicket is built with it, and so is Anna's Hack Day project.
  • Python — the friendly all-rounder: very readable, huge in data, AI/ML, automation and scripting, and widely used for backends (Django, FastAPI). Often the easiest first language.
  • Java — the enterprise workhorse: strongly typed, fast, and everywhere in large companies, banks and Android history; the Spring framework powers many big backends. More words to type, very solid foundations.
  • C# — Microsoft's all-rounder: similar to Java in style; used for backends (.NET), Windows apps, many enterprise systems and game development with Unity.
  • Others you'll meet: Go (simple, fast, popular for cloud and DevOps tools — Docker and Kubernetes are written in it), PHP (still powers a large part of the web, with Laravel as a modern framework), SQL (not general-purpose, but every developer needs it — Act 13), and Bash for scripts (Act 06).
  • How to choose: pick by the work you want (web → JavaScript/TypeScript; data or AI → Python; large enterprise backends → Java or C#), check job adverts near you for which ones appear most (chapter three), and then go deep in one for at least six months. Learn a second only when your work needs it.
Table — Popular languages compared
LanguageBest known forTypical jobsFeels like
JavaScript / TypeScriptThe web — browser and serverFrontend, backend, full-stackFlexible; TypeScript adds safety
PythonData, AI/ML, automation, backendsData, ML, backend, scriptingReadable, beginner-friendly
JavaLarge enterprise systemsBackend in big companies, Android (legacy)Strict, verbose, very solid
C#.NET backends, Windows, Unity gamesBackend, enterprise, gamesLike Java, modern features
GoCloud tools, fast servicesBackend, DevOps, platformSmall, simple, fast
PHPWebsites, Laravel appsWeb backendQuick to start, huge web footprint
Table — Choose by the work you want
If you want...Start with
Websites and web appsJavaScript → TypeScript
Data analysis, AI, automationPython
Backends at large companiesJava or C# (check local jobs)
Cloud and DevOps toolsPython or Go, plus Bash
Any of the aboveSQL, always

Anna's answer: "I'll stay with TypeScript — it's what I use every day here, and I want to get really good at it. Next year I'll learn enough Python for data scripts and automation, because the reporting work keeps coming up. And SQL, properly." John nods. "Good. One deep, one useful, and the one nobody can avoid."

Key Takeaway

The first language matters less than it seems: like learning to drive, the real skills — variables, logic, data structures, HTTP, SQL, Git, testing — carry over to every language. Choose by the work you want (web: JavaScript/TypeScript; data and AI: Python; enterprise backends: Java or C#; cloud tooling: Go), check local job adverts, go deep in one for months, and add a second only when your work needs it. Everyone needs SQL.

Why This Matters

Beginners lose months switching languages and never getting deep. Understanding that concepts transfer — and choosing one language for the work you want — lets you put that time into building real skills and projects, which is what employers actually look for.

The language was the easy part. The real question was the other half of John's: frontend, backend, data, DevOps, security — which kind of work does Anna want to do every day?

Next