Choosing a Programming Language: A Practical Framework
A practical perspective on choosing which programming language to specialize in, based on career experience across multiple platforms.
The Dilemma
During my Master's in Information Technology, I consistently earned top grades in every programming course. The challenge was not learning the languages; it was deciding where to focus my energy for long-term career growth.
Loving code made the academic side straightforward, but the professional world demands specialization. You cannot go equally deep in every language and still be competitive.
What I Have Learned Since
Having worked across PHP, Java, Android, .NET, and now managing teams building in Kotlin, Swift, and cloud-native stacks, here is what I would tell my younger self:
1. **Master the fundamentals** - data structures, algorithms, design patterns, and system design transfer across every language. These are the skills that compound over a career.
2. **Follow demand, but do not chase trends** - mobile and cloud were not going away in 2011, and they have only grown since. Make informed bets, not reactive ones.
3. **Build real products** - the fastest way to learn any technology is to ship something with it. Side projects, open source contributions, and product work all count.
4. **Specialize deeply, stay curious broadly** - be the expert in one domain, but maintain enough fluency in adjacent areas to collaborate effectively across teams.
The specific language matters far less than your ability to solve problems, design systems, and ship reliable software. The fundamentals carry over everywhere.