Is it a good idea to use many programming languages and technologies in the beginning of your career?
Discussion started by someone anonymous
The other reson of accepting it is due to covid-19 crisis and companies don't hire right now and it's risky to change job.
The developers can integrate PWA into their development, which will be in sync across all platforms. The best part of PWA is that they can work offline too and load the page pretty fast. Twitter has started the development of their PWA and will be deploying soon. Many developers are employing this technology because of the simplicity and features. Also, you can implement AI and ML, here is more https://www.intellias.com/customer-churn-controlling-using-machine-learning/
From my past experience, I would say to learn everything about everything. Because Covid-19 had taught us that time never stays the same. you would never know what could hit you and you ending up losing the job. In order to be a game-changer, learn a new skill every month and ace your cv.
I would say, yes, it is a good idea. In your situation, the only thing changing is that the back-end framework you're using is moving from using Node.js to using Java. You're still a web developer. Do you think you're gonna be using Node.js for the rest of your career? Probably not, and I would even argue, using Java environments will enhance your knowledge of Node.js environments.
If the worry is getting interviews later, I hate to say it but having impressive names on your resume can help. Or deploy an impressive project that gets many, many users. There are plenty of good developers but marketing yourself is one of the hardest things.
I had more turbulent switches than you. Started with vanilla PHP, JS, HTML, CSS and after 1+ years switched to Java, Spring, JSF, AngularJS then used it for about 3 years switched to Node.js and Android and after 8 months went to ColdFusion and C#. Then again, after 1 year of that switched to Java and some Scala and after 8 months to C#. After ~10 months of C# switched to Java, Kotlin, Groovy combination and been working with it for 1 year now.
- I learned about concepts of development and different styles and can pick a nice tool for some tasks quite easily. This is huge plus for consultancy when job needs to be done quickly.
- I don't care anymore about this or that being better and ignore such posts. I can learn other languages much faster than before as I'm not stuck with only 1 style of development or 1 technology.
Problem is that I see a lot of friends being experts at some things and I cannot put it on a paper and companies usually avoid such developers. Reason is that they all want experts. (as you mentioned)
Because of my destiny to quit and get fired frequently I never had time to learn some stuff I wanted so I lack things like being able to always tell which pattern is best here and such. Although I don't really care it's quite required to be like that when looking for a job the same as with years of experience.
Now all that said I think technologies will be hard to learn when switching, it's much easier to learn what is what in one language and understand where it got inspiration from and why is it like that. Then learn a lot of different languages, tools, frameworks to understand different approaches to the problem.
Currently I got into position as System Architect (consultant) by accident. I work for a client in their offices which is not Software Company. Now those guys only present you feature requests and you do your best to make it good. And as soon as you get out of software companies you see that we should serve rest of the people by automating their work and making it way easier. Rest is not so much important
IMHO it's mandatory and fun to experiment as much as possible but I think it's probably better to study and try to use computer science fundamentals such as algorithms, data structures, and design patterns more than just try out technologies. In the long run, this enables us to develop and understand any language.