As a young developer, or a newbie just breaking into programming world, you're most likely going to be faced with myriad of difficult decisions to make which is as a result of overwhelming and diverse information you have consumed about the course. One of them is the decision on whether to stop on your first language and focus on it alone or taste as many languages as your mouth can take. That was exactly my experience.
Flashback to four years ago when I was surging as a developer. I had two mentors who are diverse in a school of thought. One is a PHP developer that eats anything PHP— raw or minted in Laravel. He always advised me to learn a language, focus on it and master it. My second mentor writes almost all programming languages. I had seen him write four different languages when I challenged him and he told he writes almost all major languages— PHP, JavaScript, Python, Flutter, Java, and Kotlin. He explained that he used the one that best works for his project. I got confused and didn't know whose words to listen. It took me a very long time to understand their diverse stands.
After a deep look into them and their career path, it came clear to me why each of them subscribed to their respective school of thought and how they are both correct.
My first mentor who programs in PHP is a senior backend Engineer in a large software company. While he advised me to focus on a language, he explained that focusing on a language would give me the fortune of having a master knowledge of that language which will eventually place me at a good position for recruiters who hire only the best in a stack. My second mentor is a freelance software engineer. He gets his jobs from different people, companies and organizations. Web apps, Mobile apps, desktop apps and all, and he would be the only one to work on the full stack of those applications.
This study, and a comparison with other cases revealed to me that decision to either focus on a language or grow diverse is based on the career path of your choice as a developer.
What do you want to do with your programming knowledge? Work for a big company? Then you want to put your energy on a language, master it as hell and put yourself in a position that catches the recruiter's eyes. Companies like Facebook, Google and others only hire the top talents in a stack. They don't look for driver and conductor in a person. They go for effectiveness and hire the bests for different roles.
Do you want to freelance, start your own solo software company or looking into the seat of a CTO? Then you want to pick up as many languages as you need for your niche or as you want to expand your opportunities. A freelance web developer for instance would want to have skills to develop the full stack of a website or web app. I mean, it is very rare to see people hiring freelancers to work on just the backend alone. They want someone who will handle the entire stress. So, you need a relatively sound knowledge of JavaScript, PHP or/and NodeJs and be cool with markup and stylesheets. You want to expand more into mobile app? Then you will pick up the languages. Java, React Native, flutter or any other one. Same case is with a person looking to start a solo software company of theirs. The implication of this is that you will have to study X times someone focusing on a language. You will need to update your knowledge on multiple technologies to remain relevant. The good part is that these languages have similar syntaxes such that you can easily pick up another after you learnt one and could use it very well. Yet, you have a lot of work to do.
Nevertheless, irrespective of the path you choose, you would want to learn at least a language more. Even if it's going to be to just understand the syntax. Reasons range from the fact that even some recruiters want a head do the whole job and the fact that you want to know what other things look like compared to your language. It gives you an edge at least in most cases. Also, irrespective of your path, you will find a language most interesting which will eventually be your top skill.
The bottom line? Know your career path, it says a lot on which decision to make.
Want to get started in tech? I am helping people go from zero programming experience to intermediate web developers ready for job through personal mentoring in my coding school. You can join us too.
Find value? Why not spread the grace by sharing the post?
Till another letter, keep learning difficult things, they bring money difficult to count!