Hacker News new | ask | show | jobs
by Ologn 1645 days ago
I have worked in IT for a long time, but have taken night and weekend college classes over the years. I took a CS 3xx class with mostly college seniors a few years ago. Most were CS majors. Once a bunch of us were outside talking, and I said something about software version control. The person I was talking to said "what's that?" I asked the others if they knew what software version control was. None knew. I said, "you know, like git". None of them knew what git was. Some of them were months from graduating and looking for a job as a programmer.
4 comments

Is university meant to be vocational training or learning the unchanging fundamentals and how to learn new things in the field? I think it serves a better purpose to teach the underlying fundamentals and not to do vocational training.

I don't think it's a serious flaw that you can graduate from a top university with a CS degree without ever having written SQL, react, or used revision control. To me, those are vocational topics and can be learned on the job or in [paid] internships.

You may be right, but then shouldn't the standard route for most developers be vocational rather than academic? How many developers do we need in the workforce with this academic background?
Most of what we do doesn't require a CS degree. Among the best devs/IT workers I've worked with, non-degree holders are over-represented. I don't have a CS degree (I have a Mech E degree).

Nonetheless, if a company has got a load of not-difficult programming that it needs done, they're probably still going (and will be well-served) to hire someone with a college degree. Why? Because completing a degree shows you can follow directions, are basically compliant to a framework of rules, can doggedly pursue something over multiple years when the payoff isn't obviously tied to each day's effort. It's not needed, but it's also not insane to think that companies prefer college grads.

Given how many different technologies/languages/frameworks an average developer has to learn over his career isn‘t a solid background in the fundamentals worth more than 3 years intense focus on one such set?

That‘s not to say that going through uni without having heard of git is the sign of a good program, I don‘t consider my program to be all that great but at least I had to go through two labs that required us to build software from scratch using git or svn.

Couldn't CS be studied later to good effect. 3 years coding then some CS course to get chartered, or senior or whatever?
If I was teaching CS then I would ask students to use VCS so that I could see the stages they had gone through to get the submitted solution.

No different from expecting to see workings for maths homework.

On the other hand, one of the required lower div CS courses at Berkeley has a project requiring students to implement git from scratch.
CS programs vary pretty widely in how much they focus on the theoretical/mathematical side of computer science vs. practical software engineering. I was in a similar boat to the CS majors in your comment at one point; I only started learning Git after talking with some fellow students who had practical experience.

Some programs, at least, are conscious of this problem. MIT built and shared their "Missing Semester" [1] course to help with this. There are also some schools developing more practical software engineering/computer engineering degree programs.

[1] https://missing.csail.mit.edu/

This is so true. I was recently interviewing grads for a job that, while not development, had a number of applicants with CS degrees (in UK). I couldn't believe how little coding they had done. Their main projects were mostly machine learning based, and all were using Pandas and Scikit learn... Great for data science but hardly a coding challenge!