4 ms·
> I want to learn JavaScript as my next language. Welcome! > I have been observing JS community for some time and it seems like there is too much noise out th
by _virtu 8y ago
> I want to learn JavaScript as my next language.
Welcome!
> I have been observing JS community for some time and it seems like there is too much noise out there with dozens of frameworks and language variations (e.g. CoffeeScript, TypeScript, JSX, etc).
Yeah, this is a double edged sword. People are always looking to build the next best solution, which is great for you as a consumer, but it's also terrible for you, because decision fatigue sucks and your decisions can feel like they're outdated in months, not years. Just make an informed decision when you go out to pick something and stick to it as long as it works for you.
One thing to know is that a lot of this is caused by the challenges of trying to hit the moving target that is web browsers. My biggest piece of advice for cutting through the bullshit is to find your root problem, then pick the handful of tools that actually solve it. Don't just use something because everyone else is using it; no need for cargo cult mentality.
> I plan to go through Mozilla's JS docs and Vue tutorial, but not sure if it is enough to get up to speed with the modern JS ecosystem.
Go through the MDN JS docs, build fundamentals. Read through some library code like jQuery or a utility library like lodash to get a flavor of some interesting things that come up when building a frontend library.
> Which resources would you recommend?
Roadmapy resources:
- https://github.com/FrontendMasters/front-end-handbook-2018 https://github.com/FrontendMasters/front-end-handbook-2018
- Ponyfoo has some great es6 resources as well
> Which framework should I stick with?
Find what works for you. Just try to avoid things that have so much tooling you get paralyzed looking at how it works instead of doing something interesting to you. If you start with react use create-react-app to figure out the fundamentals. I'm sure there are equivalents to create-react-app that correspond to create-<library>-app nowadays.
> What are some things that you wish you had known before getting into JS? Note: I am comfortable with Python (including Flask/Django), Java, HTML and CSS, so picking up JS as a language won't be a problem. Interested in your thoughts.
- Learn about the different environments that js is run in and how this can impact certain things like module definitions, e.g. why is there amd, umd and commonjs?
- Learn about functional programming in the context of js. It's a nice mixture between the two. Learn when to use one with the other.
- Understand the inheritance model, prototypical inheritance isn't that bad, just get it out of the way.
- Understand the runtime and event loop. This will inform you why you'll see things like callbacks, promises, generators and now async/await. Here's a fundamental breakdown of the event loop: https://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html https://2014.jsconf.eu/speakers/philip-roberts-what-the-heck...
- Learn about the browser lifecycle
- Invest in learning the chrome dev tools or ff dev tools, they're both wonderful and will save you hours
- mxschumacher 8y agoI don't see the benefit of studying the jQuery source. I'm grateful for every $-littered line of code I get to carve out of our projects
- t3h2mas 8y agoRegardless of how you feel about $-lines, we can all learn from reading project code.