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

  • 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

  • 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.

  • 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.

  • 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

  • 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.

  • 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.

  • 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.

  • 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.

  • 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

  • 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.

  • 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.

  • 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.

  • Saturation? That's not how programming works.

  • 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.

  • 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.