Is it a good idea to use many programming languages and technologies in the beginning of your career?

·

I'm a software engineer consultant working with different clients of the consultancy company which hired me. I'm a fullstack javascript using Node.js and React.js for almost 3 years now. Actually, I'm working with a client for a long period mission and they proposed to me a new project (java, spring boot and react) or the mission will stop because the other project finished. I haven't used java before and I don't have any experience with it and I accepted the proposition in order to learn new programming language. Sometimes, I feel worried that I will loose my experience in javascript especially in Node.js,if I will change the job or I apply for new job because of variety of technologies that I have in cv and I don't concentrated in one thing for a decent period of 5 years or more (that's what employers want when they hire "years of experience" in a specific programming language or technology).

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.

SergoManro's photo

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/

Robert Jones's photo

Thanks for addressing this topic. I was looking for the information regarding the same PrepaidGiftBalance .

Adam Kostka's photo

When I started learning programming I tried to learn as many languages as I can because then I didn't know which language would be helpful in the future.

Anne Freeman's photo

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.

David Wu's photo

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.

Also I think if the goal is continued growth as a software developer, it is pretty important to have substantial knowledge across different programming languages and environments, such as C, C++, Java, Python, and JavaScript. In this way, you're not just a code monkey implementing things in the one tool you are most familiar with, but able to think at an architect level and make higher-level decisions.

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.

Haris Secic's photo

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.

  1. 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.
  2. 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

Nicolò Marchesi's photo

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.