Hacker News new | ask | show | jobs
by Ologn 3867 days ago
Do you know what second normal form is? Do you know what the three basic functions that form all mu-recursive functions are? Can you write an A* search from memory? Do you know what is stored during a context switch? Are you worth your salt as a programmer?

Tech is booming. I know someone who went to a bootcamp for a few months and is working as a programmer right now. A college diploma doesn't matter now. It matters in years like 2000-2002 after your company goes bust and you're looking for work, or if your division does massive layoffs in 2008 and you're looking for work.

If you're going to go to school and take it seriously, the earlier you do it, the more it pays off. The easier it is to do as well - you don't want to be married at 37 with two kids and decide that you really need more than a high school diploma. Then you're juggling a full-time job, college and a family.

If you want to be worth your salt as a programmer you're going to have to sit down and study databases, operating systems, calculus, theory of computation, computer graphics, algorithms, data structures and so forth any how, so why not do it while studying CS at school?

When kids ask me, I tell them if you can go, go, if you're going to take it seriously. If they have financial issues or whatever I tell them to not take a full course load. One night class a week at the local public college is affordable (with Pell grants, loans etc.) and doable by most people.

3 comments

I agree that University is worth going to. But not for any of the reasons you mention.

I've had a very successful career in this industry not being able to do any of the things you ask in your first paragraph. Sure, I've taught Normalization to new devs (without needing to recite the actual forms), but I find that Google is pretty good at memorizing algorithms, and it did in fact have A* ready to go every time I've done pathfinding. It probably still will when this kid needs it.

University, in my mind, is for two things: It gets your brain shifted into "Engineer Mode" (or painfully informs you that you are not capable of thinking that way), and it teaches you how to be an adult.

The actual algorithms and interview trick questions that a CS degree give you aren't very useful at all in the real world, and I'd actually go as far as to recommend getting your degree in Mechanical or Electrical Engineering instead, so you can focus more on mindset and preparedness. You'll find it easier later to forget the trivia about Brunell Hardness and Eigenvectors when they're far removed from your actual field. And you won't be that annoying guy in every meeting talking about Big O notation instead of actually solving the issue at hand.

But yeah, go to school if you have the chance. The big offers will still be there in four years. You'll have many of the experiences that you'll spend the next 50 years reminiscing about. And you'll come away with a whole pile of other benefits that you never expected. (And some trivia to get you through your first job interview that you can then safely forget forever).

> interview trick questions that a CS degree give you aren't very useful at all in the real world

Usually trick questions aren't the one that you expect in real world, because they're trick questions. Nevertheless, it's very easy to consider a question being tricky, while it might be just a good check of your understanding of a given technique or algorithm.

> And you won't be that annoying guy in every meeting talking about Big O notation instead of actually solving the issue at hand.

Talking Big O is the very exact thing that you should discuss before solving (coding) the issue. It's only annoying if you do that instead. Please, do not underestimate this.

I don't think University shifts you into "engineer" mode at all, you learn that when you go and do it for real in "industry". And not by doing indie projects or realistically at small start-ups. See patio11's comments re what he learned in Japan.

University is about enquiry and learning to think critically. It doesn't matter if you never use the specific constructs they cover but you do come out with a much more flexible mindset.

The other thing is that the OP might actually become a really talented academic and have the potential to do great things in the field.

"it teaches you how to be an adult"

I do think this gets overplayed, I'm sure you developed considerably over that period of your life, but so will anybody else of a similar age who moves away from home.

I think that the first paragraph should be like this:

Do you understand, why we're using second normal form? Do you understand why all mu-recursive functions can be formed from those three basic functions? Do you understand, why A* works? Do you know, why we're storing those things during a context switch? Are you worth your salt as a programmer?

Really good comment. I would also add that even if you are a developer now that does not limit your college option to just CS. You can pick an other major so that you are diversified in skills.