TheOdinProject / curriculum

The open curriculum for learning web development
https://www.theodinproject.com/
Other
10.12k stars 13.57k forks source link

Webpack: <Webpacks are confusing> #28964

Open AngelMsaa opened 1 month ago

AngelMsaa commented 1 month ago

Checks

Describe your suggestion

Up until Webpack, it's been a breeze; Yes, I've hit several run-blocks and some stuff has been really confusing, but not at the same level as webpack.

I've tried to look on Reddit, and it seems that other people had have the same issue:

Whilst I understand programming is hard, and I'm probably suffering survivorship bias (I haven't googled stuff that seemed easy to me), this lesson reads as a little bit rushed. It feels like a draw the rest of the owl situation. Without knowing much of the subject (still running through the course), could something be done to make it easier to understand for future users? Eg. Breaking it down into smaller chunks, revisiting how concepts and information are explained, etc.? At the moment it feels like "just copy what we are doing" , which resonates with other people's feedback.

Path

Node / JS

Lesson Url

https://www.theodinproject.com/lessons/javascript-webpack

(Optional) Discord Name

No response

(Optional) Additional Comments

No response

fedewulff commented 1 month ago

I was about to write about this issue but I saw this post. Just wanted to say that I agree with what was being said. NPM and how webpack works is still hard to understand

EdMagal commented 4 weeks ago

I thought this topic challenging too, but the video in the npm lesson really helped me understand webpack. https://firstclass.actualize.co/p/modern-javascript-explained-for-dinosaurs Once you understand what npm and webpack do, the rest is just learning how to configure the files correctly. I find the webpack documentation does a great job explaining the configuration process. That being said, I don't know how this lesson could be improved. Maybe adding more visual assets? Idk... Do you have a suggestion? :)

AngelMsaa commented 4 weeks ago

I think the issue lies on the overview for the lesson saying that it will

Explain the purpose of bundlers and how they work.

but the lesson actually not explaining what bundlers are at all. The section that should explain this, called "Bundlers", actually does the following instead:

Mentions that we learned about entry points and dependency graphs It says bundlers use these concepts as well Goes on about some more advanced stuff (Which seems relevant as well)

But it never explains clearly what bundlers are. It might be useful it this part of the lesson:

CouchofTomato commented 3 weeks ago

@TheOdinProject/javascript Can someone take a look please

hoomanhorsey commented 2 weeks ago

I found the section on webpacks confusing as well. I just ploughed through and got through it in the end. While I don't feel like my understanding is particularly good, I feel reasonably confident that picking it up on a revisit should be easier.

I think the section on webpack suffers from the fact that many of the projects we do as we learn aren't really complex enough to warrant the complexity and overhead webpack requires to understand it, for the functionality it offers. But I imagine as projects get more unwieldly and larger, a learner will begin to appreciate the assistance webpack offers. I feel that is one of the inherent challenges with teaching this type of material though. There's are a lot of tools that provide great benefit when projects get more complex, but it's hard to quite understand why you are learning them at the time.

Just as background, I found modules a little over the top at the stage that they were introduced. But now I'm using them extensively without much thought just to keep things a little better organised. I'm assuming webpack will offer the same benefits but I'm certainly not there yet.

MaoShizhong commented 2 weeks ago

Thanks all for the input and feedback. The webpack area is notoriously tricky because it naturally has a step up in how many different things you need just to get started with building your app (though after the first Webpack project, you're introduced to convenience tool (template repos) that takes away a lot of setup time - it's just pedagogically better IMHO to do things manually the harder way first before using a convenient shortcut that half does things for you). The individual parts are all not that complex, it's just there are many of them and it's easy to mix things up.

A few things to highlight that I hope will be helpful and provide some further context:

The rewrites have seen a big drop in the community in how many get stuck at that section and in my experience has changed a lot of the questions to ones that are more easily answered (e.g. problems due to doing things differently to the lesson tutorial, missing some setup, doing things in the wrong order etc.), and has gone through various improvements since already. But it's still in its early days and concrete suggestions are so valuable.