None of the specific languages or software I learned during my degree do I even use now in my current role.
None of the specific languages or software I learned during my degree do I even use now in my current role.
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.
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.
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.
Somewhere in an alternative universe, we're building all of our version control tooling on top of Pijul... Maybe even with AST-aware diffing.
yeah, but all of the VCSs before git could've claimed the same thing.
if that's not a fad, what is?
i'm glad git is the soup du jourre today , it's a lot nicer to use than it's ancestors -- but it's not like there isn't room for improvement, either.
that's how git came about, I don't feel like we're at the end-all-be-all VCS yet, 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.
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.)
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.
You know, sometimes 100% is enough. Have a beer and relax.
Or maybe all that doesn't exist when you attend Canadian Chromebook degree mills?
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.
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.
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.
I know times have changed, but I don't think git should be taught in a university-level computer science course. You teach graph theory and then many operations in git should become clear after reading the documentation. I don't think any implementation-specific skills should be taught, unless you use it as an example, like Java or C++ to teach OOP. Instead, you teach broad concepts that underpin all of modern computing.
Isn't there a saying along the lines of "computer science is as much about computers as astronomy is about telescopes"? When I was at university twenty years ago people were still claiming you could easily pass a computer science program without ever touching a computer.
Here's a serious research venue asking for technical artifacts for reproducability: shell scripts, VMs, Docker containers, configs, READMEs, etc. https://petsymposium.org/artifacts.php
Other calls for artifacts if you're curious:
- https://www.usenix.org/conference/usenixsecurity24/call-for-...
- https://www.ndss-symposium.org/ndss2025/submisions/call-for-...
- https://www.sigsac.org/ccs/CCS2024/call-for/call-for-artifac...
Never have I needed to understand the underlying Merkle tree implementation of git to use it. Instead, I need to know when to branch, how to reset, and what makes up a good commit working set and message.
All of this would be the same if I was sullying myself by learning vocational skills or just being able to effectively and efficiently work by myself on a research project.
And source control is an extremely important general concept in the space.
The idea of "programming with other people, on the same codebase" is not some industry specific skill set.
It is important and useful for a thing that involves programming and working with other people.