Ask HN: Should I move away from JavaScript based skillset because of saturation?

29 points by nassimsoftware 1 year ago | 43 comments
I have noticed that there is a lot of competition for frontend/full-stack jobs where the tech stack being used is JS based (JavaScript/TypeScript, Next.js, React, etc...).

In your opinion would developing a skillset in another programming languages like Java, C#, Golang or even going deeply on SQL would increase the likelihood of finding a job because of less saturation.

A related question : If you have experience working in a specific tech stack (programming language + specific frameworks) but want to target jobs involving another tech stack, how would you go about demonstrating competence on this new skillset in your CV?

Will adding personal projects with a Github repo do the trick?

EDIT : My question can be boiled down to if "is it even worth it to stay in JS anymore" and not "how do i become a well-rounded individual" like it has been understood by some commenters.

  • ativzzz 1 year ago
    I think there's never been a better time to be a JS developer. JS is now everywhere. It runs on browsers, it runs on servers, it runs on mobile devices. You can use it as a scripting language if you really hate python and ruby. You can compile it to webassembly. There's game engines that use JS. Typescript is great as JS projects grow larger and more complex (if you can get over the fact that reading complex types is stupid)

    So the more and more JS devs are coming in, the more we need JS experts who really understand how stuff works at lower levels. Like for example the browser event loop - https://www.youtube.com/watch?v=cCOL7MC4Pl0

    Being an expert that deeply understands a tech stack will never go out of style

    • hellisothers 1 year ago
      All this is true but there are some other factors I’d consider: - Experts will definitely be valuable but with an extreme bell curve favoring the top. 10+yoe? Yes. 3-4yoe? Maybe -JS is ubiquitous but as a company grows the techstack specializes. JS at a startup would be very valuable everywhere, JS at a late stage FAANG will be more constrained
      • sproketboy 1 year ago
        [dead]
      • steve_adams_86 1 year ago
        JavaScript gives you access to a large pool, and while there are a lot of people fishing in that pool, you can use soft skills to dramatically increase your odds there.

        I get work in part because I can work with TypeScript, though I have many other languages and hard skills. It’s also because I’m a strong communicator, I can organize my thoughts and plans well in lay terms, and I have particularly sharp empathy for what a client or customer (for example) needs.

        This allows me to point my skills of solving problems that matter to people in ways they can see, understand, and value.

        This is just a piece of the bigger picture of how you can differentiate and stand out. At the end of the day, your ability to write JavaScript or Go or Rust shouldn’t really matter much; people should be picking you because you can collaborate with, understand, and support them in all the ways they need.

        In my experience, this is where a lot of software developers have weaker skill sets, and you can fill a lot of important voids that non-software people experience to great effect. This will be true no matter which language you focus on.

        • n3tfox 1 year ago
          This is sound advice!
        • sokoloff 1 year ago
          The reason to develop a skillset in a different programming language is not because JS is such a widely popular ecosystem (on both the labor demand and labor supply sides), but because having a reasonable level of comfort in multiple languages makes you better as a programmer overall and therefore more likely to compete successfully in interviews and on the job (and, IMO, it's a damn lot of fun as well).

          Even if you only ever wanted to work in JS and an infallible oracle told you that you'd never be out of work longer than a week at a time, I think you should still become reasonably familiar with a few other languages.

          • john-radio 1 year ago
            Comfort and familiarity with a variety of languages is always a nice to have for a professional developer, but if the hypothetical oracle said the opposite, that focusing on JS would indeed limit OP's professional options, then that would be a much more compelling reason to go learn some Golang or whatever than just intellectual curiosity.
            • twelve40 1 year ago
              yeah "better programmer overall" seems rather vague. The OP seems to be asking specifically "is it even worth it to stay in JS anymore", not "how do i become a well-rounded individual".

              I personally prefer to hedge my bets by doing both backend and frontend work. If you join a smaller place/startup, you may end up having to push both. Saying, "I can build anything and I can help across the entire stack where needed" and showing history to back that up i think is a positive. Yes, a github project in a different stack might come in handy at an interview.

              • sokoloff 1 year ago
                I left a few assumptions out of my response that may help anchor my advice back to the question as originally asked:

                There will, for the next decade and likely the next two decades, be several million jobs that are using the Javascript ecosystem. (out of ~30M programmers worldwide). If OP (or anyone else) is happy enough working in that ecosystem and concerned only about ongoing employability, finding a way to be in the top 10% of Javascript programmers is more than sufficient. (Being in the top 25% is probably more than sufficient.)

                If you start from a base case of 10K hours of JS experience, are you better off with that or instead having 9K hours of JS, 250 of a lisp, 250 of Java/C#, 250 of golang/rust, and 250 of SQL? I think the latter candidate is far more likely to be able to succeed and thrive in the JS world than someone with the "extra" 1K hours of JS experience.

                I think you choose JS or not based on whether you like working in JS, then if you choose it, you find a way to maximize your chances for success, which I think is "something different from JS and happens to be 'become a well-rounded individual'."

                • nassimsoftware 1 year ago
                  This is exactly what I'm asking about. You hit the nail on the head.
            • dr_kiszonka 1 year ago
              I am not a JS developer, but in some tech areas there are niches with relatively fewer developers competing for the same position.

              I don't know if this is actually a niche, but since I don't see it mentioned frequently on HN, perhaps you could have a look at Google Apps Script [0], which is basically JS for automating and extending Google Docs (Docs, Sheets, Forms, Slides), and integrating them into GCP. Tons of companies have whole departments living inside Google Docs, so I imagine they would pay for software making their lives easier. I would but I currently don't have the budget for it, so I am writing short scripts myself. Curiously, Bard and ChatGPT produce really bad Apps Scripts code, which would be to your advantage.

              When I occasionally hire people, I do look at their repos to see how good they are in a specific language. Specifically, how easy to follow and idiomatic their code is, what the quality of their comments and documentation is, are there any tests, even if very rudimentary. I particularly enjoy original projects like home automation, custom keyboard firmware, an alternative Netflix UI, a ggplot extension, a basic Python wrapper for some overly-complicated API vs. your typical to-do app or yet another analysis of the Bike Sharing dataset. I don't expect all people to have public repos or FLOSS contributions because not everyone has the time for that. However, if you wanted to demonstrate skills in a technology you haven't used professionally, I think it is a good idea.

              0. https://developers.google.com/apps-script

              • gumby 1 year ago
                Do you enjoy what you do? js front ends aren't going away any time soon (inevitably they will someday, of course).

                Anyway, if you like what you're doing and are just wondering if it's safe, why not expand your skills rather than jump to a separate pond. To use metaphor: "increase size of your circle" or "learn something in an overlapping circle".

                Also, I suggest expanding first in the area of fundamentals. You mentioned SQL: it has outlasted many fashionable programming languages and is likely to do so for quite a while. Or improve your on algorithms and DS skills a bit. This is because the "next language" is statistically going to last a short time, while the deeper skills will make you better with whatever the fashion of the day happens to be at some time in the future.

                • joshxyz 1 year ago
                  maybe anecdotal but in my experience there is no saturation in devs who are doing things properly.

                  im in a multinational company in a billion dollar industry yet our frontend code is reactjs without typescript, eslint misconfigured, stylelint not used, bad practices on use of react hooks, and many more.

                  there are teams and devs that are out of touch on maximizing what tools are available out there. im not even saying they are incompetent, what i mean is most are just unable to keep up.

                  • happytoexplain 1 year ago
                    My perception is that the vast majority of employers are lacking either the will or the experience to recognize skilled developers and the value of their skill. In other words, skill depth is borderline meaningless in job-hunting, as opposed to skill breadth. Do you think that perception is exaggerated/pessimistic?
                    • willsmith72 1 year ago
                      Skill depth is hard to test in an interview, and arguably less valuable in the long run for an organisation than other skills (communication, learns quickly, takes ownership etc.).

                      Skill can be taught

                      • joshxyz 1 year ago
                        i think of it as being a character with stats

                        having depth in technical skill is maxing out one stat

                        but there are more stats

                        - how you communicate, persuade, negotiate, and sell ideas

                        - how you work with the team, how you navigate office politics

                        - how you meet your kpi's, how relative your efforts are in capturing business value for the company

                        sometimes it's not our technical skills that determine our satisfaction and dissatisfaction.

                        personally i enjoy my technical skills more when i work on my personal projects. pure enjoyment lol.

                      • nassimsoftware 1 year ago
                        How would you go about demonstrating that you're a dev that do things properly in your resume?

                        Considering the code I wrote for work is in private repos, would you have to create an open source project to demonstrate this to future employers?

                        • bern4444 1 year ago
                          Put the projects on your resume along with the associated impact.

                          In interviews you'll be asked about them. If you're not mention them or refer to them in your answers to other questions! Discuss your approach to the design of those projects, considerations, performance tradeoffs, how you approached testing, how deployments were handled etc.

                          Mention the tools you used that made a big difference - maybe swapping compilers led to faster build times and smaller bundles. Swapping test runners led to improved test times. Maybe you tried to swap test runners and that increased test times and so you went back to the previous one. Maybe you led an effort to automate deployments!

                          Discussing migrations from old patterns to newer ones demonstrates that you know what good tools are available and you know how to leverage them.

                        • jimmychoozyx 1 year ago
                          "yet our frontend code is reactjs without typescript"

                          I don't blame them. I hate Typescript. Worked on projects at a major gaming company, no typescript necessary.

                          • frfl 1 year ago
                            Of course your opinions are your opinions.

                            However, if the JS build system was actually sane, TS would be the default choice. It's a superset of JS, so saying no typescript necessary is like saying a horse gets me from a to b, no need for cars. TS is objectively better for many use cases and situation if you spend an hour learning it without all the build tooling nonsense getting in the way.

                            It's equivalent to a company using assembly when they could choose to port to C because assembly gets the job done.

                            • jimmychoozyx 1 year ago
                              Eh, I just didn't need it.

                              I learned it but never saw the need for the extra overhead.

                              It's full of these situations. And I'd rather just see less code due to "Attention Economy" issues-- the more things to focus on, the less focus each thing receives. It's easier on the big picture, if there's less things going on. TS has a ton of terms and concepts that I just don't need to make my business logic work.

                              const cat Cat cat<T Cat> = cat

                              vs.

                              const cat = cat

                              dto? iterface? i can define those without typescript. Just plain objects with comments about what they do and what they are.

                              Anyway, yep it's just my personal opinion of course.

                              My opinion is basically... I think in some cases there's a desire to make things overly complex, sometimes even as a way to gate keep--

                              I'm not saying that's what is happening here.

                              But sometimes I feel that way about Typescript leaking into all of the Javascript ecosystem.

                        • willsmith72 1 year ago
                          Definitely not. Maybe there's a lot of competition for full stack jobs, but at least in Vancouver, that's increasingly where more of the demand is.

                          Most companies have let people go, stopped hiring, or reduced the rate at which their headcount increases. Whether it's a good idea or not, that puts more companies in the spot of needing 1 engineer to do the work of 2, and the simplest way people see to do that is hiring full stack developers.

                          Even full stack aside, it makes hiring easier if I can keep hiring JavaScript engineers instead of needing some JavaScript, some Java. Companies all around the world need web apps and apps built, and will for a long time to come, and more and more of them are moving to a majority-Js(/TS) stack.

                          It's not like COBOL where you have systems which need maintenance and a retiring generation of engineers. There are still an abundance of java or C# or sql devs out there.

                          Do what you love, and if that's c#, go for it. But if I had no preference, I would go deep on JavaScript.

                          • moribvndvs 1 year ago
                            A language being popular or competitive is not a particularly good reason to avoid a language. However, you should learn more than one language. If you’re worried about competition or saturation, being flexible and having a wider set of tools/experiences to draw from is more useful than picking the “perfect” language.

                            Start somewhere (JS is a decent place to start) and become proficient in it, and once you have concepts down the others become easier. Then branch out from there. Learning C# or Java is an accessible next step from JS.

                            Always be trying new things. Don’t know where to start with the new thing? Try rewriting a project you know well from scratch in the new language/platform. Don’t have a project? Try the ubiquitous todo example app, or reconstruct some site, service, or app you like. It doesn’t have to be something you sell or put out there, you just have to make it work and understand how you did it.

                            • Capricorn2481 1 year ago
                              When people say it's easier to get a higher paying job in [niche language] and that you'll have less competition, they're just echoing nonsense they've heard on the internet. There are a lot of devs in JS for sure, but there's also a lot of below average devs in that space. It's actually easier to stand out than with a long established language like Java with decades of baggage in how to do things. People will spot a Java beginner a lot quicker.

                              Moreover, you can't control what a company is looking for. They might hire you because of your hobbies, and I'm not even joking. If you're feeling discouraged by the process, understand that it's not abnormal for first time devs to apply to 80+ jobs and not hear back from any of them. It's just part of the process. Keep applying like that's your job

                              • frfl 1 year ago
                                From what I can tell and what I've seen[1], _right now_ and maybe for a while longer[2], applying and not hearing anything is gonna be the norm, even for people with more than 10 years of experience, forget those with less than that much.

                                [1] Personal experience over 2 months, what I've seen others I know experience, and what I've found researching the current hiring market online (reddit, HN)

                                [2] At least until the current high interest rate economic situation changes

                              • bwh2 1 year ago
                                As a hiring manager who looks at a lot of resumes, I think your hunch is correct. I see a lot of junior to mid-level developers that primarily work in JS/TS/React. That market is heavily saturated and I regularly read posts on LinkedIn from these people about how difficult it is to find a job.

                                The candidates that stand out from the pack are those with some tangible production backend experience in languages like C#, Java, etc., combined with SQL experience. Strictly in terms of marketability, I do believe getting real-world backend experience greatly increases your value.

                                • nassimsoftware 1 year ago
                                  Would say working on backend projects with languages C#, Java, etc... a good idea if it's not possible to get work experience?

                                  I would do those projects, add them to my cv and apply to backend roles for example.

                                  • bwh2 1 year ago
                                    It would help both in demonstration of interest in learning that language further and in being able to pass technical interviews.
                                  • willsmith72 1 year ago
                                    What are you hiring for? JavaScript doesn't just mean frontend.

                                    I am much more interested in how people pick up new tech and interesting projects than the specifics of the language. With modern libraries and frameworks I don't think you need deep experts in particular languages anymore

                                    • kristianp 1 year ago
                                      > JavaScript doesn't just mean frontend.

                                      I would assume they know that. There are plenty of projects that don't have nodejs backends.

                                      • willsmith72 1 year ago
                                        > I do believe getting real-world backend experience greatly increases your value

                                        This would imply they don't or they don't value it nearly as much

                                      • bwh2 1 year ago
                                        Agreed. That was the point of my comment - there is an abundance of developers who just work in JS/TS/React and have not picked up new technologies. Adding C#, Java, SQL, etc. helps your marketability.
                                    • Eumenes 1 year ago
                                      The JS world makes my head spin - can't properly keep up with best practices and tools. I've always seen iOS and Android development as being very secure and some of the hardest positions to fill.
                                      • nassimsoftware 1 year ago
                                        Would you say it's worth getting into native Android development as a junior or they only want seniors to fill these positions.
                                        • Eumenes 1 year ago
                                          Def worth getting into, and if you can't secure an Android job, at least you know Java, which isn't going away anytime soon. Def try and have a portfolio of non-trivial apps you could share during the hiring process.
                                        • n3tfox 1 year ago
                                          Java experience has the benefit of getting you into enterprise backend, which pays well and isn't going away anytime soon.
                                      • nerdchum 1 year ago
                                        Tech in general is saturated.

                                        Theres probably a billion Chinese and Indian people who are good at technology who could do all of our jobs.

                                        I wouldnt worry so much about job security as much as what you enjoy most.

                                        • stodor89 1 year ago
                                          Saturation? That's not how programming works.
                                          • ozim 1 year ago
                                            If you ask such question it means you are not good.

                                            So you want to find some niche where it is easier?

                                            I’d say double down on being good or really good at your stack and you will have profitable opportunities anyway.

                                            Mind you I am not writing that you have to be super good - just be good and deliver what you promise. Stack does not matter that much.

                                            • ojosilva 1 year ago
                                              I think you have better chances at competing fors jobs if your additional skillset enhances whatever your main focus snd experience has been: DevOps tools, server scripting, cloud deployments, specific JS libraries/frameworkd, databases, AI/ML, testing, QA and design skills.

                                              Just saying I was king of JS, but left my realm to become an aspiring pythonista with 20 forked repo PRs and an "amazing" personal project won't cut it. As a tech hiring manager, if and when I cared about your internet presence, it was because of a somewhat popular Github repo or elaborate community activity. Anything else sounded like you were trying to divert my attention, or just not that focused on your work, or, if anything, GH repo work is just too difficult to verify as authentic or may instead work against you.

                                              You can however beef-up your resume with good lower level languages, specially if they compile to wasm, ie Rust. In fact any skill that could be in an employer roadmap, ie "experience migrating to Next.js" makes a great asset for your resume.