Live data from Hacker News

The limited value of a computer science education

nathanmarz.com

31–40 of 163 posts

Re: The limited value of a computer science education

#31
post #28

I may have been lucky, but I don't recognize this statement when I think of my own CS curriculum: The vast majority of what a programmer does, forming good abstractions and avoiding complexity, is almost completely untouched by computer science curriculums. That's the majority of what my CS degree covered, in several different programming paradigms. Even the idea that there are "programming paradigms" is something I…

I went to an Ivy League college with a notable connection to Basic, and I didn't write a line of code for my algorithms and data structures classes, or for my AI class, for that matter. I wrote a metric shit-ton of proofs, though, and I can say with 100% confidence, that that was a complete waste of time.

I also wrote a metric shit-ton of proofs in my CS graduate education, and have that to thank for a greatly increased capability for logical thought over my undergraduate self.

Re: The limited value of a computer science education

#32

The vast majority of what a programmer does, forming good abstractions and avoiding complexity, is almost completely untouched by computer science curriculums. It's also almost completely ignored in the typical programming job interview. Which is why when I interview people now I'm most interested in looking at code they've already written, and asking them to break down an application description into a set of data &…

How do you look at code written if it's all confidential and owned by their previous employer?

Re: The limited value of a computer science education

#33

"However, I also have to acknowledge that the scale and difficulty of the problems I've worked on is unusual compared to the vast majority of programmers" It's likely that the vast majority of programmers wish they were working on these interesting and difficult problems, but instead they are writing another yet another ETL transform for an ERP system (not that there's no value in that, but that was my job, and it wa…

I'll take domain knowledge over any degree every day of the week. In quite a few cases, we're still figuring out what the domains are or they're domains that academia doesn't care about.

More than that it's all about how much of a self-learner someone is. This industry is so new and changes so rapidly that if you aren't feeling that itch to understand some new aspect of programming you're going to be left behind. The really good programmers I've seen have all been full-stack, not in frameworks, but in a complete understanding of how a system functions top to bottom.

Also quite a few CS people would do well to examine EE or a proper engineering track. I've always laughed at the title "Software Engineer". Very few are, most of what we do is just throwing something against a wall to see what sticks.

Re: The limited value of a computer science education

#34
Post number 7,819,394 talking about how useful or not useful a CS degree is to a programming job.

Here are some lessons I learned by going to school that I find incredibly useful:

1. How to shut up and get some work done, even if I don't see the point to it.

2. How to shut up and get some work done, even if it isn't directly applicable or valuable to a job or something I want in the future.

3. How to take feedback and criticism from people who know better than me.

4. How to deal with someone I don't like but who has power over me.

5. Lots of other fascinating things that have nothing to do with my job but that learning about made me happy and appreciative of life.

6. A handful of things that are pertinent to my job, but I see this as added extras because I didn't go to school for the sole purpose of getting a job.

7. That a lot of people seem to think that the only things in life worth learning or paying for are those that will be useful at a job. This is a sad one.

Re: The limited value of a computer science education

#35
post #3

Ater working with Storm and reading Nathan Marz's Master thesis, I got to say, he really is one hella of a developer. He was also very responsive on the questions I asked him on Storm's forum. I take Nathan's advice at its face value cause he is the most well-rounded computer scientist you can ever find.

What's his thesis about? I can't find it.

Re: The limited value of a computer science education

#36
post #28

Earlier quoted context omitted.

I went to an Ivy League college with a notable connection to Basic, and I didn't write a line of code for my algorithms and data structures classes, or for my AI class, for that matter. I wrote a metric shit-ton of proofs, though, and I can say with 100% confidence, that that was a complete waste of time.

I also wrote a metric shit-ton of proofs in my CS graduate education, and have that to thank for a greatly increased capability for logical thought over my undergraduate self.

I really view that algorithms class as a massive, massive wasted opportunity. There are really two aspects to that kind of a subject - the theoretical underpinnings, and the practical applications. We beat the ever-living piss out of the theory, but I doubt anyone who didn't already know how to do it came out of that class knowing how you would actually code a linked list or a graph, and what the trade-offs of various implementations were. That kind of a subject would be such a rich field for a course in low level C or Rust or [insert manual-memory-management language]

Re: The limited value of a computer science education

#37
post #34

Post number 7,819,394 talking about how useful or not useful a CS degree is to a programming job. Here are some lessons I learned by going to school that I find incredibly useful: 1. How to shut up and get some work done, even if I don't see the point to it. 2. How to shut up and get some work done, even if it isn't directly applicable or valuable to a job or something I want in the future. 3. How to take feedback an…

Not to say school wasn't useful to you but all of these things could also be learned on the job. (As that is where I learned them)

Re: The limited value of a computer science education

#38
As someone that had a highly theoretical computer science education, worked in the industry for three years, then returned to academic CS for summer research, I have a few thoughts on this.

1. A highly theoretical CS foundation is still very useful. One of the hardest classes I've ever taken in all my studies was an upper-level proof-based algorithms course. Nowadays I can glance at an algorithm and give you it's runtime complexity. This is actually an important skill because it influences how you construct your own methods and such. There were quite a few times at my old employer where I'd be like, "If we just switched this out to a hashmap, we'd have a constant time solution instead of this polynomial one," or something of the sort. Furthermore, that algorithms course changed how I thought about computing (and life) forever. Computational complexity theory is simply wonderous. I'm in med school now, and I will tell you, learning about human biology through the lens of a computer scientist is a truly enriching experience. Computation is everywhere!

2. Your everyday programming jobs probably don't require that deep-cut CS coursework BUT there are plenty of specialized jobs that do. I can think of many sectors where you need to be fluent in something like graph theory and ways to traverse graphs, or statistical methods + machine learning. Not all jobs are full-stack dev jobs. Undergraduate CS is supposed to lay a solid foundation that you can build your career on. It's not vocational training. You have no idea where you'll end up! And honestly, I think there's plenty of hindsight bias going on here.

3. Man, oh, man, people in academia suck at software engineering (and not to mention, product design). This isn't their fault! They haven't worked on a large codebase before. They don't understand git-flow or continuous integration or test-driven development. Their products need to get A's, not sell to a consumer. I will say, coming from the industry into back an academic environment it has been a bit of culture shock. Tools used, architecture, even ways of speaking about the software are often completely outmoded.

All in all, I'd say both are very desirable. I'd recommend self-taught programmers take some classes on the more theoretical/mathy side of computer science. And I'd recommend that the academically-minded CS seniors FOR THE LOVE OF ALL THINGS GOOD take a year off and work in the industry before pursuing grad school.

Re: The limited value of a computer science education

#40

I may have been lucky, but I don't recognize this statement when I think of my own CS curriculum: The vast majority of what a programmer does, forming good abstractions and avoiding complexity, is almost completely untouched by computer science curriculums. That's the majority of what my CS degree covered, in several different programming paradigms. Even the idea that there are "programming paradigms" is something I…

I probably covered more on networking than algorithms. I only did 2 papers on algorithms at university, as well as AI, which covered some more algorithms.

I did 2 papers on networking, a paper on computer security, and a paper on web development, and implemented an http client for Operating Systems.

Post reply on HN