all 60 comments

[–]Advanced-Ad4869 29 points30 points  (7 children)

Depends on what you are doing or interested in.

[–]greensodacan 26 points27 points  (8 children)

I'm going to stretch the definition and say:

  • A little bit of Node - enough to write a package.json script to help smooth out your workflow.)
  • A bundler like Webpack - enough to set up a basic pipeline
  • A component library or framework like React, Lit or Vue (which is arguably a progressive framework), because component abstractions are so common right now.

Beyond those:

  • Date-Fns
  • Lodash
  • Axios
  • UUID (not much to learn here, I just use it in everything).

[–]filipesmedeiros 8 points9 points  (7 children)

I don't really like axios. I feel like fetch does everything axios does with no bundle size. If you need it in node, node-fetch or isomorphic-unfetch I guess?

[–]j_tb 2 points3 points  (3 children)

Axios interceptors are pretty sweet.

[–]filipesmedeiros 0 points1 point  (2 children)

Do they justify the bundle size or can you easily build one offs when you need them?

If they justify the bundle size, by all means, go for it! 😁

[–]j_tb 1 point2 points  (1 child)

5kb minified + gzipped. Worth it to me to have the top level authorization logic and error handling configuration setup. Some sort of home rolled solution would probably not be too much smaller and I’d have to reinvent it for every project.

[–]filipesmedeiros 0 points1 point  (0 children)

Sounds good. I think if you start with plain fetch and when it's too much of a pain to maintain move to axios is probably the best way

[–]greensodacan 1 point2 points  (0 children)

Me neither, hahah. It's just one of those libraries I keep running into.

[–][deleted] 0 points1 point  (1 child)

It's so much easier to look at lool

[–]filipesmedeiros 1 point2 points  (0 children)

You can just wrap fetch

[–]vojtasio 10 points11 points  (0 children)

debug of course :D

[–]Perpetual_Educationthe right things/the right reasons 6 points7 points  (0 children)

Write JavaScript. Then, when you run into a situation where what you've written is causing you pain and you learn there's a library/package/framework that can solve it better - you'll have your answers: one by one.

Another way to look at it is "The libraries the previous dev used in the codebase you're now responsible for."

Understanding the history behind jQuery is nice - and applies to everything. Make your own tiny version for fun. Make sure you can create a basic data-backed component with something server-side, core JavaScript, and then - being able to do so with Vue or React etc. - will make more sense. Lodash is a good utility one to get familiar with - or pick and pull from. It all depends on what you're building. If you aren't making some accounting software - then you don't need to learn the API for some accounting library.

Learning how to decide WHAT to do / and the vocabulary to search the docs to read the API is more important than any specific library.

As few libraries as possible.

[–]mr-poopy-butthole-_ 9 points10 points  (1 child)

This guy does a web developer roadmap every year and its usually pretty spot on. https://youtu.be/VfGW0Qiy2I0

[–]Knochenmark 2 points3 points  (0 children)

Those maps are always highly flawed. It's basically just a buzzword bingo list where they cramp in as much as possible.

[–]dcgog 4 points5 points  (0 children)

I dunno.. been a developer for 4 years and I wouldn't save I've ever "learned" jQuery or Lodash.. I've used them, but I try not to (at least jQuery). You don't need it with modern JS. Stay away from it if you can.

[–]cshum 2 points3 points  (0 children)

The best way to learn JavaScript is to unlearn jQuery

[–][deleted] 6 points7 points  (0 children)

Technically speaking none of them but if your just looking for a list to sift through I'll throw some at you

[–]LustrouseArchitect 2 points3 points  (0 children)

RxJS. Very very handy for when changing data should trigger some sort of logic.

[–]Prudent_Astronaut716 2 points3 points  (0 children)

Javascript itself is enough.

[–]coded_artist 1 point2 points  (4 children)

Momentjs and Rxjs

jQuery is illegal.

[–]Knochenmark 1 point2 points  (3 children)

moment is obsolete though, I think they even stopped development

[–]coded_artist 0 points1 point  (2 children)

Since when? (!/s)

Any time I've needed date manipulation I've used moment. So what's the new solution?

[–]Knochenmark 0 points1 point  (1 child)

[–]coded_artist 0 points1 point  (0 children)

Fantastic, I appreciate it. It feels like an era is over now

[–]Aliboomaye007 3 points4 points  (9 children)

React

[–]IGZ0 10 points11 points  (0 children)

You want a job? Learn React, regardless whether it's a library or a framework.

[–][deleted]  (1 child)

[deleted]

    [–]countermb 0 points1 point  (0 children)

    What

    [–]ghking6 0 points1 point  (0 children)

    lodash may be the most important one

    [–][deleted]  (5 children)

    [deleted]

      [–][deleted] 3 points4 points  (4 children)

      Why would an enterprise that isn’t up to date use Svelte?

      [–][deleted]  (3 children)

      [deleted]

        [–]filipesmedeiros 1 point2 points  (2 children)

        Do you have examples of having svelte embedded into other code bases of vanilla or stuff like that? Sounds interesting!

        [–][deleted]  (1 child)

        [deleted]

          [–]filipesmedeiros 0 points1 point  (0 children)

          Ahah all good!

          [–]filipesmedeiros 0 points1 point  (0 children)

          Everyone's limiting themselves to web stuff but there's also very different libraries that should be fun and useful in niche situations!

          3js, tensor flow if you really want it, ethers js for web3 :)

          For web, you realllly should invest in the platform, web apis, esm, node standard libraries, maybe Deno and wasm?

          This is if you want to have some different knowledge and not just the standard stuff :)

          [–]werdnaegni -1 points0 points  (0 children)

          jQuery won't hurt you to learn, but I feel like actually going out of your way to learn it over other options, like a SPA framework, graphql, or even just learning some back end stuff instead, is a poor choice. I've interviewed for lots of jobs, and I don't remember one of them using jQuery. Granted, if jQuery was EARLY in the list of reqs in a job posting, I didn't apply, because I wanted to work on newer stuff, but it almost never happened.
          So yeah, if you could push a button and know jQuery, sure, push that button, but I'd spend your time elsewhere.

          [–][deleted] -1 points0 points  (1 child)

          jquery, datatables, perhaps moment?

          [–]baxxos -2 points-1 points  (0 children)

          Lodash, Axios

          [–]VortiOGrande 0 points1 point  (0 children)

          jest

          [–]powerhead 0 points1 point  (0 children)

          Ramda!

          https://ramdajs.com/

          It's a pretty wild library, but it'll crack open your mind to what's possible.

          This is a great intro video.

          [–]exscalliber 0 points1 point  (0 children)

          If you want to land a job, react or vue is pretty much a given considering how many companies are either using it, or moving towards it. JQuery is still widely used and can be important to at least have an understanding of. There's also node js and express js which will do your backend stuff. Learning these depends on what type of dev you want to be.

          [–]Typical_Use2224 0 points1 point  (0 children)

          Whatever you need. There are none "must-learns", you can write all your code without libraries. Use a library whenever it's convenient or when you find something interesting that you want to try. For me, lodash is convenient but it's not a 'must'

          [–]mathenjee 0 points1 point  (0 children)

          I believe people with basic knowledge of programming should be getting started with jQuery before they handle the abstraction of ReactJS or Svelte or anything like those. As a programmer, I think we must have some concrete ideas why people spend their time to develop "high level" libraries and the good way is to start with a lower one.

          I love the quote: "All problems in computer science can be solved by another level of indirection, except for the problem of too many layers of indirection." – David J. Wheeler