TheOdinProject / curriculum

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

JavaScript|Intermediate Git| A Deeper Look at Git: Assignments are too high level for what is discussed/needed at that point #28426

Open emergent-code opened 1 month ago

emergent-code commented 1 month ago

Checks

Describe your suggestion

Currently, the assignments in this section are:

  1. Read the chapter on Rebasing covered by git-scm for an even deeper dive into Rebasing.
  2. Read the chapter on Reset covered by git-scm for a deeper dive into git reset.

Git-scm, while a good and comprehensive resource can make the topic more confusing to learn for a beginner. Also, a lot of what is covered seems to be unnecessary at this stage. Having to read all of this creates a lot of cognitive load, especially when it is not pointed out what is essential and and what isn't. There is also no element of practice after all of that reading.

I propose a gentler introduction to intermediate git as shown below:

### Assignments

  1. Watch How Git Works: Explained in 4 minutes
  2. Read think-like-a-git (moved from the following section to this section)
  3. Complete the first three sub-sections in the main section of Learn Git Branching*
  4. Watch Git MERGE vs REBASE: Everything You Need to Know

*This resource is especially good for building fluency/familiarity with the commands and for being able to visualise what is happening. I'd also recommend the remote section as an assignment for the next lesson.

I think my suggested changes result in a set of assignments which are shorter and provide more clarity.

I'd add the git-scm articles as additional resources.

Path

Node / JS

Lesson Url

https://www.theodinproject.com/lessons/javascript-a-deeper-look-at-git

(Optional) Discord Name

No response

(Optional) Additional Comments

No response

wise-king-sullyman commented 1 month ago

Thanks for taking the time to make this issue!

So, I think you raise some interesting points here, but one of the difficult things about this content is that there really isn't any specific point in the curriculum where this deeper level Git stuff will be truly "necessary" to complete the further lessons and projects.

We dive so deep into it despite that because it's great knowledge to have when you're trying to get/in your first dev role that really helps a jr stand out. Additionally git-scm is the Git resource, and while I can understand the content being a bit of a slog getting more comfortable with highly technical documentation like it is one of the big skills we're trying to build here.

All of that being said, I think I would be hesitant to pull those assignments out, but there might be a solid case for tweaking the positioning of the content in the curriculum a bit more. I will mull your proposal over further though.

CC @TheOdinProject/maintainers for comments from other members of the maintainer team.

emergent-code commented 1 month ago

Thanks for the consideration. I'd say maybe just add parts of https://learngitbranching.js.org/ then.

Part of the reason why the git-scm resource feels like a lot is because you read all of it, but then you don't practise it. There's no "tangibility" to what you've learned for lack of a better word and any assumed expertise would fall apart on closer examination. It's like assigning a chapter of a university level calculus intro textbook for reading to a high school class without giving them the opportunity to practice. It probably does help a junior dev stand out, but how much time will elapse between someone reading the resources and interviewing for a job, and how much will they remember? I'd argue having really solid and trainable fundamentals is better than being aware of something high level that you have no idea how to use in practice. By the time it comes to actually using the things mentioned on git-scm it would be a breeze to learn. Anyway, that's just my 2 cents on it, I hope it doesn't come across in a negative tone.

wise-king-sullyman commented 1 month ago

Anyway, that's just my 2 cents on it, I hope it doesn't come across in a negative tone.

Definitely not, I appreciate you taking the time to give your thoughts!

I wouldn't be opposed to some of learngitbranching being moved to an assignment instead of all just being an additional resource.

github-actions[bot] commented 1 week ago

This issue is stale because it has had no activity for the last 30 days.

wise-king-sullyman commented 1 day ago

@emergent-code looks like no other maintainers have voiced opposition, is this still something you'd be interested in doing?

emergent-code commented 13 hours ago

@emergent-code looks like no other maintainers have voiced opposition, is this still something you'd be interested in doing?

Yeah, of course. So just to be clear, I'd be adding some of https://learngitbranching.js.org/ to assignments?