Does anybody else feel overwhelmed by the JavaScript ecosystem?
Does anybody else feel overwhelmed by the JavaScript ecosystem and 'needing' to keep up with the latest tools/frameworks/libraries? I have read a lot about new things like esbuild, Vite, Nuxt, and many more, but between my 3 kids and full-time job as a developer I have almost no time to learn them, and choosing 'what' to learn often feels overwhelming because of how many things are out there.
If I don't keep up I feel like I'll soon be irrelevant. Is it just me, or do other people feel this way as well?
I suffered some extreme burnout a few years ago so perhaps I just don't have the drive anymore.
39 comments
[ 3.2 ms ] story [ 82.6 ms ] threadI stick to learning only what is sensibly required for the project, which can be complicated enough if that means React, redux, GraphQL, Angular, NgRx, etc.
The time to learn comes when there is an actual need to build something on a reliable, widely adopted tool/framework.
You learned this much and you won't forget how to learn. Trying to learn everything on the rapidly expanding edge is not necessary.
If you still feel compelled to learn something on the frontier pick a small area to make it scale.
Otherwise yeah Javascript has become only more insanely complicated lately.
I remember when it felt like every year there was a MAJOR new library that you HAD to use. I started with vanilla js, then it was jQuery (which was a huge improvement), then Backbone, Angular, Meteor, React.
Then there were the different build systems that went along with the libraries/frameworks, new CSS frameworks as well, etc etc.
I'll admit, the last few projects I've been working on have been React and React Native, so I'm rarely diving into new frameworks and tools anymore.
Find something you like that is fairly common, and go deep on that.
Truth be told, even though I live and breathe even keep a list of things (JS frameworks and APIs) that I've _explicitly_ decided to never take a closer look at, just for mental memory management purposes. No one can be an expert on anything in any field.
Be an expert in two to three things. Currently, I concentrate on React, TypeScript, GraphQL, APIs (Axios). This keeps me busy and continue to be for next couple of years.
Just focus on what you are using or you think you will need for your job.
At the end it's only JavaScript, so if you need to use a new library, just learn it.
don't sweat it if you miss a few, the newest stuff is just around the corner, and always will be
If you're in a stable employment situation, diving deeper into existing things you use will be more beneficial than knowing the tip of 10 different icebergs.
Learning something by doing a hello world or building a todo list app really skims the surface of what its like to work with that tech on a constant basis. After working in software development for a couple decades, I have the mindset that I can learn any of these if I need to, the underlying tech doesn't change that much.
That said, it involves a ton of reading, and reading Twitter daily to stay up-to-date.
I've been thinking of putting together a curated website to break down the differences between JS tools, explain what the metrics and trends mean. In the end, everyone wants an exhaustively researched short-list so they're not missing some obvious trend, and then they want recommendations to suit their personal preferences. Existing comparison sites lack the necessary curation component to tease apart the layers involved in each tool.
If you would need to — you open docs, spend few days learning, playing with examples - and you ready to go.
This is how I became JS developer one day with near zero prior JS experience. Okay, i'm not that smart and it took me few weeks instead of days )
But still, after java and ruby I didn't face any radically knew info or challenges getting on js train.
All the frameworks and tools are just built on top of those, once you know the basics you're set.
The struggle to keep up with JS feels more like a meme to me than anything else. I've been a professional front end dev for 5 years and have never felt this alleged pressure.
There hasn't been a new player worth noticing in the front end framework space in years. Tune out the noise and learn the fundamentals. Choose tooling that does what you need out of the box. You don't need to know everything to get started.
Example: If you’ve learned React, stick with it or React-native. Don’t learn a React derivative such as Next.
I think it just takes a bit of experience and chatting with other devs, and comparing libraries’ popularity metrics and reviews, to get a sense of where the ecosystem is headed in terms of framework/library traction.
Definitely don’t unfocus and learn random things. Learning should be a strategy towards a goal.
In my case it’s to have corporate in-demand skills and skills I can use to build my own projects. So, I focus on React, Node, PSQL, AWS tools, etc. while occasionally researching new tools and dabbling.
For example I’ve recently begun dabbling with Parcel, but only because I see it as relatively accepted in the community via chatrooms, forum posts, and articles. Otherwise I’d stick with webpack for reactjs compilation.
I toy with new tech on occasion but there’s no reason you have to worry about it.
I'm coming from a backend-environment and had to learn how to do frontend as well. While JavaScript as a language can be handled (it has its quirks, as all the other languages out there, still quite logic IMO), the tooling around creating an application is totally a mess. A packager and babel and module handler and use express and build with vite oh and version ES6 or better ES20 or back to ES5 and serve the static content with sirv and ts.config and ... On the backend side I was used to just install my packages and be able to start coding. Not on the frontend side.
I have to admit that I find it to be a more complex environment, as you need to support different browsers, you have a client and server part, you need to handle session/state data and so forth. Beside that you need to take into account security, performance on client/server, network communication, local storage, and the list goes on. There are also hundreds of ways to do a single thing. In the end what helped me was to stick to a single framework and follow its way from start to end.
Also the advent of frameworks like Svelte/SvelteKit helped a lot as they reduce the tooling to a bare minimum, keeping single components maintainable with mostly pure JavaScript.
Tl;dr: You are not alone :-).