I feel bad because while I don't reach for react (I usually pick Vue or vanilla), people's comments about react is really depressing.
There's a LOT of shitty react code. And when you see beautiful react implementation, it's like a work of art.
Unfortunately, react projects have been given to by bootcamps grads with 6 months of experience and it's like the blind leading the blind...
I wonder if it's like PHP. Lots of people shit on it because they had to futz around in a garbage project written by garbage developers, fully unaware that it can be elegant in the hands of a professional team who cares about code quality.
I wonder if it's like PHP. Lots of people shit on it because they had to futz around in a garbage project written by garbage developers, fully unaware that it can be elegant in the hands of a professional team who cares about code quality.
You can apply this reasoning to any [web] technology. The reason it's so visible for react, and previously PHP, is simply popularity.
Yep, finding people who understand React is hard. The majority of people who say they're an expert in React are either coding bootcamp fresh grads or someone who's entrenched in writing shitty React so by having them join there's basically no difference in skill with a fresh grade hire or a fourth year college student intern.
What's wrong with bootcamps? Honest question, as I've been learning to code from a python book and an "expensive" udemi course that was on sale for 20 bucks
I'd never tell people I know how to program though. I'm definitely still learning
The problem with some of the comments here is that even "properly" written React CAN hit a performance bump, and optimization is a rather rare skill no matter the programming context (kinda due to little time given to it, so everyone is out of practice).
But I don't know which ones are the ones talking about that, and which ones are just people annoyed at anything Node in general.
React definition: React (also known as React.js or ReactJS) is a free and open-source front-end JavaScript library for building user interfaces based on components.
Tbf, "learned a language" is a hard thing to pin down in any case.
I've been building enterprise software with python for almost a decade now. I still occasionally find stuff in the stdlibs that I didn't know about, or even sometimes some subtle feature of the language that I never had reason to explore until now.
If someone asks me if I "learned" python, id say hell yeah - but there's always still plenty to learn
That being said, no reasonable definition of learned includes what you could do in 2 days, even as an experienced dev lol
It' basically the Dunning-Krugger curve - you're well enough into the last part of it so you are well aware of how much there is to learn about it and how you will never know all of it, thus you don't have and never will have the same kind of cocksure belief that "I know this shit" as somebody who knows just a bit but not yet enough to understand how much there is to know.
To be fair, i did cover the Fortran 95 spec in a weekend, but i was motivated to tutor aerospace engineerings as there were far more females there than in Electrical Engineering and Computer Science.
The point is that learning a spec is not learning how to program in the language, just as learning how a violin works is not learning to play the violin. And writing your first few programs is like learning to play Twinkle Twinkle Little Star and The Happy Farmer on the violin. You've kind of learned the violin, but you're not getting into any professional orchestras.
Sucks that your rick roll got taken from you. I understand how hard it must feel, so please know that I'm never gonna give you up, never gonna let you down, never gonna run around and desert you
React is a library, when do you consider a library "learned"? If they already knew JavaScript why couldn't they "learn" React in two days?
I've been using Python regularly for a decade and I'm continuously using new libraries and learning new things, I can't think of when I would have considered Python "learned".
Because anyone worth their salt knows that the superficial hello world example covers the tip of the iceberg. So to say you learned it in two days means you either don't get that you barely scratched the surface or you dont get what other developers really need when they hire someone with knowledge in a specific framework.
React, Vue, Solid, ... are a lot more complex than your average JavaScript library, because they contain so many abstractions and basically require a separate "way of thinking" in addition to what you know from JS itself. There's a separate state and UI model, hooks are a foreign concept at first, and component memoization and re-rendering takes some getting used to as well.
Now, I only have two years of experience with React, but ten in JavaScript overall, and I will say that using React/JSX required the biggest "mental model shift" for me. That's not to say that it's difficult to work with or particularly hard to learn, but it takes time to understand and really internalize this language-within-a-language library.
The way you're asking that question seems to imply that because the API of some Python libraries can be learned in two days, the same must be possible for React, and that seems rather dismissive.
This post got the issue exactly. To use either React or Vue, the first thing you (should) learn from them is about the render mechanisms, which are introduced under the concept of component lifecycles, which only exist because both render things using a Virtual DOM. This is NOT hard, not even close, but it's also non-trivial and it's not immediately learnable with just hands-on code experience. It's also boring to go through it first, so "first thing" has a ton of quotation marks most of the ways you learn it. It's the kind of stuff that explains why the code is the way it is, and it makes sense of the thing, but can be new and weird.
I think a better way to relate to the issue is to ask people to recall how they learned git, specially those who tried to learn by doing. I've known SVN before I learned git, so when I had to sit down and actually understand it, some of the concepts were transferrable. But I've seen many, many people try to learn it and completely fumble to understand what the hell they were doing until they were presented with some visual representation such as https://user-images.githubusercontent.com/1256329/117236177-33599100-adf6-11eb-967c-5ef7898b55dc.png A diagram such as that is basically a shorthand to learning the mechanics of git, a sense-maker.
There are plenty of Python libraries that are similar complexity to React, and not just for web development. Huge frameworks aren't unique to JS, but depending on your background you can totally "learn" how to use them in two days, at least at a base level while you google how to do everything else (but let's be honest, we're doing that ten years in too lol).
But my point was more that gatekeeping "learning" a new tool isn't really a conversation you can win, because when do you actually consider it "learned"?
I learned about how much I didn't understand react on my 2nd dev job. I had like 2yoe with react previously. There's a lot about it. Mostly tricks. hacks and work arounds for it's abysmal performance.
There many ways of doing things in react and some are faster than others. I would abuse state and use effect at my old job but at this job my sr dev doesn't allow me to use useffect unless the situation warrants it.
I can use react to build something, but fuck is it inefficient. Still learning though, as i’m just creating my first frontend and it’s for a hobby project anyway, so performance doesn’t matter.
To be fair it took me couple of days to learn the basics of react. But I had years of programming experience, including other frontend frameworks like angular, angularjs, knockoutjs etc.
To be fair, I know enough first aid and background information to understand some basic medical books, and I can 1000% guarantee that you never want me to treat you for any medical problems.
A textbook example of the original meaning of Dunning-Kruger, wherein an inexperienced person is unaware of what they have yet to learn and thus overestimate their existing skills.
This is a good point imo. They just don't know the breadth of it yet. Being experienced also means getting a grasp of the amount of stuff you don't yet know.