Hacker News new | ask | show | jobs
by godelski 227 days ago

  > because I worked on a lot of personal projects and self learned Go and got experience with Postgres, Redis, and basic frontend.
Do you think you would have been able to do that project to the same caliber and as fast had you not had your degree?

  > These things were not, or barely covered in my CS degree.
The degree isn't there to teach you a specific technology. Those come and go. Some people will work on web like you while others will work on games, graphics, machine learning, databases, languages, or other things. The degree is to teach you the generalized principles that all these things share so that you can learn the specifics you want. They try to cover a broad base to give you exposure because you likely don't know what you want to do or what you like until you get some exposure. That broad base also makes you more effective working with those other niches.

The degree isn't to teach you a niche, it is to make it effective in the broad field.

  > No wonder new grads nowadays are struggling to get jobs. Schools aren't preparing them well for jobs.
What do you expect to be taught in only 4 years? Maybe you learned Postgres and Redis in the summer but I'm certain you wouldn't have learned it that fast had you not had other programming experience. It's not hard to learn one language once you already know another. Especially if that other language is low level or "mid" (like C/C++ or Java)[0]. The skills transfer even if the specifics aren't identical.

The problem is tragedy of the commons.

We question why train a junior if they're just going to leave instead of questioning why they will leave. We laugh at someone not "negotiating good enough" or hiring new employees at higher wages than we'll offer in raises.

We believe a new senior will be more effective out the gate than a mid level engineer with years of experience in the codebase. We act like institutional knowledge is meaningless. The senior might solve more jira tickets but their lack of institutional knowledge may lead to more being created and more complicated code that isn't leveraging existing libraries.

We act like training juniors isn't a shared community cost that builds a pipeline that we all rely on. Sure, maybe Google trains a junior that leaves for Apple, but Apple trains a junior that leaves for Google. Those costs balance out.

Juniors are having a hard time getting jobs because we've become myopic. We've created the richest companies ever but have become incredibly stingy. We care much more about the quarter than the decade. The customers became the shareholders instead of those buying the things we sell. We spend pounds to save pennies.

[0] it feels weird to call C "high level" in the days of interpreted languages and no memory management