I have graduated from my university almost a year ago. Since then I have worked with many different technologies, such as PHP, JQuery, ASP.NET, C# etc. Recently I have switched to a company where powerbuilder is being used for development.
The problem is that I haven't mastered any of the above languages. I can do stuff with those but when it comes to the complex tasks I often struggle with it because I don't have enough deep knowledge about it. After looking at powerbuilder for a few days I sense that this is going to happen again because most of the application code have been done using some sort of library which requires some advanced level of skill on powerbuilder.
My question is, is it OK for me to work on different technologies without mastering a single one of them?
The reality is that very few programming jobs require you to know only one language or framework—even if you know it through and through. That's why focusing your attention on several of the most popular languages is a better approach for the aspiring programmer.
The computer programming industry is diverse and hires professionals who have a range of skills in various specializations. Those who work in computer programming often choose a specialty that they apply in their preferred industry, such as health care software development or network administration.
For a career in software development, you'll need a solid foundation in programming languages. Four you might consider mastering include Java, Python, C++, and Scala. Java is an all-purpose programming language used for developing server-side applications.
Software development is an incredibly in-demand and rewarding field to be a part of in today's competitive job market. In fact, it was recently declared the #1 best job in the US, according to job demand, salary expectations and career reviews.
If you choose to specialise the you are taking an opportunity cost by making yourself unavailable for other types of work. This is good if you can be confident that your chosen specialisation will last for a reasonable length of time. However, you can guarantee (along with death and taxes) that software will change. You will always be required to learn some new framework or approach in order to remain current.
So to avoid finding yourself at an intellectual dead end (are transputers still in use anywhere?) you should adopt a doctrine of constant learning. Learning is usually fun and almost always leads to a joy of discovery of some new tool or design. And never keep this knowledge to yourself (it only has a half-life of 18 months anyway). Share what you have learned with others.
So to answer your question: don't specialise.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With