7 ms·
More Universities Should Shut Down Their Computer Science Programs
- jeffreymcmanus 14y agoLooks like ye olde blog is a bit slammed at the moment, apologies. (If only my university CS program taught me how to be a Wordpress sysadmin!)
- teeray 14y agoWould you mind re-posting the content of the post here?
- earl 14y agoMaybe try this introduction to web publishing with wordpress [1]. Google cache of the blog post: Also, http://webcache.googleusercontent.com/search?q=cache:http://blog.jeffreymcmanus.com/1924/more-universities-should-shut-down-their-computer-science-programs/&hl=en&prmd=imvns&strip=1 http://webcache.googleusercontent.com/search?q=cache:http://... [1] http://codelesson.com/courses/view/introduction-to-web-publishing http://codelesson.com/courses/view/introduction-to-web-publi...
- jeffreymcmanus 14y agothe issue has to do with apache and my cheap-ass underpowered personal server, not wordpress. but gracias for the link!
- jeffreymcmanus 14y agoServer has been migrated to WPEngine, which I am now deeply in love with.
- nantes 14y agoEdit: D'oh, I should really reload the page before replying. A couple of useful links: http://blog.jeffreymcmanus.com.nyud.net/%C2%AD1924/%C2%ADmore-%C2%ADuniversities-%C2%ADshould-%C2%ADshut-%C2%ADdown-%C2%ADtheir-%C2%ADcomputer-%C2%ADscience-%C2%ADprograms/%C2%AD http://blog.jeffreymcmanus.com.nyud.net/%C2%AD1924/%C2%ADmor... http://webcache.googleusercontent.com/search?q=cache:http://blog.jeffreymcmanus.com/1924/more-universities-should-shut-down-their-computer-science-programs/ http://webcache.googleusercontent.com/search?q=cache:http://...
- SlipperySlope 14y agoThis post is spot-on. During the boom cycles of software development, its not neccessary for someone to go back to university for the skills - online is good enough, more specialized, and much more cost-effective. Why get in crushing debt to become an app developer? Or to program a startup's back-end, or to administer a cloud infrastructure.
- cube13 14y agoI think you're missing the entire point of what a Computer Science program is. It's not to teach programming. It's to teach computing theory, algorithm design, etc. That's the reason that the top-level university programs are so heavy on theory. That just happens to fit with systems programmers(who somehow aren't software engineers... curious). It also fits with game programmers, which is where I think a lot of CS students want to go after they graduate. I also disagree that there is any real good way to teach software engineering at this point in time. Unlike other disciplines such as Mechanical or even Electrical engineering with decades, even centuries of practical knowledge that has resulted in a lot of very strict best practices. Software engineering doesn't have that. Everything in the domain is extraordinarily fluid. Processes are changing rapidly. Tools as well. Even the end product we produce is vastly different from what it was 10 years ago. There simply isn't any good way to teach this subject in this environment short of on the job training. It's compounded with the fact that every software development house is different. Nobody has the exact same process, or uses the exact same tools. So teaching SE as a discipline really doesn't make much sense.
- jeffreymcmanus 14y agodid you actually read the post? i actually pre-rebutted both of your arguments. i understand quite well what a CS program is, since (as i pointed out in the post) i've been a student in three university CS programs and taught coding at a fourth. i'm saying that most of what goes on in academic CS departments is not what we need as a society and it's not what most undergrads hope to get into when they enroll. most undergrads get into CS to write software, not to learn "theory" or "compiler design" (although, again, as i pointed out in the post, if this happens to be your bag, more power to you -- but this isn't really about you, it's about the mismatch between what university CS programs do and what people and society really want or need.) software engineering is obviously teachable (i've been doing it for 20 years) and that's true even if you personally didn't have any good software engineering instructors or mentors. it looks like you and i are in agreement that rapid change in software engineering makes universities not the optimal place to teach software engineering (that was the point of my post). but it doesn't follow that because universities are bad at this, that software engineering is "not teachable".
- zeteo 14y agoThis kind of reasoning actually led to the establishment of "Java schools" in the late 90s, and I hope we've all read Joel Spolsky's classic piece about them: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html http://www.joelonsoftware.com/articles/ThePerilsofJavaSchool...
- 10098 14y agoI have a CS degree, and worse than that, it's a double major in CS and applied math. I had to study things that seem really pointless for an "applied software engineer", like differential equations or numerical methods (ok, maybe the latter is not so pointless). We also studied a considerable chunk of other, more "CS-esque" stuff, like introduction to mathematical logic, computability theory, lambda calculus. Does this stuff pay off? Well, my actual job never required me to implement any complex algorithms, because everything has already been written in the standard libraries. It does help to have at least an approximate picture of what's really going on under the hood. But what really helps me is that 4 years of being exposed to all this crazy theory has affected my brain in a certain way: it has altered my perception of problems. Before going into CS I was programming by chance: slap some code together (without really understanding the problem domain) and poke it with a stick until it somehow works the you want it to. I think most kids who are just learning to program do that. However, that approach changed radically after I spent some time at the university. In that sense, CS has been really useful, at least in my case. Btw, I'm not saying those skills could not have been obtained elsewhere. And learning theory really broadens your horizons. Things like computability theory, I have no use for them in my day job, but they're just interesting. Back at the uni, I had a blast writing a turing machine "emulator" and programming it instead of manually writing the assignment on paper :) And yes, you could study them in your spare time, but the truth is, the job eats up so much of your time, and makes you so exhausted that you barely have the resources to follow an online lecture after a long day at work. So why not spend some time learning while you still free from most of the responsibilities of adult life?
- jeffreymcmanus 14y agoNo argument there. Like I say in the post, I'm all in favor of the goodness of the basics. I just think that giving undergrads all theory and very little practice is not optimal, and they should have the opportunity to go minimal on theory if it makes sense for them. Very few universities offer such a choice today.
- 10098 14y agoI know. We lacked practice at the university too. I don't think you can blame the university for that, though. Practical things are better taught by people who actually use them on the job, not by PhDs who write scientific papers. That's why I went to long-term internship at an actual company during my second year, which later turned into a full-time job.
- UK-AL 14y agoHint: pointer arithmetic is a pretty practical, not theory. It's easy to understand, and is usually first year stuff. Program in c and you are likely to use it. pointer arithmetic should be taught for software engineers anyway... Compiler design again is a pretty pratical subject, except for formal grammars. It has tons of practical uses, especially for dsl's. Theory for me is more like machine learning(Bayesian theory, probability latent semantic analysis and way more advanced stuff). However with the age of big data upon us, we are going to need this for your average programmer more and more. Stuff like that happens to be what interests me, I also find it the difficult much to detriment of consistently high grades.. I think your what your proposing would lower the barrier entry so much, your average software dev won't be very good, and they will be cheap. Is that what you want for the proffesion?
- StuffMaster 14y ago>one of the most pressing problems that humanity has today is obtaining clean drinking water. Yet no university has a Department of Water. He made some interesting points, but this just sounds crazy.
- tzs 14y agoAlso, the University of Arizona does have a Department of Hydrology and Water Resources: http://www.hwr.arizona.edu/about-department http://www.hwr.arizona.edu/about-department
- chanian 14y agoCherry picking applied software engineering (and glancing over your curriculum, specifically web programming/app development) as the only modern relevant subset of computer science seems a bit dramatic. I personally don't really care how/where people learn how to code, and like you, I don't care much for the "priesthood of the technologist" I see so often in our industry. But so confidently suggesting that ".. academic CS departments is not what we need as a society" is no different "cargo-cult" thinking than the poster who suggested that many don't take vocational training seriously. You are blogging about and representing a vocational training service, obviously the readers on HN are going to be skeptical. Choosing the path of academia in education and as a career is a perfectly valid and respectable choice. Suggesting that the works of groups like the ACM, IEEE are not addressing real societal problem is pretty harsh, regardless of how elitist they may or may not be, and regardless of whether those individuals are making a significant contribution to society or not. There's no need to shit on smart and passionate people in specialized / esoteric fields in computer science simply because their work can't be easily app'ified or conjured into an mvp (http://cs.nyu.edu/~jhan/ http://cs.nyu.edu/~jhan/, http://www.dgp.toronto.edu/~ravin/ http://www.dgp.toronto.edu/~ravin/ ...) I studied computer science in my undergrad. I didn't go to learn how to code nor did I expect my university to teach me how to code, I already knew how to do that. Many of my friends discovered a passion for CS because of their overlapping math/logic/theory breadth courses, not despite it. Assuming the typical CS student is someone who only enrolls to learn things like applied programming grossly oversimplifies and generalizes a person's intentions and motivations for learning, even though I'm sure there are many with that primary motivation. Online/alternative learning programs, like your company, are a great approach on education which have lived happily in parallel with universities for years. It's not a replacement though, it is an alternative. I don't think the shortcomings in some universities warrant the "academic butchering" as suggested so boldly in the post's title. To suggest that we should start systematically shutting down CS departments simply because their current curriculum doesn't produce good programmers in a way that aligns with your model/curriculum, is a scary and dangerous thought. When you take away university departments, you chop the legs off entire disciplines.