Disclaimer: “good” as in getting started on the path that can lead to a senior or lead position after university; not as in how to learn programming.

“How can I become a big developer? I know only C# (.NET), and I don’t like Java.”

This was a question that was asked on Quora a while ago that I answered. It is often the case with students of computer science that sooner or later, the realization comes when you understand how big the field actually is, and how hard it is to become experienced in it. The most practical tips I can give for the above question is the following:

The Golden Rule in programming for becoming a world-class shade-breaking hero-of-the-people developer guru:

Always change jobs as soon as you can’t learn anything more from your colleagues.

Learning from a mentor at a place where you will spend a majority of the rest of your life at is the cheat code in life.

Quick reminder to everyone: You shouldn’t feel grateful towards a company for hiring you, they should feel grateful you chose to rent them your expertise.

When you are a salary man(/woman), you sell your youth to a business. If the compensation you get for selling slices of your life daily is enough for you to buy personal development, sure why not stay? Otherwise; assume you quit or get fired from a company after working there for 1 year: did those 1800 hours of your life make you more — or less — competitive on the job market, on a personal level, on getting closer to becoming whatever thing it is that our previous generation refer to as “adulthood” (personally I’m still not sure whether this one is an insider joke that a doctor will let you in on during the birth of your first child, or if it’s just a myth).

Some more practical tips:

There’s nothing wrong with not wanting to learn this or that language when it’s time for you to learn a new language. There’s plenty of widely used languages today that are equally worth learning! If you want to become a rock star developer after learning one language pretty good, my tips are:

As soon as possible, start to learn another language in a different paradigmthan the one you already know (most common languages today are multi-paradigm so strictly speaking the following examples are not mutually exclusive when talking about paradigms); if you, as you mentioned, currently only know C# (a compiled, imperative, et al. language) a good next choice would be Python or JavaScript (interpreted, functional, et al. languages), Get an Amazon AWS free trial account (it’s free for ONE YEAR, crazy) and develop (during your spare time, outside your day job) your own application (using the new language you’re learning!) that you deploy and maintain on your AWS account, Get pretty good at SQL (better than a semester at uni, not as much as a Database Administrator) and the major differences between the common implementations (maybe MySQL and PostgreSQL, and maybe Oracle and MSSQL as well, but more geared towards Enterprise)), Don’t forget the Golden Rule for reaching developer divinity!

Thanks for reading, and feel free to leave a comment or question!