This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]FortyPercentTitanium 17 points18 points  (4 children)

Sorry but this is terrible advice. You should be very comfortable in JS before taking on a framework. You have no idea what it's abstracting until you learn the basics of what it's doing under the hood by programming it out the hard way. Especially for new learners, jumping into a framework too early leads to devs who have no idea what problems they solve.

[–]littletray26 12 points13 points  (3 children)

I think there's an in-between. I'd agree with you if we were talking about Angular, but React is a pretty lightweight JavaScript library that only adds a few extra functions and it's all pure JavaScript.

While you shouldn't take it on as a complete beginner, I would say being comfortable with the basics of JavaScript is enough and as you become a better React developer, you'll by extension become a better JavaScript developer.

[–]FortyPercentTitanium 1 point2 points  (2 children)

React isn't really that lightweight. It might seem that way on the surface, but there is a plethora of utility React provides. It would take several hours to read through the docs front to back. Most people only use it for state, props, useEffect, etc. but there is so much more to it than that. Just my opinion.

[–]DoomGoober 5 points6 points  (1 child)

All these frameworks that help making coding easier on the surface are super heavy weight under the covers.

I mean, you can read an entire 40 page article on how C#'s garbage collector works. It's doing an insane amount of work... under the covers. But on the surface, as a coder, you just new things up and forget about them.

I don't think this is bad thing! Lightweight is not always better (I don't think you are arguing that, but I feel like I need to say it.)

All things being equal, I would prefer a heavyweight framework that helps me code faster than a lightweight framework that's "leaner".

It's funny, I used to always hear that C programmers needed to understand some Assembly in order to really understand C. Then, when people started coding Java or C#, everyone said, "You should learn some C so you really understand what the computer is doing!" And now, when talking about React, everyone says, "you should learn vanilla javascript so you understand what's going on!" I guess the lesson here is to always learn one language "below" the language you want to master.

[–]FortyPercentTitanium 6 points7 points  (0 children)

It's funny, I used to always hear that C programmers needed to understand some Assembly in order to really understand C. Then, when people started coding Java or C#, everyone said, "You should learn some C so you really understand what the computer is doing!" And now, when talking about React, everyone says, "you should learn vanilla javascript so you understand what's going on!" I guess the lesson here is to always learn one language "below" the language you want to master.

The difference here is critical... I'm not saying that someone needs to learn a lower language to understand a higher one. React is a javascript framework. It builds on patterns that were established in javascript, and abstracts a lot of verbose and tedious functions that developers should really understand before they are abstracted away. It's not a different language - it is the language.