7 ms·
CS degrees aren’t meant to teach any particular skill. They should be teaching general knowledge that helps you adapt to whatever the FOTM is in industry. Reali
by zeroonetwothree 2y ago
CS degrees aren’t meant to teach any particular skill. They should be teaching general knowledge that helps you adapt to whatever the FOTM is in industry. Realistically you can learn to use git in less than one day. It just shouldn’t be a significant barrier to hiring someone.
None of the specific languages or software I learned during my degree do I even use now in my current role.
- ruicraveiro 2y agoIndeed, I've always been against filtering people on programming language. However, I wouldn't hire a developer that wasn't good at the language they had been using or learning for the last years. In the same way, I wouldn't stop from hiring someone without git experience. But I would definitely not hire someone who, in 2024, hadn't been using some CVS tool. Plus, I would be curious to know how the applicant had been sharing code with colleagues in group projects and why they had gone for solutions other than git. For someone more experienced I would be wondering how they managed to be insulated from the most widely used code repositories like GitHub, GitLab, BitBucket, and so on, which overwhelmingly are git focused (BitBucket even started out as a Mercurial solution and then slowly shifted to Git). This could actually be an interesting window into the applicant's decision making process. Even though I would be open minded, I think that the odds would tend more for me to find out reasons not to hire that applicant.
- knighthack 2y agoGit 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.
- qludes 2y agoEven 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?
- WolfeReader 2y agoWhy would an algorithms and data structures course be the place to teach Git? It is not an algorithm or a data structure.
- seadan83 2y agoData 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.
- qludes 2y agoYes, 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.
- qludes 2y agoBecause 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.
- deleted 2y ago[deleted]
- serf 2y ago>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. 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.
- WolfeReader 2y agoAccept 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.
- cassianoleal 2y ago> 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.
- CRConrad 2y ago> 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.)
- cellis 2y agoAs 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.
- poincaredisk 2y agoI'm probably weird, because I like git, C, Python package management, and Rust. I dislike MongoDB and don't really know the rest
- cbm-vic-20 2y agoSure, 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.
- ehxxn 2y ago[flagged]
- kaycey2022 2y agoMongodb atlas, their managed service, feels like magic. I think it gets an unfair rap because of skill issues.
- WolfeReader 2y agoSQLite is not written using Git. Perhaps you should distinguish VCS - a category of software - and Git, one example of that software.
- WalterSear 2y agoThe tweet we are discussing strongly suggests that the student isn't using any VCS. That is what this discussion is actually about.
- jmull 2y agoA couple things... 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.
- seadan83 2y agoGit 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.
- WalterSear 2y agoIt's impressive all right; just the wrong kind of impressive.
- orwin 2y agoI 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).
- noway421 2y ago> git's not exactly perfect Somewhere in an alternative universe, we're building all of our version control tooling on top of Pijul... Maybe even with AST-aware diffing.
- mmcnl 2y agoI wholeheartedly agree.
- thunky 2y ago> they have no desire to learn beyond what's taught You know, sometimes 100% is enough. Have a beer and relax.
- mr_mitm 2y agoTo expand on that, and maybe my view is a bit too traditional, but my understanding is that universities ought to prepare you to become a scientist. At least that's how it was historically. They are not meant to be "vocational training plus" or to subsidize the industry by training the work force for them. (It might be different for colleges, I'm mainly speaking from a European perspective.) 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.
- the_snooze 2y agoI'm a researcher in one of the more "applied" subfields of CS (security and privacy), and we absolutely use standard software engineering tools day-to-day. You're not going to be a productive member of a research group if you don't know how to navigate the tools of the trade. Research isn't about using Git, Bash, or Docker, but you're dead weight if you can't wield those. 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 https://petsymposium.org/artifacts.php
- deleted 2y ago[deleted]
- kaycey2022 2y agoDon't university research groups primarily produce papers? Producing "technical artifacts for reproducability" must be a new thing (if at all).
- the_snooze 2y ago
- stale2002 2y agoOk. 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.
- miraculixx 2y agoThat's a very weird take. Suerely you would expect some skills from a CS graduate?
- shreezus 2y agoAnecdotally, some of the best engineers I have worked with were entirely self-taught.
- noufalibrahim 2y agoThis is theory. In practice, you should have done some work during your course and it's reasonable to assume that using version control (which you can learn in a day) is a skill you'd pick up at that time. If not, what exactly were you doing for all those years is a question.