5 ms·
Ask HN: What fundamentals does a veteran mobile/backend dev need for front end?
I have many years of .NET and Java (backend, Android, desktop) development under my belt. Over the last year I've had to do a lot of frontend development, first with Angular1 and now with VueJS. I've hit the ground running quite decently, using TypeScript/SASS/Webpack, and so on. I grok the languages, the DOM, HTML/CSS, the frameworks, and my Google-foo seems to be serving me well.
But I'm uncomfortably aware that I'm missing some fundamentals, and am spending way too much time in trial-and-error land. I only have a fuzzy understanding of JS modules, module loading, and bundling. I don't really get when and how the browser loads scripts. I don't really understand the concurrency model of the Javascript VM. I'm somewhat confused by the tooling (NPM seems to be more than just a package manager, Why does Bower exist? Why would you use both Gulp AND Webpack?) And so on.
So, I'm looking for any and all pointers on which fundamentals I need, and the best resources (books, tutorials, online courses, whatever) for learning them, and of course I'm willing to spend money. The important thing is to find resources aimed at an experienced developer who did not come of age doing webdev.
- keefe 10y agoI did some front end work as a primarily back end guy - I've found that doing some nodejs has helped my core javascript altogether. You have to let go of your ideas about classical languages - but consider ES6, at least you get the class keyword back. The concurrency model is that you have a single thread with an event loop, which never interrupts segments, it waits for an asynch call with a callback or for the function to end. So, your problem is event loop cleanliness vs mutex management. I would focus on one of the big view players - React or Angular, from facebook and google. It seems like the old school jquery dom updates is out of fashion now. I wouldn't worry about the toolset, it sucks - webpack I guess has some uses. I would focus on the core thing, e.g. React and javascript fundamentals. Tooling and stuff will follow along once you get a job in it.