@Shepmaster A few things, yes. For example, to explain patterns I had to dig really deep into the whole thing. And by now I think I could write a parser for arbitrary Rust patterns (and match arms)
So yes, that's a good thing :)
Usually, teaching is a good thing to understand stuff... Explaining it easy often means to describe it very simply. To be able to describe it simply you have to understand the whole structure...
Funnily, I did not really succeed in explaining git. I'd say I'm better in Rust than in Git. So I just really fail to explain git simply. I think it's pretty hard, because git is inherently complex :/
@Shepmaster I assume that this article is rather lengthy. So it's not really fitting for use cases like mine. At our university, there is no course about git. Every course using git has to have a crash-course in the very beginning. sigh
"You know that very complex and hyper-optimised tool that can be abstracted to complicated mathematical concepts that 2% of the general populous might be able to understand?" "yeah" "Let's write our own, hell, let's make an article to make people think that's a good idea"
Also 95% of tutorials online is either shit, outdated, or both
@Shepmaster Maybe not every other course, but many. And probably even more if they wouldn't have to explain it... but yes, CS students just should get a Git 101 in the first semester, as they have Algorithms 101
Monads and much of that "crazy FP stuff" are interfaces/traits, really. And to find interesting abstractions in terms of these concepts is a good thing, no? ...
@Shepmaster Quite true. A university's job is not to produce Java programmers for the industry; it's on a higher level mostly, yes. But in the subject where it's possible to try everything at home on your small notebook, it's a waste to not show the students how to do it...
@Shepmaster well... there are words that sound/feel like the thing they describe. It's not always clear, but most people agree on certain words. I forgot how they are labeled, tho :P
@набиячлэвэли words have meaning within a cultural context. "monad" means something to the category theorists who probably borrowed it from philosophers. Now CS is borrowing it. The transition takes time and effort
Thanks! Interesting concept indeed (just read the beginning). But the author doesn't explain the deepest git internals, as I thought when you mentioned it.
All in all, I would agree that, especially for git, practice is needed...