Live data from Hacker News

The case against CS master's degrees

ozwrites.com

11–20 of 47 posts

Re: The case against CS master's degrees

#11
post #4

I hate to be super-negative, but I'm not even sure a bachelors in CS is a good idea. Oh sure, you learn a few good things along the way, but then the professors start dragging you down their favorite theoretical paths. I'm all for philosophizing and navel gazing, but there's not much practical in things like lambda calculus, NP-completeness and some of the other topics. To make matters worse, these pursuits can confu…

I don't know if anyone (anymore) thinks that computer science is the same as software development. Knowing the latest library APIs, versus doing research to find a faster hash sort, are two different areas, IMO. I also wonder about the different industries and how they compare (SaaS vs CGI vs HFT). I think if you want to forge new roads in programming, a little theoretical studying doesn't hurt, so why not explore a…

So why not explore a university degree? Let me give you 300,000 reasons-- in other words, the price (in dollars) at a fancy university for said degree.

I'm not debating whether anyone should study this. I'm just saying that people who want to get jobs shouldn't need to study it. If you want to do the theoretical stuff, have at it. I'm just saying that it's failed my team as often as it has helped. If the theoretical model doesn't match the problem exactly, you can get the WRONG answer as that NP-complete obsessed dude did when he didn't look for a heuristic.

Re: The case against CS master's degrees

#12
post #5

Earlier quoted context omitted.

In my experience, the biggest reason doing a bachelors in CS sucks is because it's a massive waste of time, leaving little to no time for side projects. Programming assignment questions tend to be vague and come with poorly scoped requirements. Usually the professor also forgets to tell you several essential details or has made several errors in the code. An average assignment can take upwards of 40 hours, with 10 or…

I'm only being partially snarky when I say that sounds like a great preparation for working in a production environment.

Every time I make this point someone says something to this effect. If you spend your career writing garbage for a ransomware gang or an outsourced app development agency you probably won't have too high an opinion about software development. It's just a difficult thing for me to believe that this happens in large amounts at the best companies.

Re: The case against CS master's degrees

#13
post #4

I hate to be super-negative, but I'm not even sure a bachelors in CS is a good idea. Oh sure, you learn a few good things along the way, but then the professors start dragging you down their favorite theoretical paths. I'm all for philosophizing and navel gazing, but there's not much practical in things like lambda calculus, NP-completeness and some of the other topics. To make matters worse, these pursuits can confu…

partly agree.

CS certainly matters in software development design and implementation today; esp with AI, distributed systems, complex/large data, cyber security, etc.

Though, personally, I never learned, or was capable of, the appropriate & applicable CS until I faced these real world issues later in my career in advanced work.

So I do agree that in college I wasn't ready for such a level of detail that I could not apply in any functional matter of life or early career development.

Re: The case against CS master's degrees

#14
post #5

Earlier quoted context omitted.

In my experience, the biggest reason doing a bachelors in CS sucks is because it's a massive waste of time, leaving little to no time for side projects. Programming assignment questions tend to be vague and come with poorly scoped requirements. Usually the professor also forgets to tell you several essential details or has made several errors in the code. An average assignment can take upwards of 40 hours, with 10 or…

