JackLot / LearnGit.io

LearnGit.io is a collection of high-quality learning resources.
https://app.learngit.io/
8 stars 0 forks source link

Feedback - High Level #6

Closed schlich closed 9 months ago

schlich commented 9 months ago

Hi Jack, thank you for the refreshingly clear videos and animations. I've thought for a minute that the "git world" could stand to benefit from a much higher dosage of interactive visualizations and your channel/course seem like a GREAT step in that direction.

I teach a 300 level data-track course in my compsci department called Data Manipulation and Management - and my course is one of the first times many of my students are exposed to git (i know, for shame). While they do eventually get more comfortable with it, it ALWAYS feels like pulling teeth getting them to see git as a useful tool and not just an unnecessary moat of command-soup.

Suggestion: One thing I've found to be somewhat helpful is to give students a very concise and clear list of "orientation commands" -- git status, git remote -v, git branch -a -- and use those as liberally as possible in learning stages.

One thing on my "wish list" is a small, discrete set of Mermaid diagrams for the most important example cases (such as the ones featured in your videos). Ideally, i'd be able to "interact" with the diagrams by jumping to various points in the commit history, basically performing some of the "terminal magic" you do in your YouTube videos, but recreating them in a reproducible and navigable way. I've always planned on building this myself (and of course leveling up my own git-fu in the process) but it's been sitting on the shelf for a minute now.

Last but not least -- my white-whale, million-dollar questions. They are probably outside the immediate scope of your course's goals, but considering your perspective and passion for this topic, I could see you taking these ideas to the next level with your seasoned perspective and professional approach.

I'm sure many people feel this way in some form or another (including my students as previously mentioned), but I've spent almost my whole career as a programmer trying to separate the WHY from the HOW when it comes to git. While understanding the "why" by "doing" is a natural part of learning any tool, I think that our entire industry suffers from a clear answer to the "why" at the deepest levels, especially when you consider git's unrivaled dominance as a developer tool. Obviously, git is very much a "configuration over convention" tool. Learning the difference between patterns like gitflow and a CI-based merge approach were very helpful in consolidating my mental model and taking me from "cautious" to "confident", but I think me and many other developers never get much farther past that in terms of answering "whys". Here are some galaxy-brained questions that makes me feel like there are whole charts of territory yet to be explored:

Coming up with a way to convincingly answer these questions in short 3-minute videos might be enough to earn you a Nobel prize idk. But regardless, I want to encourage you as there is both a deep and wide need for the direction I see you taking this topic in.

So yeah, thank you for providing this space for me to brain dump, and thank you INCREDIBLY much for the time and love that you have obviously put into this project. I'm sure I will be incorporating your videos into my curriculum very soon.

JackLot commented 9 months ago

Wow, thank you so much for words of encouragement. I'm sorry I didn't respond sooner - folks haven't been leaving many tickets on GitHub, and I haven't been checking as frequently.

Covering orientation commands is a great idea - you use them all the time. Learning them, and how they work together, would be a incredibly useful.

Also your idea about interactive diagrams is something I've wanted to do too! Like you, I shelved it for now as a stretch goal because I couldn't quite figure out the right way to build it. I was thinking about a lightweight solution using JavaScript to skip between parts of a GIF (so the diagram actually animates). I'm not sure that would even work, but it's about as far as I got. I agree, this would be a nice learning aid. I think https://learngitbranching.js.org/ and https://ohmygit.org/ are the closest examples I've seen, but they're not really what I'm envisioning.

As a parting thought, I'd love to get your feedback on LearnGit when I can finally launch. I feel like you'd have a useful perspective on how/if the content translates for folks who are just learning. And speaking of some of those meta questions: translating Git visually, like I do in the videos, naturally leads to thinking about some of the why's you mentioned. I honestly steer clear in the videos because it's quite challenging to try and explain concisely. I'd wonder if anything will stand out to you in the earlier lessons when I try to synthesize what commits, branches, the working directory, etc are. I feel like those building block concepts are the most critical to get right.

Again, really appreciate you reaching out. I'd love to make it into your curriculum!

Cheers and happy holidays, Jack

schlich commented 9 months ago

feel free to reach out at t.schlic@wustl.edu anytime!