4 ms·
who cares? git is a tool, not a discipline. It's made to facilitate work, not to create a whole knowledge domain unto itself. I wouldn't fault a seasoned and
by serf 2y ago
who cares?
git is a tool, not a discipline. It's made to facilitate work, not to create a whole knowledge domain unto itself.
I wouldn't fault a seasoned and well trained mechanic for not knowing the specifics of a specialty tool necessitating the need to find the manual; similarly although git is the current VCS-ish thing of choice right now, it doesn't represent all of computer science.
- Dylan16807 2y ago> git is a tool, not a discipline. > the current VCS-ish thing of choice It's not like they're using mercurial instead. There's a lot of concepts here they should be familiar with. > the specifics of a specialty tool Are you calling VCS specialty in the context of a CS degree? I wouldn't.
- noahtallen 2y agoIt’s a fair point. At the same time, I think it’s pretty important to cover VCS at some point in college. My CS degree included a couple classes with projects where we did project management, code review, VCS, working with stakeholders, design, etc. —- most of that is just part of life in programming. It’s good to at least touch on it in college.
- AnotherGoodName 2y agoWhat about containers. These are now pretty ubiquitous too. Should they also be taught containers? Package management? Document management systems? I feel like there's a line where we expect some on the job ramp up. Version control was not ubiquitous 20 years ago even if it technically existed in some early form. We honestly weren't really using SVN/CVS much back then and git wasn't invented 20 years ago. Containerization is another example where it was not ubiquitous even 10 years ago. What if some new technology becomes fairly ubiquitous across the industry? There's some line where you need to accept people won't be taught this in a CS degree. There's a reasonable assumption that you'll learn on the job and also continuously throughout your career.
- qludes 2y agoDating myself here, my SUN Microsystems sponsored university did have all kinds of VCS. Not just the FOTM stuff but also weird academic toys. >Should they also be taught containers? Yes, because that's how things are done today while 20 years ago they might have all ssh'd into the same server running the development environment and 30 years ago they would have all sat in the same computer lab. And 'taught' in a sense that lists them a few good documentation resources to get them up to speed while using a provided image. And if they end up with an actual degree they should have covered both hypervisors and containers in an operating systems course.
- seadan83 2y agoVCS is something that is interacted with multiple times a day in any codebase. It is a basic tool, not too far apart from being able to traverse a file system. The next step after viewing files, is being able to commit to and view the history of those files. I dont know if that answers "who cares", but a mechanic that does not know how to do something they need to do multiple times every day - there is a skill gap. While CS is about theory, I would expect a CS grad to have used all of the basic programming tools and more.
- DougN7 2y agoAny code base?? I question your depth of exposure.
- seadan83 2y agoBeen programming since 98, professionally since 08. If a codebase has no VCS.. that seems almost ideological. I've done a git init on a linux file system to understand patch changes. With that aside, what does disaster recovery look like without VCS? Remote backups ate an obtuse form of VCS. If your laptop explodes, are you losing months of work? I mentor junior devs to push daily, if their laptop blows up I want them set up again in 30 minutes with at most one days worth of work lost (because they push their branches remotely, if only for the redundancy. Doing so daily makes it easy to recreate what was lost, compared to a week or two of effort). Without VCS, integration is s larger challenge. It can be done, but continuously and also efficiently? Seemingly we are talking about non collaborative code bases, a vanishingly small subset of projects. Most software is developed by teams. Last, it is so damn easy to run 'git init'. My last job - the team used git locally and then did the stuff in TFS when they finally had to. The point is how easy and useful it was. The other guy that did his own thing, did not use VCS, his stuff was scary. His code was disaster if it stopped building, of if we lost his laptop. Which is to say, VCS is an underpinning for CI & CD, DR, and is stupid easy to get the init setup done. Just about any codebase - yeah. Even if that means doing git locally and then throwing it away. It is different to choose to not use all the tools compared to not being able to use them, and yet another to be unwilling to learn them either due to prejudice.
- theobr 2y agoIf a mechanic didn’t know how to use a hammer, I’d fault the mechanic for sure.
- noway421 2y agoVCS is an applied project management and communication system in the context of software engineering. Both project management and communication are disciplines. CS grads don't need to know VCS, but software engineers do.
- kaycey2022 2y agoI would say that you can put physical computers in that same category. It is unnecessary for a good computer scientist to even touch a computer to acquire the scientific skills required to call yourself a computer scientist. https://xkcd.com/378/ https://xkcd.com/378/