At U of Washington you get to choose your own senior project (so I've heard firsthand).

Thats actually pretty cool. I actually go to the other UW and watch jealously as startups are regularly birthed from capstone engineering projects.

Re: The case against CS master's degrees

#15
post #4

I hate to be super-negative, but I'm not even sure a bachelors in CS is a good idea. Oh sure, you learn a few good things along the way, but then the professors start dragging you down their favorite theoretical paths. I'm all for philosophizing and navel gazing, but there's not much practical in things like lambda calculus, NP-completeness and some of the other topics. To make matters worse, these pursuits can confu…

Caveat: I never got a bachelors in CS.

I heard someone else say 30+ years ago you were more likely to be implementing a sorting algorithm or other things often studied in your day-to-day job. Most people's job have changed to integrating predefined APIs--a completely different skillset.

However, as a counterpoint I wish I had pursued a degree. I've looked over friends' notes from their undergrad and graduate classes and wished I had the time to do what they did. Not just as a personal interest, but to give you a practical understanding of what those magic APIs are doing.

Similar to a "hello world" of a framework, in practice things get messier. You often end up having to compare frameworks to pick one. Or play around with a few to judge which is best to continue with. Having a rough idea of how it was implemented and knowing the pros and cons of those choices are hugely beneficial. After choosing, you only write the code once, but spend the rest of the time rewriting, debugging, and optimizing. Having those CS fundamentals not only helps you identify when the built-in solution is insufficient, but what better options might be.

Ignoring all of this, I'm sure you could fill a career with writing one-and-done CRUD apps.

Re: The case against CS master's degrees

#16
post #9
post #6

Earlier quoted context omitted.

90% of my job is get data from database, handle concurrency, show data to user, save data changed by user. I literally could most likely do my job with 0 CS. However, CS exposed me to a lot of different concepts, algorithms, a lot of math. I obtained an associate degree before getting my BS in CS and I did not unlock the key to learning until the CS degree. I feel like I can quickly pick up different things now. I wa…

Your point is valid but you can also prove you can accomplish something while also actually accomplishing something meaningful. For example you complete one of your side projects instead of a meaningless assignment. Sure, the side project might not actually succeed, but at least it had a chance. I also feel like 95% of the key to learning are hard deadlines with consequences. Also, to varying degrees, every justifica…

I do not disagree with your last point but I don't think I would have gotten into programming if it wasn't for getting my feet wet in school. I guess what works for me, may not work for someone else.

I do feel like online learning can be MUCH MUCH quicker, as no time is wasted on poorly designed assignments. I feel like it is much more optimized especially comparing it to my state school experience.

Re: The case against CS master's degrees

#17

Earlier quoted context omitted.

I don't know if anyone (anymore) thinks that computer science is the same as software development. Knowing the latest library APIs, versus doing research to find a faster hash sort, are two different areas, IMO. I also wonder about the different industries and how they compare (SaaS vs CGI vs HFT). I think if you want to forge new roads in programming, a little theoretical studying doesn't hurt, so why not explore a…

So why not explore a university degree? Let me give you 300,000 reasons-- in other words, the price (in dollars) at a fancy university for said degree. I'm not debating whether anyone should study this. I'm just saying that people who want to get jobs shouldn't need to study it. If you want to do the theoretical stuff, have at it. I'm just saying that it's failed my team as often as it has helped. If the theoretical…

> the dimensions of the problem were such that a quick heuristic did perfectly fine.

This is also a theoretical model that they teach in CS programs.

Re: The case against CS master's degrees

#18
The Georgia Tech OMSCS program is very good and affordable (10K or less). It's also the 7th ranked CS program in the world. And, you can and do interact with professors, not just TAs. I'm an OMSCS grad. I would do it again and strongly recommend it. I think programs like it are the future of higher education.

Re: The case against CS master's degrees

#19
I really enjoyed Electrical & Computer Engineering, and took CS classes as electives. Felt the math and engineering courses grew my brain, and the CS courses were enough to get me into software. The CS majors I knew seemed to enjoy their choice less!

Re: The case against CS master's degrees

#20
post #4

I hate to be super-negative, but I'm not even sure a bachelors in CS is a good idea. Oh sure, you learn a few good things along the way, but then the professors start dragging you down their favorite theoretical paths. I'm all for philosophizing and navel gazing, but there's not much practical in things like lambda calculus, NP-completeness and some of the other topics. To make matters worse, these pursuits can confu…

I think that just because most people do not write compilers for a living does not mean that it’s not useful to have implemented one. Writing a toy compiler properly is an interesting programming exercise that involves steps such as parsing/validating input and transforming it in a structured way. Even if you never write a compiler again, it can teach you many things of how to approach similar problems.

(Also, Apple didn’t exactly repurpose LLVM for Swift. LLVM is just the backend, and Swift has quite a sophisticated frontend with its own optimization passes and intermediate language. It is safe to say that a lot of compiler theory and programming language design went into writing it. As another example, the compiler for Go was basically written from scratch and does not use something like LLVM for code generation.)

I do agree that learning CS theory is no substitute for actually writing software, and doesn’t make you a good software developer by itself. And there are probably plenty of excellent software developers who couldn’t recall what a Turing machine is. That said, a good knowledge of CS fundamentals is indispensable for some types of software development.

Post reply on HN