July 8, 2026

Java: the language I learned first and never got to use

careerjavameta
Listen to the summary
0:00 / 0:00
A coffee cup icon with a small orbiting dot, representing Java, on the erkshitiz.com.np cover template

Before PHP, before Go, before any of the languages I actually get paid to write today, there was Java. I learned it at a small tuition centre called Stosh Java, one of those places outside the regular school curriculum where a bunch of us sat in front of old desktops and typed along as the instructor explained classes, objects, and why you needed a public static void main just to print something to the screen. That was my real introduction to programming as a discipline, not just a school exercise with QBasic, but something closer to how actual software gets built.

I remember being confused by a lot of it at first. Why does everything have to live inside a class? What is the point of an interface if a class can already have methods? Why is there so much typing just to declare a variable? Coming from something as loose as QBasic, Java felt strict in a way that annoyed me before it clicked. But once it clicked, it clicked hard. Object-oriented programming stopped being a phrase from a textbook and became a way of actually thinking about a problem: what are the things in this system, what do they know, what can they do. That mental model has stuck with me ever since, even in languages that don’t force it on you the way Java does.

Back then I built a handful of small projects with it, the kind every beginner builds. A basic student record system with Swing for the interface, something clunky that stored data in flat files because I didn’t know what a database was yet. A calculator. A very rough attempt at a library management system for a class assignment. None of it was good by any real standard, but it was mine, and it was the first time I experienced the full loop of writing code, running into a wall of exceptions, and slowly working out what I’d done wrong. That loop is still the job, twenty years of language changes later.

What’s a little strange, looking back, is that despite Java being where I started, I never once used it professionally. My first job was PHP. Then a stretch of full stack work, mostly JavaScript on the frontend and PHP on the backend. Then a move to Go, which is where most of my backend work happens now. Java just never showed up on the path, not because I avoided it, but because none of the jobs I landed happened to need it. It’s an odd gap to have: the language that taught me how to think about code is also the one I have zero real-world hours in.

That doesn’t mean I’ve ignored it. I still read up on where Java is heading, partly out of habit and partly because it’s genuinely interesting to see how much the language has changed since the version I learned on. Records cut out the boilerplate that used to make a simple data class feel like ten lines of ceremony. Pattern matching for switch makes conditional logic on types read closer to how you’d actually describe it out loud. Virtual threads from Project Loom are probably the biggest one, since they attack the exact kind of concurrency problem I deal with constantly in Go, just from a completely different angle inside the JVM. None of this is stuff I’ve shipped, but I follow it the way you’d follow a sport you used to play. You recognize the moves even if you’re not on the field anymore.

I don’t know if I’ll ever end up writing Java for a paycheck. It’s entirely possible I go the rest of my career without it. But I don’t think that makes the time at Stosh Java wasted. It was the place where programming stopped being something I copied off a whiteboard and started being something I actually understood, even if the language itself moved on without me.