Jack of all trades – a case for a general programmer
What exactly is a jack of all trades ? According to vocabulary.com, a jack of all trades is a person who has some level of skill in many areas.
The world is changing, and so must we
Technology is changing faster than ever. If you look back even a few years, things seem almost unrecognizable. Just looking at graph of the most popular programming languages since 2014 should give you an idea on how fast things are moving. Just for reference: Javascript was invented in 1995.
Vertical vs horizontal learning
There are mostly two directions in which you can go as a software developer:
- Vertically – getting more and more specialized at using a framework and/or programming language. You’ve gone further down the rabbit hole than most people.
- Horizontally – you broaden your perspective, learn something new and add a new skill to your arsenal. You have a broad view across many fields.
Now, here is the catch: The more proficient you are with a language, the harder it is to improve. You don’t trust me?! Think of it this way: You learned more in your first week programming, than you did last week, right? Following this logic, it comes a point in your career when the effort to improve can be just too big. This is the time to look for something else to learn.
The framework is a tool
The language is a tool. It’s a neat little way you can express your ideas in a way the computer can understand them and then execute them. I sometimes see some developers who share an emotional connection with the language of their choosing. Usually it’s the one they’re most familiar with. Or it’s the one they started with. Keeping an open mind pays off. If you’re not a fortune-teller, you can’t tell what the future will bring. When you get married to a certain programming language, then it means you blind yourself to all the possibilities that lay out there, outside of your chosen horizon.
As the old saying goes, don’t keep all your eggs in one basket. It usually applies to valuable. I would argue that your knowledge is valuable. Don’t you agree ?!
Use the right tool for the job
As many other tools out there, different programming languages have different strengths and different weaknesses. Choosing the right tool for the job can mean the difference between breezing through a project, and spending lots of sleepless nights pushing a boulder up a mountain.
When you increase your bag available tricks, then you have a wider perspective on any problem you might try to solve. When it’s not that easy to think outside the box, it might be just as profitable to have many boxes you can think inside of. This seems like a good note to finish this article on, don’t you think ?