Live data from Hacker News

The limited value of a computer science education

nathanmarz.com

151–160 of 163 posts

Re: The limited value of a computer science education

#151

Earlier quoted context omitted.

I see complaints about big-O notation being a useless interview torture device all the time, and yet I'd be hard-pressed to find something else in my very theoretical CS education that (a) was easier to learn (it's the most hand-wavy math I've ever encountered), (b) I retained as well, or (c) is as useful to me as a full-stack web developer. I can't speak for others, but knowing when to use an array vs. when to use a…

>I can't speak for others, but knowing when to use an array vs. when to use a set feels pretty fundamental to me being able to do my job well. I'm not sure why you assume that the only way to learn this knowledge is through a CS degree. These are things than can be quickly learned by reading a few articles online.

I'm not assuming this at all. By all means, learn via non-traditional routes! I only meant to push back on the parent comment's framing of big-O complexity as useless theory.

Re: The limited value of a computer science education

#152

Earlier quoted context omitted.

>I can't speak for others, but knowing when to use an array vs. when to use a set feels pretty fundamental to me being able to do my job well. I'm not sure why you assume that the only way to learn this knowledge is through a CS degree. These are things than can be quickly learned by reading a few articles online.

I also don't see why one would necessarily need to reason from complexity arguments, rather than more intuitive "I'm using a set because I want to use set operations like union and membership". If performance is crucial, reasoning by complexity analysis is not sufficient and often not even necessary.

This becomes tricky when you're using a language like Ruby where arrays also have built-in union and membership operations.

And I don't see why, if performance is critical, knowing which operations/techniques/algorithms are orders of magnitude slower than others wouldn't be useful (it has been for me).

Re: The limited value of a computer science education

#153
post #55

Earlier quoted context omitted.

These are about going to school , though, not getting a CS degree. And 100% of these things could, and probably should, be learned in the real world and not through paying tens of thousands of dollars under the guise of education. I did not go to school for a CS degree, and that has not hampered me in any way when searching for a job in software. All I learned in college was how to game the system of the institution…

> that institutions like that are a societal racket and waste of time and money. This is completely wrong. Universities are tremendously useful and do many great things for society and humanity. I'm not going to provide evidence because I think that any reasonable person will agree with me.

I actually think you should provide evidence because it not so obvious. Universities are a business first and foremost. The societal benefit I can see is that of providing scholarships to people of need and that is a relatively small percentage. You might also talk about the research that comes out of universities but much of that is largely funded by the tax-payer.

Re: The limited value of a computer science education

#154

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 got my degree in Computer Engineering rather than CompSci or Software Engineering at Waterloo, which is sort of a hardware/software hybrid program. In hindsight that was probably the wrong choice for me. I quickly found out I really didn't enjoy working with hardware, and that the software side of the program was woefully inadequate compared to some of the better CS programs out there, precisely because we had zero…

Well, on the other hand you hopefully have a deeper appreciation of all the assumptions and approximations that make up the implementation of boolean logic underlying our computers.

Re: The limited value of a computer science education

#155
post #110

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 run…

I wonder if part of the problem is some universities watering down core, foundational, beautiful CS to try and make it 'practical'. They end up with a course labelled 'CS', but is actually a poorly implemented, behind-the times, irrelevant software engineering course that is the worst of both worlds...

Oh, I agree. My school tried very hard to NOT do this. I remember I was concerned about the lack of "practical" CS education, but alumni reassured me that whatever I needed to know after graduation would be picked up very easily. They were right.

Re: The limited value of a computer science education

#156
post #62

Earlier quoted context omitted.

Most parents insist on kids going to uni specifically to get a job. If you can get the same knowledge for free (assuming you have to pay for uni), then what's the value?

I'm trying to say that I found value in it, and many people do. Like I said in other posts, I'm not going to fully describe this value, because it's up to you to find it. Just know that it's not only for a job. Universities have been around for a long time and have served many great and noble purposes.

How did this get down voted out of everything I posted on here :/

Re: The limited value of a computer science education

#157
post #9

>I highly doubt most programmers need to know how to do formal proofs of algorithms, determine asymptotic complexity of algorithms, or even know that much about data structures. Indeed, but I believe that having a solid foundation in theory is important. People have spent a lot of time coming up with ways to reason about common problems, and you don't need to reinvent the wheel. Additionally, while many programmers c…

sure, but the maths involved with building a robot is not the same as doing user analytics etc. better to assume no knowledge when entering those fields, and learn on the job otherwise you learn a whole load of stuff you'll never need. you can't be a senior in a field you know nothing about, so these jobs will always have someone that knows that stuff and can pass on their knowledge. i can say for fairly certain that…

The engineering math curriculum has issues, yes, I agree. I thought a lot of topics were taught in the wrong order and their usefulness was often not made clear until much later. At this point, though, I think I've used techniques from pretty much every class (even ones I thought were irrelevant when I took them) I took.

But really, the engineering math curriculum has (or at least should have) three purposes. The first is to teach you logical reasoning and problem solving -- critical skills. The next is to provide you with a toolbox of techniques you can call upon to solve common problems in your field. Finally, the curriculum should provide you with the mathematical maturity to acquire the new mathematical tools that you need.

The last point directly relates to your second paragraph. I don't know very much about data analytics. If I (somehow) got hired into a big data role, the senior engineers will lack both the time and the desire to sit me down and give me the background on statistics, machine learning, etc. that I would need. However, because I have spent a lot of time studying other mathematical topics and have a background in linear algebra, probability, etc., they can point me at good sources and I can learn myself. If I came in just knowing single variable calculus from high school I would have a rough time.

Re: The limited value of a computer science education

#158

"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…

What domain does academia not care about?

Re: The limited value of a computer science education

#159
post #85

As for testing a prospective programmer, what I consider an ideal test would be something like this: 1. Pick the three most important lines out of this 100 lines of code. 2. Explain why they're important to those who're not familiar with the problem at all. 3. Rename its functions and variables to achieve maximum consistency to you. 4. Optimize the code for maximum efficiency. 5. Optimize the same code for maximum ma…

You start with a subjective criteria? Ouch. It reminds me of the time I had to do some work for a factory... every department was telling me how theirs was the most important work - with arguments. I can make an argument for even a "write to log" line as being extremely important when something goes wrong; I have no idea how I would pick three lines out of a hundred.

If I were giving the interview (not OP), I wouldn't care which lines you picked, just how you justified it.

Re: The limited value of a computer science education

#160
post #156
post #62

Earlier quoted context omitted.

I'm trying to say that I found value in it, and many people do. Like I said in other posts, I'm not going to fully describe this value, because it's up to you to find it. Just know that it's not only for a job. Universities have been around for a long time and have served many great and noble purposes.

How did this get down voted out of everything I posted on here :/

You said "Getting a job is simply not what a CS degree is for" and then said "Just know that it's not only for a job"
Post reply on HN