| I was about to write a longer post, but this is so incredulously complicated, and I am so biased, that I changed my mind halfway through. I'm honestly too biased about some of its points to provide anything marginally better than flamebait if I start going into details, but I can offer some hints. 1. The funding for research is increasingly scarce, and the ones who decide how big they are and to whom they should go are increasingly clueless. This means that ideas are funded less and less based on their scientific merit, and that more and more funds are handed over based on personal relations than on true selection. This is an incredibly important problem. The retards running it are (like most retards) too arrogant to realize that we, as a race, suck at making predictions about what we can do. Both in terms of being too optimistic (remember thirty years ago when people thought we'd write these posts from a base on the Moon?) and in terms of missing obvious things, like electricity, which was intensely studied for several decades before it got any reasonable application. There are many ways to avoid handing money over to crackpots. The focus should be on those, not on trying to judge the merit an idea might have in practice. We're too stupid to do that yet. 2. The bulk of the work is carried out by underpaid people, in bad working conditions. This makes smart people bitter, kills their productivity (in the short term) and their lives (in the long term). I distinctly remember my first workplace after I dropped out: it was a start-up where we were routinely pulling 60-hour weeks before we managed to hire enough people. This felt like a lot of free time to me. 60 hours is a free week for a PhD working on something worth a fuck. 120 hour stints are rare because of the physical strain they put on you, but you end up doing one every two months or so. Don't get me started on what that does to your life. This may work if you have a bunch of Steve Jobs wannabe pretending they're scientists, researching how to sell things. Turns out, it's disastrous when trying to do real work. A lot of the jokes we played in the office revolved around that. They stopped being funny when we pondered how many drowsy PhDs were simply too tired to realize they could do <this thing> and bring us five years closer to treating cancer. 3. A lot of the undergraduate classes are becoming less and less fundamentals-focused, because academia is increasingly becoming the place where you're trained to work in the industry. Consequently, as people finish their senior years, they are increasingly less adept at research -- though, sadly, increasingly proud about their can-do attitude and so happy they have a Computer Science degree to prove that they can design websites, as if you actually had to fucking go to college for that. Turns out these people are good enough for the wonderful world of startups. They're just as clueless about the real world as the people who pay them, their self-esteem is bad enough, and they are so utterly inept at learning anything mildly complex that they are easily sucked into the industry vortex. This isn't true only about CS and CompEng, it's happening in fields like EE and Mechanical Engineering, but the proportion of mission-critical applications in those fields is slightly higher, so most of the hipsters get cured after their first months on the job. Turns out this system, while being almost satisfactory for the industry, breeds very bad researchers. Turns out it's hard to do research into web communication if 90% of your graduates have mad CSS skillz but still have trouble explaining what O(log n) means. #1 and #3 above may be subjective, and there are a lot more points that I didn't want to bring in so as to maximize the chances of keeping the discussion civil. #2, on the other hand, while also being something I am quite subjective about (actually, it's the one I'm rather heartbroken about) is the one that escapes the scrutiny of people who are otherwise quick to cry out against the likes of Walmart. Part of my dropping out of academia (see below for disclosure) is that I'm really not that smart. I'm good, but not scholarly material; I'm good at bringing together various technologies and finding atypical solutions to practical problems, but I suck at pounding on the same important issue for years and years at a time. I also suck at math. My brain isn't wired correctly for that. So, even if the working conditions hadn't been the way they were, I'd have left academia at some point, simply due to my sheer incompetence. However, I had a lot of colleagues who were incredibly smart. People who could think of a problems in way I could never have possibly thought, and who were genuinely better at what they studied (electromagnetism) than I'd ever have been (I ended up doing research in EE by sheer chance anyway; I got into EE because I thought it would make be a better programmer -- which it did). You wouldn't believe the way they changed in five or six years of working 10-12 hours a day, not only weekdays, but weekends too. I've heard more stories of wrecked relationships than I can think about, and too many of them are struggling with depression. Most of them don't regret it at all. They're happy with what they discovered and genuinely feel they made the world a better place, but having been there, I honestly can't help wondering if it was worth it. I never bring it up with them, for obvious reasons, but it's very sad, especially since I can relate with that. (Almost) full disclosure: I am an academia dropout. I dropped out during my MSc studies, despite being on a fairly good track (several articles, in several important journals (important as in "people who aren't scientists have heard of them") with my name on it, prior to me earning my BSc). |
Of course you still need to get a basic understanding of how computers work with a software engineering degree, but knowing how to mathematical prove some algorithm is O(log n) is pretty pointless for most (not all) jobs in industry.
One of the things that is not taught well across the board in computer science programs is how to actually write code that is readable and maintainable and how to work with a team using source control, bug trackers, etc. Just to be clear, I am sure there are programs that do this well, but based on my experience they are not the norm.