23 points
*

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”.

permalink
report
reply
8 points

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.

permalink
report
parent
reply
1 point

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”?

permalink
report
parent
reply
2 points
*

How do you know what is similar in complexity to React? As far as I can tell you aren’t familiar with it.

at least at a base level while you google how to do everything else

Ah, there’s the problem. Your definition of learning doesn’t include having an appropriate mental model, which is key to actually retaining and internalizing the way it works. I don’t think it’s unreasonable to say that is a prerequisite for claiming to have “learned” something like a language or framework.

permalink
report
parent
reply
3 points
*

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.

permalink
report
parent
reply
12 points

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.

permalink
report
parent
reply
5 points

Why is it taking you two days to print “hello world”?

permalink
report
parent
reply
3 points

You mean print “hello world”; doesn’t work in JavaScript? Well whatever, I bought the book I can put it on my resume right?

permalink
report
parent
reply
4 points

Because React doesn’t have a learning curve, it has a learning wall.

permalink
report
parent
reply
1 point

I’m saying that the work they would be doing in two days isn’t the same as solving an actual problem. The way to really learn a language/framework/library is to actually use it in a real project. You run into pitfalls, you get compile errors and have to figure out how to debug in said tech, you find out how extentions to the tech work so you can create your own. Making a Todo Front End isn’t going to cover the vast majority of the stuff I’d expect one to know or experience when you say you “know” a language/framework/library/etc.

permalink
report
parent
reply
31 points

“Learned” means you can make code for production that other people won’t go “wtf are they doing, this isn’t how react works”

permalink
report
parent
reply
21 points
*

That’s just how we look at eachothers’ code, and even our own code that we forgot we wrote lol.

permalink
report
parent
reply
8 points

Whenever I have to dredge up an old project to make a change or just to check something, I’m hit with the temptation to rewrite the entire thing. I’m constantly learning, and I subscribe to the notion that there are endless ways to do something and none of them are right. Hell, I’ve brought 3 fairly large Vue projects to term and all of them were done the “right way” at the time, but completely differently. There’s what, 3 different approaches in Typescript for components?

permalink
report
parent
reply
1 point

Like programming languages, it depends on the context. “Learned” in a casual conversation would mean that one can write programs/libraries and achieve what they want in that language. “Learned” in a more professional manner, like a resume, would mean you can write good, maintainable code and know much of the language underlying stuff and other tools. But practically, in my experience, on a job, knowing a language/library means being better than or equal to your boss if they’re a dev.

The boss of my father, for example, is gonna challenge you with his knowledge until you agree you’re wrong, if you claim you “know” something. To him, “knowing” would mean you read the docs, source code and used it for many years, so actually know all quirks known to mankind of that language/library. Which isn’t really humanly possible.

permalink
report
parent
reply
3 points

Hard disagree on “learned” for the resume. As long as you know enough to get you through the interview you can learn the rest on the job!

permalink
report
parent
reply
2 points

Learned of

permalink
report
reply
2 points

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.

permalink
report
reply
1 point
*
Deleted by creator
permalink
report
parent
reply
2 points

I meant more like my code is inefficient hahaha, i’m not really paying attention to any optimization right now, as it’s just a home project

permalink
report
parent
reply
5 points

Have you tried Vue? I like it more.

permalink
report
parent
reply
2 points

One day to learn how to make stuff in React, one day to learn the degree to which the React developers despise you.

permalink
report
reply
3 points
*

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.

permalink
report
reply
4 points

Eh, lots of stuff can be easy to learn, difficult to master.

Most languages only take a few minutes to do a “hello world” app.

When you announce you’re comfortable with something, it probably depends on the scale of the apps you’re used to working on.

So a junior dev could very well feel they’ve learned something like react after two days of cramming.

permalink
report
parent
reply
1 point

Yet totally fail to make a production inside 2 months.

permalink
report
parent
reply
2 points

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.

permalink
report
parent
reply
1 point

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.

permalink
report
parent
reply
2 points

Me too, but I wouldn’t claim to know React unless I felt good at bluffing.

permalink
report
parent
reply
7 points

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.

permalink
report
parent
reply

Programmer Humor

!programmer_humor@programming.dev

Create post

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics

Community stats

  • 3.2K

    Monthly active users

  • 1K

    Posts

  • 37K

    Comments