Git is not just a fad; it's a literal underpinning of most serious software development these days, especially if you need to work with others.
That a CS grad doesn't even know basic Git is telling not of their degree, but of the individual themselves - that they have no desire to learn beyond what's taught, and couldn't even be bothered to look into the requirements of the industry that they want to work in.
I argue that it should be a barrier to hiring, on that ground.
As someone who has used GIT a fair amount over the last 15 years, it has literally one of the worst developer experiences, right up there with C, python’s package management, cuda kernel development or shader debugging, ffmpeg, Scala, MongoDB, and Rust. All of those tools are very useful in todays world but they’re not necessary to do the job,and unless I’m specifically hiring for that skillset I wouldn’t ding anyone who didn’t know them.
Sure, but among those things you listed, source control systems are fundamental to working on projects with other people. If a candidate hasn't encountered any source control system (not just git), you should seriously consider what it will take to train this person on not just the tooling, but the concepts as well.
First, git doesn't especially solve problems that CS majors have until they are near the end of their courses. The need to manage collaboration, organization, and change in a code base is trivial until pretty late in a CS program, and typically never gets past basic.
Second, the context here is the git command-line interface. People can and do use git extensively without it.
Third, git's not exactly perfect. Personally, I'll be a little sad if git remains the de facto standard source control in the long term... it's not bad, but we can do better.
I think lack of knowledge of git commands in a CS grad would be essentially uncorrelated with future professional success.
Git would have been helpful to me in my very first intro to programming course. It fixes those situations of: "arg, I changed one thing - it no longer works, and I'm not even sure anymore what that one thing was!"
Second, a successful CS grad has hopefully written at least something that is at least 2000 lines long. Doing that without VCS of any kind is not impressive, it is obtuse. That is a strong no hire signal imo.
I had a different CS course than you, because git (as a remote storage and version control tool, using branches and submodules came later) and bash were the two first thing I had to learn on the first day (how to use diff and patch was on the second day if I remember right).
> especially when there is money to be made by doing things better.
Is there though? Why would I pay for a VCS when there already is Git, Mercurial and other free and open source solutions?
Git may not be the most intuitive but it's a solid product and most people work well with it, even those who every now and then delete and re-clone a repo because they don't know another way to get out of a pickle.
> yeah, but all of the VCSs before git could've claimed the same thing. if that's not a fad, what is?
Git being the de facto standard in the space is coming up on twenty years. That's about as far from a "fad" as you can get.
> i'm glad git is the soup du jourre today
The problem isn't so much with the "soup du jour", but that the whole concept of "soup" seems foreign to the people the tweet is talking about.
(But yes, given the twenty years mentioned above, "the concept of soup" in practice is pretty much equal to "the soup of the last few decades". Claiming to be a software developer nowadays while being unfamiliar with git is like claiming you were "computer literate" in the nineties but not being able to use Windows.)
Accept my upvote. The silent cowards who are downvoting you hate that what you're saying is true - or at least are tacitly admitting that they can't actually form a counter-argument.
Git deserves credit for popularizing distributed VCS - which is HUGE - but it was not the first or the best DVCS. Its CLI is full of footguns and it's too eager to irreparably erase history.
Even if they're focused on theoretical CS they should still be using git to upload their tex files somewhere in 2024. And from an undergrad degree I'd expect both an OS class and an algorithm or datastructurs course that would use some kind of VCS.
Or maybe all that doesn't exist when you attend Canadian Chromebook degree mills?
Data structures is where I learned how to write test code. It was the best way to actually get the algorithms correct.
If we had git back then.. I remember one bug that took 6 hours to find, finally found it at 8am before the 10am class. Was typing as fast as I could for the next two hours... If there any kind of basic VCS back then that would have been as easy to use - it would have been many fewer all nighters.
Which is to say, a data structures class should have students coding. There are a number of skills you want when coding, basic and common skills that just make it a ton easier. Namely, confidence and iteration speed go up a ton when you can rollback. A modern IDE can do a lot of that too..
I guess I'm becoming an old fart, I've no idea why basic and helpful tools would not be emphasized early. Debugging with those tools is one of those things you want to learn. It helps build a data/fact based approach to coding.
Yes, they divided us into teams of 4-5 and told us about valgrind which turned out to invaluable. So if that is done in some black box web interface anti cheat vendor provided CS course module today that abstracts the actual useful irl experience from the student that would be pretty sad.
Because part of the homework could be implementing algorithms and data structures. Even if that's done in pseudocode you'd probably want to expose your students to some form of VCS at that point. At my old faculty for example you worked through 1/3 of CLRS as part of the lecture and then implemented a few algorithms and data structures in both Java and C++ under the guidance of TAs.
So even students who failed the programming part and passed by acing the exam and the theoretic part knew what a shell was, what a compiler and linker did, how to find documentation and how to actually do all that on either their laptop or a provided thin client.
And most classes were set up like this. As a first semster student you'd be submitting your MIPS assembler homework using a VCS etc.
That's the heart of the matter: Schools are teaching algorithms and data structures to students who don't yet know how to code.
It's wankery, no matter what the student's future path is intended to be. You can't work in CS research either if you don't know how to use a computer.
That a CS grad doesn't even know basic Git is telling not of their degree, but of the individual themselves - that they have no desire to learn beyond what's taught, and couldn't even be bothered to look into the requirements of the industry that they want to work in.
I argue that it should be a barrier to hiring, on that ground.