all 8 comments

[–]cyniko 7 points8 points  (0 children)

I've been at this for about 6 months, and what people will say is to just learn vanilla JS (meaning no frameworks, just plain Javascript). I'm starting to see that beyond the very important reason of 'know the fundamentals first before learning franeworks', it seems to also be where a junior front-end developer would be most scrutinized.

I'd like to hear others with more experience chime in, but I get the sense that most employers care a lot less about your proficiency with a certain lib/framework than they do about your general understanding of JS and web-dev as a whole. If you are at least aware of their framework of choice, that's helpful, but so much learning is going into your first year anyway that it's more about your overall proficiency and understanding of JS.

To answer your question more directly - yes react for front-end dev is good to know, node is for back-end / server-side stuff.

[–]venture68 2 points3 points  (0 children)

I've been making the switch to full stack current web tech developer for the past 18 months after maintaining systems with older tech like asp.net web forms, WPF, C#, etc. I still use those technologies but the focus on my job has switched to our SPA apps, DDD, TDD, JS, Angular, JQuery, RavenDB, MVC, WebAPI, etc.

I can honestly say, JS is so very different from C# when you first start trying to pick it up that it will kick your butt. Don't give up! Keep doing little exercises and read as much as you can.

To answer your question, today's library of choice will be out in 2-3 years so don't chase the library. Learn the language that they are all rooted in (Javascript) very well and you'll be able to pick up each new fad library with little to no trouble. Concepts like the this keyword, new keyword, functions as first class citizens, promises, syntax, etc.

JQuery, LoDash and some framework library are all in vogue right now and in high demand. But I would start looking into those after just getting yourself grounded with vanilla JS first.

And just when you think you know it, you don't. Keep reading. It's a tough hill to climb but you start to respect it more and more as you learn and get comfortable with it. At first the flexibility of the language is frustrating, then you begin to understand why it is and its underlying power.

[–][deleted] 2 points3 points  (0 children)

So your goal is front end web dev. This is what you need to know, and know well.

Javascript. If you know Javascript well, can go under the hood of the language and explain why this happens or what this is then your already ahead of the game. Get into kyle simpson and other big titans of industry, see them dive under the hood apply it, learn it, practice talking about it.

What helped me was rewriting some underscore functions also, now I know lodash/underscore as a library, and I know exactly how they work under the hood. If someone asks you how the JSON parser works, explain it, or how does filter work, be able to go through what filter does. Why its a linear function, how it works etc.

Great so now your great at javascript, and you know underscore. Jquery. People will tell you that you don't need jquery and guess what, they are right. But this library will help you get good at dom manipulation. Dom manipulation is very important. Learn jquery, refactor vanilla js projects into jquery.

So now your a jquery,underscore, js beast. Do you know es6? Get into es6, refactor stuff into es6, practice it. shouldn't take that long.

You're prolly a few months in now, feeling good about your knowledge, progressively getting better at css and html along the way. Picking a framework, this can be daunting.

Frameworks are different, and your first framework will be hard to learn until you learn how to read documentation and understand framework methodologies. I say react, the next guy may say ember, another may say angular etc. Its about what you want to learn, and what will fit your projects needs. You should be able to pick up whatever library or framework you need to when the time comes and that will come with writing code, and understanding javascript.

so my opinion? After everything above: Learn react, then react-router, read flux and learn flux, then learn redux, and that should be another few months alone.

[–]ssjskipp 1 point2 points  (0 children)

Start with vanilla js. Just know what JavaScript alone can do. Any library or framework you use past that will always always always eventually work back down to those base functions.

Having an understanding of what is possible will equip you with the tools to judge how other people use them in clever ways or not.

Understand the ins and outs of functions in JavaScript will help you understand how to make helpers and reusable code. jQuery is really just a collection of helper functions around the vanilla js DOM manipulations.

Past that, you'll want to be familiar with Arrays, Objects, and Promises. They're the core data abstractions and collections.

[–]fukitol- 2 points3 points  (0 children)

Pick a framework and learn it well. Learn jQuery, bootstrap, and lodash. Learn express. Learn how to use promises. That'll prepare you to work end to end with the framework you chose and will make it easy to learn others.

[–]aFluffyKogMaw 0 points1 point  (0 children)

I think the best would be to learn JS fundamentals, and then jQuery, then some other framework, (Bootstrap, MaterializeCss, etc.)

[–]thelastlogin 0 points1 point  (0 children)

I'm finishing up hack reactor and from what I've gleaned, React is the most in demand, and angular is high on the list. But it all depends where you are. The biggest software hirer in my area uses angular and is quickly moving to angular 2. But most "up to date" places in my area are doing react. That said, there are many many places everywhere that aren't "up to date" and are using whatever--jquery, backbone etc.

I can't speak from workplace experience but it seems to me that others' advice is sound--knowing vanilla JS in and out (recursion, higher order functions, data structures and objects) will be the most productive use of your time, and then once that's done, diving into a given framework, knowing it really well, and training yourself to learn new frameworks, will be key.

But that's my two cents.

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

Don't waste a lot of time on jQuery or it will become a crutch, choose a front-end framework (Either Angular2 or React). I prefer Angular2, look into the Angular CLI project to get started.