30 ms·
Why do so few people major in computer science?
- _Codemonkeyism 9y agoImage.
- _Codemonkeyism 9y agoAfter talking to dozens of women and men, girls and boys trying to convince them to go into computer science, the reason they told me is the (wrong) image they have of programing: sitting alone for 8h a day in front of a computer. Looks like the those who voted me down had more success in getting more people into CS.
- ArialAnemone 9y agoIt's not merely sitting down. It's seeing the code monkeys of life being manipulated by people who are adept at manipulating humans and getting higher status and pay for it. Think of a lot of technical positions in the military. They get bossed around by non-technical people.
- refurb 9y agoIt's much better being the one who beats the drum than the multitude that row the boat.
- deleted 9y ago[deleted]
- theparanoid 9y agoSeems they had a pretty good idea of the field. 90% of the time is spent staring at a computer screen.
- skybrian 9y agoBecause: Error establishing a database connection. (Seems to be back now.)
- djsumdog 9y agoAnyone have an archived version? Looks like it's hosted on wordpress and the database got hammered.
- rahiel 9y agohttps://web.archive.org/web/20170529185317/http://danwang.co/why-so-few-computer-science-majors/?idk https://web.archive.org/web/20170529185317/http://danwang.co... https://archive.is/9ksWG https://archive.is/9ksWG
- dep_b 9y agoBecause database connections are hard.
- CM30 9y agoI still suspect it's this reason from the post: > You don’t need a CS degree to be a developer With another catch. Basically, a lot of people don't intend to go into the tech industry right away. No, they end up in it because it's one of the faster growing industries with decent financial prospects. So they learn something else, work in a different field for a bit (or a low paid retail job) then end up going into tech where the jobs and money are. Not everyone is 'passionate' about the subject.
- wallacoloo 9y ago> You don’t need a CS degree to be a developer And I think at least some of us observe this and think "I'll study a related tech field and then take a job that also uses CS - that will let me grow a wider skill set than if I just studied CS." Because it isn't too difficult to get exposed to CS basics while pursuing EE or math, etc, and a wider skill set can be a valuable thing to have - you generally have more freedom in the development of your career, more opportunities to shift around and prevent burnout/boredom, etc. It would be interesting to build a matrix showing how degrees in each STEM field are tied to jobs in each STEM field. Because I suspect CS funnels much less into the other STEM fields than vice versa, providing a view where a CS degree is tied to a narrower line of work, and hence more at risk to future market changes.
- tnecniv 9y ago> It would be interesting to build a matrix showing how degrees in each STEM field are tied to jobs in each STEM field. Because I suspect CS funnels much less into the other STEM fields than vice versa, providing a view where a CS degree is tied to a narrower line of work, and hence more at risk to future market changes. To be fair, the job prospects in many other STEM fields aren't great. You most likely won't get a job with a BS in physics doing physics related work, considering how many physics PhDs there are that didn't remain in academia for one reason or another.
- conorliv1 9y agohttps://web.archive.org/web/20170529183402/http://danwang.co/why-so-few-computer-science-majors/?idk https://web.archive.org/web/20170529183402/http://danwang.co...
- SubiculumCode 9y agoBecause college is funner when you don't have to take the CS weeder course.
- ryanmarsh 9y ago> I think that people who go to college decide on what to major in significantly based on two factors: earning potential and whether a field is seen as high-status. Also laziness, virtue signaling, dilettance, and genuine interest.
- reading-at-work 9y agoSurprised I had to scroll this far down to find this. You're absolutely right. Plenty of people just choose a major based on whimsical interest their freshman year, then stick with it because it's too late/expensive/difficult to change to something else. A lot of my friends at school ended up in this situation.
- simonsarris 9y agoSlight note about Dan Wang picking 2005: That was the peak of CS degrees awarded because it's 4/5 years after the height of the dot-com bubble. So the upward bump in the mid-2000's is somewhat explainable as an anomaly. I think his point 1 is underrated. CS degrees are flat because aptitude is flat. You can compare CS degrees to other degrees over time at nsf.gov: https://www.nsf.gov/statistics/2016/nsb20161/#/report/chapter-2/undergraduate-education-enrollment-and-degrees-in-the-united-states/undergraduate-degree-awards https://www.nsf.gov/statistics/2016/nsb20161/#/report/chapte... We have more grads than ever, but they are dumber than ever (we have the data to prove this), getting less difficult degrees. I have a bad feeling that we are running up against some diminishing returns on education and hiding it with numbers like the total number of grads. The number of grads for difficult degrees and the quality of grads seems to be another story. > In 1970s 1-in-2 college grads aced Wordsum test. Today 1-in-6 do. Using that as a proxy for IQ of the median college grad, in the 70’s it was ~112, now its ~100. More stats: https://medium.com/@simon.sarris/why-is-computer-science-enrollment-so-low-dea064c2f7f0 https://medium.com/@simon.sarris/why-is-computer-science-enr...
- deleted 9y ago[deleted]
- twblalock 9y ago> The number of grads for difficult degrees and the quality of grads seems to be another story. This is why I never believed the "There is no STEM shortage" stories. They were mostly based on the assumption that all STEM grads were qualified to work in STEM. That's not true in any field where you can complete a degree with a C or D average. I find it unfortunate that some of the larger software companies filter out applicants based on the school they graduated from, but I understand it. The companies have to have some sort of filtering mechanism, because many colleges clearly do not.
- kevin_thibedeau 9y agoThere is no STEM shortage because salaries haven't risen for those already working in the field.
- xxSparkleSxx 9y agoI think the market is just way over saturated. Hiring practices for developers point to just that. I mentioned in a different thread how simole it is for my travel-nurse of a sister to get a new job (her stints around the Bay Area paid ~100k and she only has 2 years of experience). Developers jump through hoop after hoop for employment, this wouldn't happen if they were in demand like a nurse. The market is just responding appropriately, though maybe not how the masters would prefer it.
- lightblade 9y agoNurse is licensed though. That's instant credibility.
- atmosx 9y agoNot to mention "useful". Imagine nurses going on strike. Now compare that to lawyers, programmers or investment bankers going on strike ... no one cares.
- NikolaeVarius 9y agoWhat happens when IT for a hospital goes on strike?
- twblalock 9y agoNot to mention an airline. The recent British Airways debacle was caused by a technical problem, but if the IT workers had gone on strike, similar problems could have resulted.
- Spooky23 9y agoSame thing that you do when nurses go on strike. You hire a bunch of scabs and muddle through. The difference is that IT usually sucks so much that nobody notices.
- 9y ago
- akhilcacharya 9y ago>Why is the marginal student not drawn to study CS at a top school, and why would a top student not want to study CS at a non-top school, especially if he or she can find boot camps and MOOCs to bolster learning? Because I'm not smart enough to get into MIT/Stanford/UCB/CMU?
- david-cako 9y agoA better question is "why do we care". Software is about the only career I can think of where there are movements created to inject social status into it so that people get into it who are only interested so long as it comes with social status/trendiness. The major also doesn't fix the thought process. You either have it or you don't.
- romanovcode 9y agoI think it is also the only career which people try to inject diversity just for the sake of it. Maybe I just live in developer bubble and don't know any better, but I've never seen a movement like "Girls do Plumbing!", "Black girls construction bootcamp" or "Mining for equality!".
- sidlls 9y ago> Maybe I just live in developer bubble and don't know any better, Yes, that's quite likely. Diversity is important in this field, as in any other, for a number of reasons. The two most important are that is the brings diversity of thought, which should always be welcome in a supposedly fact-based intellectual field, and that it is a signal that we as a society value ourselves and our peers well enough to not treat anybody as second class citizens.
- ArialAnemone 9y agoBut you're not promoting "diversity of thought", you're promoting BS signals. How is it promoting facts when you're searching for superficial signs of diversity? You're promoting a form of corporate doublethink where filling out bubbles of sex and race is automatically analogous with some platonic ideal where every single variant of human being had this amazing differential that'd waiting to be exploited. But instead it seems a very cynical game where the superficiality of diversity conquers honest evaluation of needs and ability.
- sidlls 9y agoYou're making many assumptions that really aren't justified.
- lelandbatey 9y agoIn case anyone would like a mirror, I've tried to save the page as best I can here: http://mirror.xwl.me/why-so-few-computer-science-majors/people_computer_science.html http://mirror.xwl.me/why-so-few-computer-science-majors/peop... I seem to have the only working mirror which includes his graph, though the link to the original on his site is: http://i2.wp.com/danwang.co/wp-content/uploads/2017/05/bachelors.png http://i2.wp.com/danwang.co/wp-content/uploads/2017/05/bache...
- platz 9y agoPrimarily, because computer programming is low-status. (also, this is one of the main reasons why females are deterred from joining)
- wmil 9y agoAs a follow up, "Immigrants are taking all the jobs" is untrue. However people in MBA programs are quite open about their intention to make it true.
- djsumdog 9y agoIt has an almost duality to it. It pays exceptionally well, and can be exceptionally hard. Unlike building a bridge, we often see a lot of software slung together and say "Wow, this..this is terrible," unless you're one of those software developers who work for NASA or need to design pace makers or aviation safety equipment. (some of that stuff may be terrible too, but at least it's incredibly well tested). At the same time we see Dilbert, We the Robots and Office Space all showing the mind numbing reality of what is software development. Games look amazing and every kid wants to be a game dev, until they hear about the months of 16 hour shifts, the insane deadlines, the rooms filled with devs, artists, animators, QA/testers and writers sleeping under their desks to get a title out.
- deleted 9y ago[deleted]
- gallerdude 9y agoProud to be a freshman majoring in CS and also proud to be a nerd.
- quickben 9y agoThat's the spirit!
- sidlls 9y agoFor the same reason so few people major in any subject. CS isn't special. People major in subjects because they're interested in them, they think the career path might be good, there is social prestige, and many other reasons. It's entirely not surprising that CS has few people selecting it as a major. The decline or slower growth relative to other fields requiring similar kinds of intelligence may be an interesting question--or it may not be, but the posted article doesn't, in my view, present any compelling case for either answer.
- djsumdog 9y agoI'm glad I got a full CS degree, but I knew several people who dropped to the business versions (often called MIS or CIS depending on your school) and learned a lot of the basics of programming and web front ends without more the hard core algorithms and foundation work. As I read the into, I think the author touched on a lot of the reasons I was starting to think of. A lot of people do boot camps (which are overpriced for-profit garbage btw), community college programming classes, etc. I know people out of this programs that understand bigO notation and do all kinds of fun scaling work and I know CS majors who can only program Java/C# and don't know what a SATA connector is. You get out of your field what you put into it. As far as women in our field, I hesitate here. I don't really think it's the hostile landscape. I've worked with several female engineers. Some are amazing and good designers. Some are terrible. The ratio to good/bad males, in my limited non-scientific empirical view, seems about even. I also haven't really witnesses women being treated badly either and I've worked in five cities and several jobs over the past two decades. What I have seen are entire groups of people being treated like crap in hostel work environments, not limited or segregated by race or gender. I feel there are also not that many people in our field (both men and women) because it's...pretty horrible. Seriously, we sit in front of screen for 8 hours a day watching the world tick by, often doing our best to design the best we can to be bolted onto old decaying crap that should have been retired a decade ago. Or we build shiny new products that benefit the few and have tons of crazy requirements that come out of no where that nobody wants. There aren't as many women in engineering because in general women chose jobs that are more rewarding even if they're lower paying. I think we could all take a page from that philosophy, if we didn't live in a world where we were afraid of ending up on the bottom or without enough for essentials. I can honestly only two about two years at a time in IT these days. I've embraced the Sabbatical (http://penguindreams.org/videos/taking-a-sabbatical/ http://penguindreams.org/videos/taking-a-sabbatical/) even though I realize it's probably not sustainable long term, and also realizing my earnings in software give me this unique advantage, that most people simply don't have.
- nickthemagicman 9y agoI just wanted to say I agree with the field being "pretty horrible", for all the exact same reason you posted. Civil/Mechanical engs, Doctors, Lawyers, Nurses, Biologists etc, all get out in the field and/or get to work with people all the time... In tech it's the same flourescent lights, same keyboard, same office, same people...every day for 40 years? What kind of quality of life is that? It's literally the definition of the Rat Race, tech people are just paid better. This is a very legit reason for not entering the industry, and I think and is probably the biggest reason for the lack of csci majors.
- mdc2161 9y agoPersonal anecdote: I didn't major in it because I had no idea I would enjoy it. I was fortunate that my engineering program had two semesters of Java. We spent more time hand drawing logic gates than coding in the intro course and so it wasn't until the second (data structures) that I realized it was something I wanted to pursue. It was too late for me to change majors at that point, but not too late to take internships and then a job as a programmer.
- ellius 9y agoSame here. I wish I had the degree, but I don't regret the ones I did get (history and economics). I get to use code in a job I enjoy and thrive in, which gives me a leg up on the competition. It has made it difficult to break into fields I now think would be interesting (esp. security or systems admin), which I think has been the only downside. I can learn a lot of the interesting stuff on my own time and apply it when appropriate for my normal job.
- Osiris 9y agoI took one year of CS then finished with a degree in International Relations (basically political science and economics) and Latin American studies. I loved school and the topics I learned about, but they have no bearing on anything I've done professionally. University came out of a tradition of being educated for education sake, not to build job skills. Even computer science doesn't teach you how to be a software developer. It's an academic study of computers.
- cs702 9y agoOne possible answer no one has mentioned so far is that there many smart, capable people who do NOT want to spend hours every day sitting at a desk, in front of a computer, focused on code, with limited human interaction... so they pursue majors in other fields.
- swiley 9y agoI really kind of regret majoring in computer science because of this.
- paganel 9y ago> capable people who do NOT want to spend hours every day sitting at a desk, in front of a computer, focused on code, with limited human interaction. I've been asked by various close acquaintances and friends if they should try to get into IT (mostly as programmers), I've told them they should really be passionate about the field, not think only about the money, otherwise they would have a really bad time, psychologically speaking.
- watwut 9y agoThat is bullshit myth, frankly. It is no different then any other white collar job - economist spend spend hours every day sitting at a desk, in front of a computer, focused on numbers. Moreover, many if not most positions require quite a lot of communication. Even more if you work in agile team - you have to be serious extrovert to be happy in that situation. Most coding only positions are junior positions - anything above that (plus few rare positions) and you are have to fight to have enough time at a desk. If this is the reason people avoid this job, maybe we should stop lying to them about what the work actually is.
- vandyswa 9y agoAgree that all signs are there's a glut. Note that we're down to somebody at age 30 starting to notice age discrimination. With a career longevity approaching that of an NFL player or MMA fighter, is it really a good choice any more?
- shmolyneaux 9y agoAt the University of Waterloo in Canada, the ratio of CS applications to available spaces is over 15:1 [0] according to a Computer Science professor. It could simply be a supply issue. [0]: https://twitter.com/plragde/status/834474871010648064 https://twitter.com/plragde/status/834474871010648064
- tsumnia 9y agoIt's a few problems, but I disagree with some of the author's points. One issue it's posing the dot-com crash as a similar peak as what we are currently in. Eric Roberts of Stanford wrote an opinion article on what he saw was the ebb and flow of CS [1]. We are in another peak, undoubtedly, but I'd argue this peak mirrors 1984s popularity. Roberts suggests the issue with the 80s "crash" was an inability to meet demand. As such, universities began placing restrictions on incoming students. If it's damn near impossible to enroll in THIS major, I'll just go elsewhere. While this next link is primarily for women, you can see every other STEM/Law/Med domains grew, while CS did not [2]. Likewise, university "retraining" was no standardized, so you may not have gotten the training you needed. Fast forward to today, we say the university system is broken, but the only competitor right now are the recruitment boot camp or the "learn it yourself" model. Regardless of your opinion of any of the three, it is clear they are attempting to be products in "handling the demand". To counter "anti-nerd culture" and "immigrants" as bullet points - seriously? That's stuff we complained about 20 years ago (in the 2000's). Nerd culture is mainstream now that we've got billionaires everywhere and outsourcing didn't take "all the jerbs". This points sound more like parroting the concerns of the past. [1] https://cs.stanford.edu/people/eroberts/CSCapacity/ https://cs.stanford.edu/people/eroberts/CSCapacity/ [2] http://www.npr.org/sections/money/2014/10/21/357629765/when-women-stopped-coding http://www.npr.org/sections/money/2014/10/21/357629765/when-...
- fulafel 9y agoWhat interesting things are going on in the field of CS from a scientific POV?
- terminalcommand 9y agoI'm not a computer scientist, but I'd say Quantum Computing, Crypto Currencies, Compression algorithms like HEVC, new programming paradigms as can be seen in Escher, the comeback of functional programming and microkernels seem interesting to me.
- mrdrozdov 9y agoThe research in CS is very active. Take a look at arXiv/cs to get a sense: https://arxiv.org/list/cs/recent https://arxiv.org/list/cs/recent I would say Machine Learning is particularly "hot" right now, with the anecdotal evidence being that many ML conferences (like NIPS, ICML, CVPR, etc) have been experiencing better than linear growth.
- pbui 9y agoFrom my experience, the main reason for the low number of CS majors is simple: most students don't know what Computer Science is. At the university where I teach, half of the CS majors arrived on campus not knowing they would major in Computer Science simply because they didn't know what CS was. Only after taking a first year engineering sequence where they sample different aspects of multiple engineering disciplines do many of these students realize CS is an attractive and interesting field to study. Moreover, I have taught a variety of introductory to computing courses to non-CS majors (ie. humanities and business) and what I've found is that a number of students (particularly women) really enjoy the computing classes and say they wish they had majored or minored in CS, but they didn't know what it was until they took the class. A few actually do switch into a computing related major afterwards, though not necessarily CS. This may seem counter-intuitive, but while many people know how to use computers and technology, many people don't actually understand how it works. Because of this, Computer Science is a mystery to most people and so they don't consider it. This is in part why I am excited about the CS4All movement at the K-12 level... simply exposing Computer Science or computational thinking will go a long way in attracting more people to the major. Alternatively, another reason why you don't necessarily see a growth in CS majors is because programming is not restricted to Computer Science. Most science and engineering disciplines involve programming now and many curriculums will have programming courses. This is even true in humanities (ie. digital humanities) and business (ie. data analytics) where coding is becoming a desirable skill. If you had a deep interest in say economics and needed to develop some programming skills to simulate models or evaluate data, you can gain these skills and knowledge outside of the CS major and I think that is a good thing. With this in mind, I think a lot of CS departments will need to consider the shift from being a "destination" major to a "service" major where a significant portion of the teaching load is to non-CS majors who want a minimal core, but not all of CS. A flat growth in CS majors does not necessarily mean a lack of computing or programming education in general. Finally, I would say that in my department, we have seen record growth in the past few years (from 50 a few years ago to 150) and that is caused a number of problems. This is not restricted to our university as noted in "Generation CS" from CRA: http://cra.org/data/generation-cs/ http://cra.org/data/generation-cs/ So for us, the challenge for us is not growing the number of majors but how to manage the surge in a sustainable manner.
- 9y ago
- jorblumesea 9y agoYou don't need a CS degree to do most run of the mill engineering work. It helps, but definitely not required.
- Osiris 9y agoI did a year a computer science before switching majors. Computer science doesn't teach students how to be software developers. It's an academic study of computing, which is important but not for the majority of development jobs.
- mrep 9y agoDepends on your school. Mine required students to pick at least 1 concentration (1 included software engineering which taught things like software testing)
- k__ 9y agoGermany loves its degrees. If you want to be self-employed and save money on taxes, you need to show that you have skills that are rather sophisticated and having a degree is basically a certificate for that requirement. Also most companies think, if someone can get a technical degree at least they aren't complete morons.
- sleepingeights 9y agoThe environment in the US is in-conducive to high level educational attainment in the STEM sectors. On top of that, the fields and people in them are seen as alien to the US, hence they see them as areas for foreigners and immigrants. The US is an exploitative dominant culture, favoring aggression, and the like. Many traits that are counter to traits necessary for continued success and development based on internal attainment, versus external acquirement. The US cannot survive without immigrants due to their dominating trait of exploitation, (at least) as long as scientific and technological development is a necessary prerequisite for survival.
- jacquesm 9y agoA very large factor is that having a CS degree is not going to make up for the years lost as a developer if you're any good. Some companies are pretty heavy on the degree requirement but even the larger ones like Google have been slowly backing away from this. Lots of developers come into computer science through physics, maths and other peripherally related fields and discover they're good at computers. Finally, it's hard to continue to work on a degree for a pittance while your less capable buddies are raking in 6 figure salaries. At some point the words 'opportunity cost' will start to appear in your nightmares.
- kutkloon7 9y agoI majored in computer science, and I don't feel like I've learned anything. Every time there was an opportunity to learn something cool (mathematical theory behind cryptography, assembly language, details of a processor, the cache, or a communication protocol) or useful, it was glanced over as 'technical details'. Instead, I was introduced to many, many small topics (programming, graphics, databases, algorithms, user experience, functional programming, logic, web programming), but we didn't go in the depth. To be honest, I forgot most of it. It did easily land me a job as a consultant, though. I honestly wish I'd picked a more interesting major, like electrical engineering or physics. I feel like I could learn the things I've learned in a few months (which may or may not be true). Computer science is just not very hard, while physics, math, and engineering is. I think the guys from other fields can be more successful programmers, just because they are smarter (more used to solving hard problems). In computer science, the only course that required a little bit of creativity was algorithms. It was stuff mathematicians are practically trained to do (be it not in exactly the same setting).
- nxc18 9y agoWhat was your program? I suspect there is considerable variation. My program only required students to take the intro courses for all those topics, but students were expected to pick one or more areas of concentration. I wrote an operating system and a simulated CPU implementing (a subset of) a real-world ISA in my last semester - both comparatively in-depth things. Of course I did have to choose that, and in so doing, I chose a semester of hell. Similarly, doing an intro-level survey of all of those topics won't leave you with much; there is a concept of depth-over-breadth that I think is lost in programs' attempts to sound rigorous by bundling in everything under the sun. However, none of those things you listed are 'small' topics and could very well be majors on their own.
- kutkloon7 9y agoJust a vanilla computer science program. I combined it with a math major. I think the program at my uni was especially soft; there were no math courses at all. I suspect it's a bit better at a 'technical university' (I do my masters at one). I think the electrical engineers at my new uni are on par with the computer scientists at programming (which is basically the one and only skill you learn in my CS program), or even better.
- joelbondurant 9y agoComputer science is the study of what EE majors build.
- overgard 9y agoI think the problem is how the subject is taught. I remember my first CS class, and there was quite a bit of diversity that quickly disappeared after the first test when people started dropping the class. (I'm pretty sure something like half the class disappeared, and I don't think this is at all unusual). So why did all those people initially find interest, and then disappear? I remember the way they taught it was VERY dogmatic Java/OOP. Putting aside my personal feelings on those subjects, that's like teaching someone to swim by throwing them in the ocean without a life jacket. I tutored some other students, and picking up the language AND the IDE and the debugger and understanding compilers -- it was too much. I remember trying to learn java as a kid and being baffled, and then picking up QBasic and basically getting it immediately. QBasic teaches you some awful habits of course, but for a beginner it's much easier to reason about and it will teach you how to think like a computer. I'm not suggesting we go back to teaching QBasic, but it has to be something other than Java. I think CS departments throw everyone in the deep end with an awful curriculum, and then act surprised that everyone leaves except the hardcore nerds that already knew these subjects before they got to school.
- kutkloon7 9y agoI remember this too. For me it was the other way around. I learned QBasic - which I still think is awesome, even it was for DOS only - first. Then I learned C# in my first year at uni and it was a breeze. There were basically the people who could program, and the people who could not. You could see the double bell curve in the grade statistics.
- Bartweiss 9y agoTo forestall the usual HN discussion: the double bell curve result has not, contrary to popular summary, been found invalid. Dehnadi & Bornat (2006) was the seminal two-hump paper, which was widely circulated but never peer reviewed. In 2014, Bornat (who was Dehnadi's advisor) retracted it. However, the situation is an odd one. None of the data was ever called into question. The basic methodology has seen criticisms raised, but has not been clearly invalidated. Several subsequent experiments (Dehnadi, 2009; Dehnadi et al., 2009; Bornat et al., 2012) confirmed, at least, that the aptitude test consistently produces two humps. Rather, Bornat issued his retraction in the face of his commentary on the studies. He described having a bad reaction to SSRIs in 2006, and subsequently making a large number of wild and grandiose claims about the work. These included calling the aptitude test "100% accurate", flatly stating that some students couldn't learn to program, and publicizing third-party claims about gender in the data set. This is all very weird. The study stands uncorrected. Dehnadi seems to have gotten caught in the crossfire, since his paper was retracted for extra-textual reasons. No one has really settled the question of how predictive the aptitude test is. The only major follow-up I've seen, out of Toronto, is simply wretched. (They used CS course grades after curving to argue about distributions!) So: double bell curve. Not proven, not retracted, still widely supported by anecdote. http://wiki.t-o-f.info/uploads/EDM4600/The%20camel%20has%20two%20humps.pdf http://wiki.t-o-f.info/uploads/EDM4600/The%20camel%20has%20t... http://retractionwatch.com/2014/07/18/the-camel-doesnt-have-two-humps-programming-aptitude-test-canned-for-overzealous-conclusion/ http://retractionwatch.com/2014/07/18/the-camel-doesnt-have-... http://www.eis.mdx.ac.uk/staffpages/r_bornat/papers/camel_hump_retraction.pdf http://www.eis.mdx.ac.uk/staffpages/r_bornat/papers/camel_hu... http://www.cs.toronto.edu/~sme/papers/2016/icer_2016_bimodal.pdf http://www.cs.toronto.edu/~sme/papers/2016/icer_2016_bimodal...
- johan_larson 9y agoI would guess the issue is prestige. Software development, like engineering in general, is not a top-tier profession in the US. The actually top-tier professions are doctor, lawyer, and banker/financier. Software developers, like accountants, are well paid but second-tier in status, geeks who worry about the details rather than distinguished professionals who call the shots. Interestingly, the three professions I mentioned above all have graduate degrees, whereas software developers have B.Sc. credentials, if that.
- ken47 9y agoI disagree. The things you say may have been true decades ago, but are not entirely accurate today. The US's banking industry's reputation took a big hit in 2008, and it has become increasingly common for top university students to head into tech over finance since then. Not to mention, firms like Goldman Sachs are replacing many of their traditional traders with software engineers. Outside of top law schools, the prospects of law grads have diminished greatly over the past decade or two. And some varieties of lawyers, such as patent trolls, are especially frowned upon -- the opposite of "top-tier" and "distinguished" in the eyes of many. And I don't think the pool of potential doctors and the pool of potential software engineers overlap much at all. I would guess that the number of university students deciding to be doctors instead of software engineers is quite small.
- freyr 9y agoFinance may have taken a hit recently, but if you're in the northeast (NYC, Boston, etc.), it still has much higher prestige. It also has a much, much higher compensation ceiling. The same goes for lawyers working in cities. Many law students are underemployed, but overall there's a much higher compensation ceiling. Management consultants weren't mentioned, but a large percentage of top grads end up there, being groomed for executive positions in Fortune 500 companies. Many of the Ivey League students gravitating to tech are likely envisioning themselves as founders or C-suite executives, not engineers. Outside of the SV bubble, software engineer is not a top-tier job. Nor is it a particularly well paying job. In SV though, it has prestige.
- matchagaucho 9y agoLearning the science behind how my guitar was made didn't make me a better player. But it was useful knowledge.
- deleted 9y ago[deleted]
- lordnacho 9y agoThe grief factor of learning to code is on a different scale to every other major. One missing semicolon will take your whole tower down, and you realise this in the first day of practical exercises. Even if you are of the opinion that CS is math, and coding doesn't come into it, you will hit a coding wall early on. In fact, every exercise in CS has this problem. You add a new thing (eg inheritance), and it breaks. But not only that, it might be broken because of a banal little syntax problem. And that's just what you consider code. If you put in the wrong compiler flags, it breaks. If you can't link because something needed rebuilding, it breaks. Want to avoid it? Learn how make works. Huge number of options, which you won't understand, because you're a novice. Oh and learn git, too. And Linux. Just so you can hand in the homework. Compare this to the rest of university. I'll use my own experience. - Engineering subjects tend to revolve around a small number of vignettes. Here's an aircraft engine in thermo. Draw some boundaries, apply some equations. If you get it wrong, your tutor can still see if you were going the right way. Once you've learned the relevant points, it's not hard doing some rearrangements and plugging in some numbers. - Economics essays are basically bullet points. Miss one out, you still have an essay. Which you can hand in without knowing git.
- adrianratnapala 9y agoAll this is true, and yet when I was a young'un, Engineering had a plenty high dropout rate. Higher than CS I think.
- madengr 9y agoYep, 66% or more dropped out.
- Kenji 9y agoFor me, maths was a much bigger stepping stone than programming. When I came to uni, I was basically already equipped with most of the programming knowledge I needed to enter the workforce. I learned it quickly and easily. But maths - man, that's a different monster. It's one thing to see that you missed a semicolon, another to understand what singular value decomposition and principal component analysis and Stoke's theorem mean.
- Raphmedia 9y agoTwo path were in front of me: A) Enter the market without a major. Work for a low but decent pay for 4 years (with yearly pay raises) and then use the experience to move elsewhere and jump up in salary. B) Spend 4 years without any pay, get out of school and end up with an entry position, work 4 more years and then move to a position that offers a good salary. Needless to say that I went with A) and am not regretting it at all.
- Overtonwindow 9y agoBecause universities continue to place a heavy emphasis on math, specifically calculus, as a gatekeeper. Calculus is useful but I don't believe it's necessary for a CS degrees.
- tomtompl 9y agobut it's true for math itself also. you're missing a point here.
- Overtonwindow 9y agoFloating or fixed?
- jerrylives 9y agoIf kids are failing out of Calc 1, I doubt they would fare any better in upper level CS classes.
- Overtonwindow 9y agoI disagree. I think the concept of mathematics as a deciding factor of how well one would do in CS is based on the perception mathematics professors have on it. If you remove the requirement for lots of math for a CS degree then those professors lose out of classes to teach, diluting their necessity. Less classes mean less revenue for the schools. I think math and CS are entangled because of history, and protecting the status quo. Sure it's useful but that doesn't necessarily mean it must be mandatory. To lessen math in CS would mean too many entities lose out, so they have a vested interest in keeping things just the way they are.
- dahart 9y agoWhoa, that chart seems really misleading. There are 3x more CS majors than math majors and 2x more than physics. The chart is showing derivatives, not absolutes. That basically undermines the title of the article. Looking at the graph, it's also super important to see the context before 2005 -- that start date adds significantly to the misleading impression this graph is giving. Math had more majors in 1970 than it does today. Physics has only grown by 50% in the last 40 years, and both have had huge dips just like CS had. I was coming up with some explanations myself, but now I think I reject the premise, and feel like the right question is: why are so many people majoring in CS and so few in math and physics. More math and physics people can code than ever before, it seems like they'd be able to score coding jobs and be more prepared than a lot of CS grads.
- vilhelm_s 9y agoYeah, exactly. He writes "What deters them from studying this exciting, high-wage profession? Why do they go into math, physics, or engineering in higher numbers instead?", but students absolutely do not go into math or physics in higher numbers. I'm not very surprised by that: not very many people are smart enough to do math or physics, while computer science is much easier. Meanwhile, the fields that are larger than CS are the engineering and biomedical ones. I feel this is a bit vulnerable to how you slice it though, e.g. the number of CS graduates are presumably more numerous than any particular type of engineering (mechanical engineering etc). It's a bit of an accident that all those fields are grouped together and computer science is not. (This could have been otherwise, e.g. in Sweden you can study both of an MEng in "software engineering" or a BA in computer science, and the content is quite similar.)
- sien 9y agoFine comment. I'd upvote multiple times if possible.
- dahart 9y agoI missed my edit window, but here's the absolute plot: https://www.dropbox.com/s/8uhphbrpgygcpgy/majors.png?dl=0 https://www.dropbox.com/s/8uhphbrpgygcpgy/majors.png?dl=0 Contrary to the worry that not enough people are majoring in CS, what this shows is that CS is growing out of the relatively small math/physics group and into the larger mass appeal groups. And maybe what this shows best of all is that Biomed is through the roof. On the whole, CS has grown slightly more than 3x since 1980 and biomed has grown slightly less than 3x since 1980, but those are the top two sciences. EDIT: If I divide 2014 numbers by 1970 numbers, here's the "overall" growth chart for all majors in the data that Dan Wang linked to. Sliced this way, CS is the fastest growing major in the sciences by a long, long way. That is somewhat unfair since CS is the newest, the number is big because the field was tiny in 1970. But, this is a more fair a way to look at this than the article, IMO. 30.67139364 Homeland security, law enforcement, and firefighting 30.23195558 Parks, recreation, leisure, and fitness studies 24.9501675 Computer and information sciences 10.74267782 Communications technologies 8.78051143 Communication, journalism, and related programs 8.572651945 Health professions and related programs 8.110091743 Legal professions and studies 7.519924099 Multi/interdisciplinary studies 6.286681303 Public administration and social services 5.83438043 Liberal arts and sciences, general studies, and humanities 3.348484848 Engineering technologies 3.152990722 Visual and performing arts 3.152613609 Business 3.078456019 Psychology 3.077888251 Biological and biomedical sciences 3.017448623 Area, ethnic, cultural, gender, and group studies 2.862768308 Agriculture and natural resources 2.609677419 Theology and religious vocations. 2.201486523 Family and consumer sciences/human sciences 2.172980415 Engineering 1.631956912 Architecture and related services 1.402989257 Physical sciences and science technologies 1.358694318 Philosophy and religious studies.. 1.074811362 Social sciences and history 0.92876882 Foreign languages, literatures, and linguistics 0.881133825 Mathematics and statistics 0.773109244 Military technologies and applied sciences 0.717323278 English language and literature/letters 0.519678742 Education 0.097729516 Library science The total number of majors grew by 2.26x between 1970 and 2014, so majors over that are actually growing, and under that are shrinking relative to other majors. Everything above Theology is improving, everything in Family and consumer sciences is shrinking. Oh, wait, this is actually the biggest revelation to me so far: Engineering has actually shrunk a little, and Math & Physics have shrunk a lot. CS is growing, not shrinking. Here's a plot of the sciences as a percentage of total majors, this is more indicative of the growth of each field relative to other fields than either the absolute numbers or the delta plots in the article: https://www.dropbox.com/s/xuxithrti6nyljm/majorsSciencesPercent.png?dl=0 https://www.dropbox.com/s/xuxithrti6nyljm/majorsSciencesPerc... And compared to more majors: https://www.dropbox.com/s/wkronio6arxsrjs/majorsPercent.png?dl=0 https://www.dropbox.com/s/wkronio6arxsrjs/majorsPercent.png?...
- dboreham 9y agoHmm. Perhaps because it tagtets a profession that just isn't that big, compared to dentists and doctors and accountants and lawyers. Almost every human needs one (each) of those folk. They don't generally need an algorithm expert.
- Const-me 9y agoIt’s at least just as big, only less obvious. While personally we might never need an algorithm expert, we’re using a lot of software each day. PCs, smartphones, stupid phones, cars, home appliance, they all run software which required many algorithm experts to make.
- GnarfGnarf 9y agoEngineering, physics, math etc. differ from Comp. Sci. in one major respect (so I hear from colleagues). If you invest a finite amount of hours in the first category, you are pretty much guaranteed you will have something to show for it. Not easy, not simple, but you will get results. Comp. Sci. is a black hole. You can blow ten hours on an obscure logic error. Students know from experience that their tightly budgeted schedule can be wrecked, and they can miss deadlines for reasons that seem out of proportion with the payback. This impacts their other subjects as well. BTW I've a 50-year career in IT. The sum total of my academic qualifications was 1 week of FORTRAN. The rest I learned on the job.
- k__ 9y agoComputer science has 2 parts many people consider hard. Math and programming. I was very bad at math, but I already learned programming in high school. This enabled me to do the programming classes without learning too much and put the saved time into math classes. Also universities value students who are good at programming, because they are cheap labour for their projects. Seemed to me that only <50% of the students even wanted to do programming, so they had to think about other things to make the profs happy. "Oh you will work for 3-6 months for me and all I have to do is let you graduate? I'm sold!" ;)
- khyryk 9y agoThis is just my experience, but I know that many people weren't enthused by the fact that computer science classes were absolutely packed with people. Obviously this depends on the school, but if class sizes of 200+ persist even after the first few intro courses, it'll whittle down the number of people pursing the major for a variety of reasons, such as poorer quality instruction and the inability of those who need a bit of help to get it as the line outside the TA's office is in the dozens.
- ensiferum 9y agoMaybe it's because compared to the other scientific engineering jobs and curriculums software engineering as a job is like finger painting with feces.;-)
- jvanderbot 9y agoI work with electrical engineers, mechanical engineers, and mathematicians, and computer science students, all who program pretty darn well. The programming is incidental to solving real world problems. If your job is to crank out code which envelops someone else's design solution, it doesn't really matter what courses you took in undergrad, as an undergrad education of any kind is just a very broad introduction to many things, in the hope that one will "stick" for employment.
- brod 9y agoI am a self taught web developer, I started a bachelor in IT with a CS major mid 2014 assuming the title would increase job opportunities. Late 2014 I landed a part-time job in web development, that role then moved to full-time and I transitioned out of the Bachelor program as I was learning more valuable work-related skills at my job or in my spare time. Since then I've advertised to employers that I'm part way through a bachelor, willing to complete if they believe it's necessary but otherwise not interested. I'm now earning just above the average cited in the article and have no intentions of returning to school. I know of a few classmates that are in the same boat, they got a part-time job, transitioned to full-time and quit schooling. In my opinion, the fact I was studying was critical in landing the first job but useless afterwards once I could prove my ability and worth. I doubt people who only completed a degree could compete at technical interviews against people with a self taught background.
- deleted 9y ago[deleted]
- elihu 9y agoMy theory: computer programming is awesome, but getting a good job doing interesting work is really hard. A bachelor's degree in computer science won't even get your foot in the door in a lot of places. However, there is lots of work doing IT for banks or writing Java for insurance companies or creating web pages for doctor's offices. That sort of thing might pay pretty well, but it's not the sort of thing that you would have said when someone asked you what you wanted to be when you grow up. Maybe a lot of prospective students perceive (correctly or not) that all the best jobs are already filled by talented people and the competition for those is intense. If you didn't get in at the right time when the industry was in a massive growth phase, you're more likely to get stuck in a dead-end job.
- watwut 9y agoThere are interesting jobs in Java, actually. Interesting for me means you have to think to complete task and that you have to often learn. Java was always getting bad reputation, but seriously, people who diss it the most are the ones who tend to produce the same small project over and over (but in cool languages).
- elihu 9y agoI expect there are interesting Java jobs. However, a lot of companies who aren't particularly interested in technology tend to gravitate to Java or .Net because nobody ever got fired for writing a boring application on those platforms. That's not to say that there's anything wrong with Java. I just have trouble imagining an insurance company paying some Java developers to do basic research on fundamental computer science problems, or writing a new operating system or programming language or database.
- watwut 9y agoMost boring applications are on the web - currently javascript. Insurance companies and banks need interesting algorithms and math sometimes (I had such position and liked it).
- noobermin 9y agoA random meta-comment, this was actually a very good and reasoned piece here. I am have tired of blog posts that wax poetic about issues while relying on anecdata and intuition, while this piece actually looks at data and statistics. I've begun to avoid blogposts like this that discuss controversial topics because they often lack those things, but this didn't disappoint. Great job.
- deleted 9y ago[deleted]
- mbell 9y agoI still can't figure out why prospective developers go to school for computer science other than lack of better options. It's the equivalent of someone whom wants to go into civil engineering getting a degree in physics. It can certainly work, but it doesn't really line up with the end game. I guess it's mostly just the lack of computer engineering programs. But, most of those seem to be rather off base in terms of preparing developers as well.
- cynusx 9y agoThe whole idea that people pick their education based on rational assumptions when they are 18, know essentially nothing and are coming straight out of an environment where perceived status is all that matters on the playgrounds is ridiculous. The choice of what to study is not a rational decision but a social decision. People follow their friends, guys go study what the hottest girls he knows are going to study, parents push kids to study fields that they themselves perceive as high-status like finance, law or medicine. The biggest problem with computer science degrees is that it is a relatively new field and it hasn't been embedded in society as high status yet. This will change, but it will take generations for it to take effect. The field is obviously difficult but you don't have to be a genius to get a CS degree, it doesn't require much more determination to study ridiculous amounts of jargon for law or medicine degree then to understand complex discrete mathematics problems. The social cost of "failing" a law degree is much higher (parents complain son of X did pass and he had similar SATS) then failing an engineering degree (parents understand "it", they don't understand computers either).
- lithos 9y agoI exited out of IT programming degree for the military. A big reason was I did math on what my future loans would mean to me to get a bachelor instead of just my associates. Sweating through the nuke program for 3-4 more years (extra compared to college), having no debt at the end, and a program that if you complete it is more valuable than a lot of degrees. It also seemed that there were two types of programmers. The Office Space guy, that is a cost to their company. And the Cult Of IT guy, that pretends to only think about IT. I wouldn't have the patience for the first, and after learning enough Lisp to make simple macros (and rip apart some of Paul Graham's mediumish ones) I realized that I just saw a system that does what it's told (and probably wouldn't be able to keep a straight face when Cult Of IT people worshipped beauty).
- curun1r 9y ago> it is a relatively new field and it hasn't been embedded in society as high status yet I'm not sure status plays into it, but I think you're onto something in that it's not fully established yet. If you want to be a doctor, you need an MD. If you want to be a lawyer, you need a JD. If you want to be an engineer in the physical world (civil, mechanical, nuclear, chemical, etc), you need that degree. But if you want to be a developer, you just need to demonstrate and ability to do it. You can have your degree in a completely different subject, and you're still able to get the job. I've even seen places that preferred hiring mechanical engineers and physics PhDs to write code. Likewise, there's no professional accreditation board and certifications are often viewed negatively by employers. In time, as programming develops as a discipline, one of two things will happen. Either these barriers to entry into the field will spring up and the CS degree and subsequent licensing exam will become a prerequisite for working in the industry or programming will become a part of the curriculum for many other disciplines and the days of being a specialist in programming will he over. But it's still new enough that neither end state has been reached. And in the current state, the only purpose of a CS degree is to learn. On paper, after four years in college, you'll be a less desirable hire than someone who spent six months in a developer boot camp and then got 3+ years of industry experience. I'm not saying a CS classes are worthless...I greatly enjoyed everything I learned in them and I feel I'm a better developer for having taken them. But the degree, itself, is no different than a math or physics degree when applying for work, so it shouldn't be a surprise that it's not as popular as a major.
- hn094062 9y agoI tried pulling a CS-English double major in the 1980s. I loved programming, especially the then-new network programming. But the school I attended used the ACM CS Curriculum which pretty much required a math minor in addition, and the logistics didn't work for me (I ran out of money). I would have needed another three semesters just to meet the math requirements. IIRC, I didn't particularly enjoy the actual CS classes, instead I'd spend hours playing with the Sun workstations and tinkering with how commands and code interacted. I could care less about Universal Turing Machines but became the defacto sysadmin for our tiny cluster. None of that counted as course credits of course.
- avenoir 9y agoBurnout, stress and health issues resulting from stationary way of life would have drove me away from CS 10 years ago had I known what I was getting into. It's a love-hate relationship for sure.
- GCA10 9y agoDan nearly solves his own riddle with possible explanation No. 2: "You don’t need a CS degree to be a developer." He just doesn't spend long enough probing this issue. Majoring in computer science is like majoring in English with hopes of becoming a writer. Or majoring in economics with hopes of starting a business. You'll get all the theory. You'll mingle with all the lifers. But because you try to come into the guild at age 18, there's a risk of narrowness/tunnel vision. The people majoring in stats, math, physics, etc. may work on more interesting problems during their college years, or develop a more holistic sense of how to come at big new areas of learning. Meanwhile, the opportunities for non-CS majors to pick up programming skills via electives or non-classroom projects are huge. Where Dan sees a problem, I'm seeing a healthy diversity. The U.S. is able to come up with enough software talent as is, drawing on many different pathways. Why insist that everyone be trained the same way?
- deathanatos 9y agoI have to disagree; I routinely need to educate co-workers on how things like B-Trees works, what a sum type is and why it is useful, what the SRP means (and why it is useful), why testing matters, why abstraction matters, or even things like how to secure production servers. To take the B-tree example: I've run across a number of people who I feel are more apt to blame "the database" for being slow; "it can't handle the load" being one of the excuses I've heard used as a "reason" to switch to an entirely newer database that "scales" better. The real reason that the DB isn't scaling is that the queries being run aren't properly indexed (i.e., there exists a B-Tree that has the column being queried, but that B-Tree nonetheless cannot effectively answer the query without reading millions of extraneous rows) and a fundamental understanding of how a B-Tree works is missing. (I find this most often arises on B-Tree indexes indexing multiple columns, e.g., for an index over (a, b), people mistakenly believe the index can effectively answer range queries on b without specifying a.) To take the abstraction example: in a project I currently maintain, the codebase is incapable of doing anything other than being an HTTP server: the incoming JSON is handled at the lowest levels interacting with the storage systems, and those same storage layers generate the response JSON. (Though each is filtered and mangled a myriad of ways in between, but it's all dicts and lists, from top to bottom.) > the opportunities for non-CS majors to pick up programming skills via electives or non-classroom projects are huge. You're not wrong that these opportunities exist, but in my experience, while they do indeed teach people how to code software, they do not teach people how to engineer software. A math/physics major may only need their simulation to run on their input, but building stable server-side systems that won't wake you up in the middle of the night is a different thing altogether.
- matthewbauer 9y agoI haven't seen a mention of this, but what about the rise of CS-like degrees that people have been getting. Many colleges now offer "software engineering" and related majors. In addition some colleges have recently now CS into the Engineering department. Could that be messing up the data?
- bane 9y agoThat's a really interesting chart. I'm "lucky" enough to have gone to school around the time of the first dot-com crash and remember the surge of people into CS around that time -- most looking for the kinds of huge paychecks for little work that were becoming legendary during that time period. It was surprisingly hard to find and connect with peers that were authentically interested in technology, computing and similar subjects. After the dot-com crashes, and 9-11, and lots of the ridiculous paychecks dried up, people left the major in droves. I remember my university in particular went from having to turn away students from the CS major to having major recruiting events for CS in the span of just a couple years, with huge swings in faculty count and facilities. One thing that really came out of all this I think, was a better understanding by the public that CS != programming major, and companies were looking for programmers. It was then perfectly acceptable to take an easier major that focused on programming and get the same job as the CS student who had to endure a much more difficult course load. There was also an effect in industry as people who endured even harder majors found they could simply make more money as programmers and had the mental tools to get up to speed rather quickly. I remember distinctly at my school at least, that students self-sorted majors by perceived difficulty in a way not too dissimilar and not too much out of agreement with the famous xkcd "Fields Arranged By Purity" https://imgs.xkcd.com/comics/purity.png https://imgs.xkcd.com/comics/purity.png IIR the sorting went something like: any Liberal Art < any Soft Science < Information Technology < Information Systems < Biology < Software Engineering < Chemistry < Computer Science < Computer Engineering < Electrical Engineering < Physics < Math My school peers all sort of used major as a badge of rank in social functions even though it was kind of useless and stupid. But I think it also connects to this chart, by all accounts I've heard, there's a vast oversubscription of Biology majors and the way the market handles this is to introduce more hoops or very very low pay. In other words, it's virtually impossible to get a great job as a biologist without getting a PhD in the field. Chemistry is similar. But the same isn't true in CS on up.
- siliconc0w 9y agoSchools do a terrible job getting people excited about computer science and even worse software engineering. You start with C and Java and a bunch of arcane syntax and commands to print 'Hello World' when you could start by making simple games or apps and working backwards to introduce CS concepts mr miyagi style. I started with Basic in elementary and PHP in middle/high school and by the time I got to college - young arrogant me was like, "what is this C/java noise and why do I need it when I can already do all this cool stuff with php!". I didn't really start appreciating CS and how it applies to software engineering until much later.
- 01572 9y agoTo an audience of CS majors this will probably sound like trolling but honestly I have never used any software written by a "computer scientist" that I came to value and rely on -- software that I consciously chose to use. Whereas I have found such software on multiple ocassions written by mathematicians or persons in some other field, e.g., physics, etc. As a user of software, I do not believe that a computer science degree is of any significance in terms of the ability to write good software. The blog post makes a comparison to Liars Poker. Perhaps it should be noted that the author of Liars Poker majored in art history. It was not necessary for him to have a particular degree in finance to do his "job". That was the point of book. The question to ask today is whether one needs a degree in CS to write good software.
- pcunite 9y agoPrograms that you enjoy using are put together by folks with the skills "product and user experience". If they know how to code, good.
- nine_k 9y agoI heard that separation of labor is a thing since Renaissance times or so. Does it ever happen in software industry? Note that the separation may also be temporal ("...and now it's time to redo the UX").
- zild3d 9y agoDo you value and rely on any compilers? Operating systems?
- learc83 9y agoDo you use Gmail spam filtering? Google search? Windows? OS X? TCP/IP? I can assure you that software you've came to value and rely on was written by "computer scientists". So yes, your comment does sound like trolling. That or you're just completely misinformed.
- 01572 9y ago
- armchair_hunter 9y agoThe chart shows degrees conferred, not how many people are enrolled in a degree. I've been teaching CS at universities since 2010 and I've seen a tremendous growth in CS enrollment. On the flip side, a large number of students fail. This spring, I failed about about a third of my pupils in the intro class and in following data structure course. If this holds true for future semesters -as it has for the past few- only around half actually make it through data structures. CS is hard, and not just because of how exacting the syntax is. It is completely new for many students. Engineering is hard, but a student has expectations they could draw on from math and physics. Same with biology related fields and chem related fields. There are expectations from high school a student can draw upon.
- metaphor 9y agoNo discriminant between BS and BA flavors of CS. No numbers to capture those who minored in CS. No breakdown of engineering by discipline (in particular, CpE and EE). Interesting data, but it leaves much to be desired. Surprising that there's no discussion of CS as a "tool" discipline in the same sense as math and stats are, especially at the bachelor level. When I consider that "Engineering" comprises far more distinct disciplines than "Computer and information sciences", stats on the former are quite dismal. This becomes even more evident at the master's level[1]: for 2014-15, the number of master's degrees conferred in all engineering disciplines is ~25% less than the number CS bachelor's degrees in the same FY. [1] https://nces.ed.gov/programs/digest/d16/tables/dt16_323.10.asp https://nces.ed.gov/programs/digest/d16/tables/dt16_323.10.a...
- BadassFractal 9y agoCan we already kill the meme that CS or STEM are hostile to women? Correlation does not imply causation. Disparate outcomes do not imply disparate treatment. Nobody in the right mind looks at the 94% of child care services jobs being filled by women and exclaims "Aha! Systemic sexism against men, matriarchal oppression afoot, we must address this social injustice!", yet all common sense falls apart when it comes to STEM. Good talk on the subject here: https://www.youtube.com/watch?v=Gatn5ameRr8 https://www.youtube.com/watch?v=Gatn5ameRr8
- azakai 9y agoOne major factor not mentioned here is that the number of college graduates in a field is not just determined by how many apply to it, nor the author's #6 (reactionary faculty that fail large amounts of people). There is also how many people are accepted in the first place. If a university has 100 spots for CS, then even if twice as many people apply for CS in one particular year, there will still be 100 people (but with higher SATs, presumably). There is some flexibility here, but it is limited - those 100 people require a certain number of faculty and grad students to teach them. They need a large-enough building with the proper facilities (you can send students to classrooms in another building sometimes, but it's not optimal). The campus can't just accept more than the students they planned for without preparation, and those plans are made long in advance. If a university sees a field is popular, it may work to eventually be able to accept more applicants. But it might not decide to do so - popularity among students isn't the only factor considered, there are many others, like ease of acquiring funding and grants, likelihood of undergrads becoming graduate students (and whether the university wants more or less of those), etc., all of which require multiyear planning and also have various political factors. tl;dr It's worth seeing if we can find data on the number of applicants, and not the number of graduates. It's possible the number of applicants has been increasing.
- taylodl 9y ago"Cultural centrality of Silicon Valley"?! Excuse me, who's culture? Most of us in the field don't care about Silicon Valley and nearly no one outside the field cares. Sounds like someone needs to get out of their bubble.
- ericcumbee 9y agoMy reason and why I went IT instead of CS was the amount of Math.
- walshemj 9y agoId disagree that CS or IT in General is "high" status even in the USA. Just because a few 17/18 years olds think iphones are "kewel" does not mean that CS /IT / STEM jobs ae high status. Take the UK no techie/stem leader gets the really high honours CMG KCMG, GCMG or as yes minester put it. Bernard: “Of course, in the service, CMG stands for Call Me God. And KCMG for Kindly Call Me God.” Hacker: “What about GCMG?” Bernard: “God Calls Me God.”
- deleted 9y ago[deleted]
- burnDayAndNight 9y agoI would assume that it is because Computer Science in general academia only speaks to select number of people.
- atomical 9y agoI didn't want to take four years of calc and physics.
- keithnz 9y agoI know a number of universities in NZ have non comp sci paths to programming careers through their engineering department. Maybe there's some course diversification going on?
- sovande 9y agoCS jobs in the west are victims of Globalisation. We simply cannot compete with Asia and Eastern Europe with regards to wages. Hence outsourcing which has been ongoing for decades. We _can_ compete on quality and solutions, but these are hidden properties which might or might not be a problem in the finished product. Business people consider scope and cost first and foremost. In addition, many of the best and highest paid programmers are self-thought. This works, because 99.9% of your career will be bread and butter CRUD apps anyone can do. At the university we studied algorithms and data structures which we will never use or implement. When was the last time you had to do a breadth-first-search on a graph? I really cannot recommend anyone in the west to study CS today.
- Futurebot 9y agoAside from the many valid theories already listed, I'd add: perception of dullness Many people find the idea of staring at code all day, regardless of potential for remuneration, boring. Worrying about every little character, futzing around with compilers and debuggers, and reading manuals isn't many people's idea of fun. Over the years, several non-developers have commented on this to me; "boring," "dry," and "dull" were generally the adjectives used. It's also perceived by many (rightfully) to be especially prone to the "retrain on your own dime" issue (which has become more common across industries and jobs, but in software dev is particularly acute.) The idea of spending your weekends having to learn a new library or brush up on your fundamentals to interview yet again isn't appealing, and it wouldn't surprise me if younger people were already very clued into this. "Most desired career among young people: 'YouTuber'": http://www.tubefilter.com/2017/05/24/most-desired-career-young-people-youtube/ http://www.tubefilter.com/2017/05/24/most-desired-career-you...
- JDiculous 9y agoHere's why I switched out of a CS major in 2009 as a sophomore (to math) after being convinced that I'd major in CS since high school. * Feeling that I can learn programming on my own, and wanting to experiment with something I wouldn't otherwise teach myself in college Of course CS != programming, but in my head at the time I saw them as the same. I'd been teaching myself programming since I was a kid, and I knew I'd be able to teach myself whatever I needed to know if needed. Thus I felt that it made more sense for me to study something totally foreign to me that I wouldn't otherwise learn on my own. * Fear of living out the rest of my life like the movie Office Space, everything being so damn predictable This was before software engineering was considered "cool" or had any prestige. Being a software engineer and sitting at a desk all day in a gray cubicle writing enterprise software or whatever sounded boring as hell. As a socially awkward introvert with no other skills, I felt that majoring in CS would inevitably lead me down that comfortable but unfulfilling route, which frightened me. It wasn't just the fear of living a boring life, I just hated the predictability, knowing that I'd never be more than some boring code monkey with a decent salary (though not finance/doctor/lawyer money) and boring job (at the time I clearly knew absolutely nothing about entrepreneurship). * Not feeling passionate about programming anymore, and feeling like I'd never be able to compete with all my classmates who are so damn passionate about it (and not caring anymore) A lot of people in the field seemed to be super passionate about programming, coding all day and all night. I had gotten into it at 12 years old because I wanted to make video games, but as my interest in video games was receding, I realized I wasn't really as into it as I thought I was. I felt like there was no way I'd ever be able to compete with my competition who lived and breathed programming. * CS is boring This was a huge revelation for me. On one hand I loved programming and thought it was awesome that I could do what I considered fun and get school credit for it. But at some point I realized that although I love the programming part, I found the CS I was being taught mind-numbingly boring. I couldn't care less about sorting algorithms, binary trees, graph traversal algorithms, and most of the other abstract crap I was supposed to learn. I just didn't see why I had to know that stuff. I've realized that I get super interested in this same material when the knowledge is directly necessary for something I'm trying to build, but otherwise I couldn't care less. * CS is hard I thought math was easier, which was honestly part of the reason why I switched to math. Given the obsession companies have on GPA, it was a logical decision. * Fear of becoming like my classmates I was a socially awkward introvert, and I wanted to be social and extroverted. I don't know how it is now, but at the time the CS department had the highest concentration of socially awkward introverted weirdos, not to mention the complete lack of women. I remember working in the CS lounge once and facepalming at cringey jokes. I didn't want to be around these losers lest I become one of them. * Wanting to work on more important problems I think the industry has a tendency of thinking that software engineering problems are the most important problems facing humanity right now. For some reason I thought majoring in math would give me the toolkit to solve the most important problems in the world. Maybe I was too brainwashed by those movies where some genius in a flash of revelation scribbles some equation on a whiteboard. * Wanting to make a ton of money Software engineering money was good, but I didn't like how quickly and steeply the money topped out. I didn't want to enter an industry knowing that my compensation would cap out at $200k/yr (I don't think the tech giants were dishing out $300k/yr all-in comp packages to new grads back then, or if they were I wasn't aware). I wanted the sky to be the limit, which is why I became interested in finance (again, I wasn't aware of entrepreneurship at the time). --- Of course going back I probably would've majored in CS because the interview process in the industry skews towards CS knowledge, and math eventually became boring and too abstract and isn't as relevant.
- michaelbrave 9y agoI can share my personal story. I've always been computer savvy and would have loved to have gone into programming, now I'm trying to prep to go back to school for computer science, so I think it may be relevant. But even being good with computers I was never really a good student in high school, and due to moving around, parents divorcing etc, I had huge gaps in my math education(I still don't know my multiplication tables). To the point that I never really thought I was good at math until I got to college. By the time I got to college though I had already put years into becoming a graphic designer, it was my career path and I could graduate faster if I stayed on it. So I did, because I was so close to finishing. I've regretted it ever since. Now I'm older, wiser, full of regret and better at math, so now I'd love to go back to school or attend a boot camp, but I'm legitimately broke, and I have no idea how to pay for it. So I keep trying to learn on my own, from the occasional book or youtube video. TLDR: Math education was lacking and required, I was already on a career path, have regretted it ever since.
- ams6110 9y agoI don't recall any really heavy math in my Comp. Sci in the 1980s. There were required math courses yes -- calculus, linear algebra, etc. but none of that really was applied in the computer science classes. So I guess I would say don't let a poor math background stop you from learning programming. I have not used math much beyond arithmetic and basic boolean logic as a professional programmer. Edit: certainly there are programming jobs that require a solid competency in mathematics. However there are many that do not.
- euske 9y agoHere's my pet theory: when I try to put myself into an average high school student's shoes, they're already surrounded by all the CS achievements today; namely, video games and smartphones and Facebooks. They're exposed to them a bit too much. On the other hand, when I was a high school kid I didn't realize how CS is affecting our infrastructure and how many things are still unsolved. I guess this still applies to the current generation too. Combining these two, the field might look rather "finished" or "too competitive" to an average person, which could deter them from applying.
- issa 9y agoI've always had a personal explanation that I have nothing but anecdotal evidence to back up. The most important skills that make someone a good coder are that they enjoy solving problems, and are willing to work single-mindedly on something until it is done. If you have those skills, there's really no reason to go to college to learn anything. In fact, I would bet that the graph in the article corresponds inversely to how easy it has become to learn programming on your own. From manually copying code out of a magazine when I was a kid, to stackoverflow today. I submit that the coders who DO get degrees are people who really enjoyed school (for reasons unrelated to learning), people who didn't really know what they wanted to do in life and school was expected of them and/or the path of least resistance, and people who are much more into research than the average developer.
- foobar1962 9y agoLookin at the graph of graduates and the dip in CS from 2005 for a few years, I'd suggest the cause is that the potential cs students skipped doing their degree and went straight into a startup.
- Houshalter 9y agoI have a theory that it's because computers are pushing coding stuff away. If you bought a personal computer in the 80s, you basically needed to learn how to program. The computer would come with a basic interpreter built in and easy to find. It would come with a thick dead tree manual on how to program it. Windows, as far as I know, doesn't come with any programming language built in. You can do some shell stuff or js in the browser, but you can't make an application with that (easily.) And that stuff is hidden away and not encouraged, you have to do research to find out it's even there. And mobile OSes are even more locked down. As mobile devices replace desktop computers for the vast majority of people, how are they ever supposed to get into programming? In some sense it is easier than ever to get into programming. Programming languages are better, the internet makes learning resources much more available, there's libraries that can do whatever obscure thing you want to do. But all this is hidden away in a secret world that most users will never venture into and don't know exists. I know this sounds like it shouldn't be a big deal, but I really believe it is. I was so intimidated by learning programming that I put it off for a long time. It seemed like it would be very complicated and difficult. When I did try to learn, I tried with C++. I also early on tried to program stuff with batch scripts and was put off by how limited it was. Eventually I tried another obscure proprietary language that I found through clicking on an ad. All of these were terrible choices for a beginner who wants to learn programming. But I didn't know enough to know they were terrible choices. If someone had installed python on my computer and showed me some simple examples I could play with, I would have been so much better off. Eventually I stumbled across a blog post showing how to open up the developer console on a browser just by pressing F12. And some simple example stuff in js. It's like an new world just opened up to me. I know some people that had a similar experience with the computercraft mod for minecraft, of all things.
- mncolinlee 9y agoI'll go with a different angle on this problem. Computers have become indistinguishable from magic for most of the modern population. Even with IDEs like IntelliJ and Visual Studio, the interface of programming has not kept pace with the sexiness of GUIs. As a result, lots of young people take computers for granted and give up quickly when presented with UNIX, git, and the rest of the command line tech stack used by programmers. I'd say that the decreasing percentage of women in computing has also hurt. When I starting working almost a couple decades ago at Cray, they had significantly more women in programming. Today, most hard sciences graduates are women, but only about 25-30% of CS graduates are women. I don't have a great answer why this fall-off is happening, but it seems to be a symptom of cultural issues. Maybe it's the influence of VCs and the bro culture bias of finance? I honestly don't know.
- sonabinu 9y agoOne of the biggest factors that made me withdraw from CS was learning programming in high school. I had a teacher who wasn't able to communicate effectively and my own ego being bruised badly when I struggled and struggled to make code work. My second act more than a decade later gave me confidence with better teachers and internships where I saw even seasoned programmers make mistakes and develop multiple iterations before being done. This was an eye opener!
- eximius 9y agoPersonally, I just didn't want the workload. My favorite semester was when I was taking 4 senior level math courses. Each week, I'd hunker down and knock out the homework over 2-4 hours for each class. For CompSci, it's more like 10-20 hours for each class. The workload in CS is just stupid.
- letmein 9y agoWant to hear something horrifying? In Alaska, last year, only 25 people in the entire state graduated with CompSci degrees. The chasm between the Haves and the Have-Nots, Urban VS Rural, Hipster VS Redneck, White VS Native is only going to grow even wider. Entire demographics are being left behind and they are never going to catch up. But then again, do folks in Alaska need most of the toy services and silly startups in SF that are only useful to other rich techies? Probably not. However, that gap is going to condemn the youth of an entire state to being stuck in lower and lower skilled jobs with plummeting wages. Good job rich whitey Code Bros at $Silicon_Valley_MegaCorp_Monopoly! You're still fucking over the dwindling population of Natives. What is the solution? Here's what I would do: TRUST BUST. Smash the Monopolists. There should be 30 Apples, 20 Googles, 10 Microsofts, 7 Oracles, and 5 Facebooks, etc etc. Somewhere over the past 20 years, The Powers That Be got too enamored with Bigger More Take-The-Whole-Pie. Because that's where the Billions are. But that consolidation that only benefits about 10,000 mega rich has come at a great cost and incalculable damage to society. Instead of a diverse tech ecosystem like we used to have, we now have an unstoppable monoculture. Which makes it so much easier for NSA to spy on, for hackers to hit entire populations, and for fewer and fewer working IT professionals who know the full stack and are competent across multiple specializations, like the Master Masons who built European Cathedrals a thousand years ago. Those Cathedrals will still be standing in 1,000 years. Your GoogaAppaMicroFaceZons won't.
- dang 9y agoWe've banned this account for repeatedly violating the HN guidelines. This rant was bad enough, but some of your previous comments went far beyond not-ok.
- theprop 9y agoI'm not sure about that data. Definitely lots of engineers and physicists as it has been noted have programming experience. Beyond that, tons more people are majoring in computer science as of the last 10 years. It's become the most popular major at Stanford. At Princeton in just 5 years from 2011 to 2016 it grew 3x to become the most popular major from 36 to 130 majors. At Yale in those 5 years, the number of CS majors doubled (though it's not the most popular major there). In at least 3 states now the single most popular job is software engineers (30 years ago in just about every single state it used to be driver), and I imagine that trend is only going to continue so you will see more and more computer science majors. https://paw.princeton.edu/article/rise-computer-science-becomes-top-major-expanding-faculty-it-transforms-fields https://paw.princeton.edu/article/rise-computer-science-beco... http://yaledailynews.com/blog/2014/10/21/cs-department-struggles-for-faculty/ http://yaledailynews.com/blog/2014/10/21/cs-department-strug...
- lazyjeff 9y agoLikewise, this article seems to have no basis in reality. Besides Princeton and Stanford, it's also the most popular major at Brown University, a school typically known for its humanities and social sciences. Everywhere I go, computer science departments are crying out how much enrollment has swelled, and they can't keep up. Intro CS courses are typically 400-600 students. Every article that describes CS enrollment uses the terms "exploding" and "surge". http://cra.org/cra-releases-report-surge-computer-science-enrollments/ http://cra.org/cra-releases-report-surge-computer-science-en... Even in 2014: https://www.geekwire.com/2014/analysis-examining-computer-science-education-explosion/ https://www.geekwire.com/2014/analysis-examining-computer-sc... This certainly feels like "fake news" to me.
- Ar-Curunir 9y agoYup, at Berkeley the intro CS classes now regularly have ~1300 people taking them, up from ~650 5 years ago. The number of CS majors has exploded.
- matheweis 9y agoOne thing that seems missing from the post is the proliferation of alternative degrees; Computer Information Systems, Information Systems, Software Engineering, Information Technology, etc etc. I would be surprised if the aggregate of all of those degrees didn't meet or exceed the trend of the others.
- mathattack 9y agoMy 2 cents: 1) It's hard. Very hard. Unlike most other subjects you can't fluff through it. It works or it doesn't. 2) Every programming class is a ton of work. Even if you're great at the subject, it's generally your most time consuming course. 3) Because of #2, if you don't know from Day 1 that this is your major, it takes forever to get through the coursework. 4) More than most majors it's very hard to take even the intro classes if you haven't done it before. Perhaps because of all this, most CS majors I know are people who just couldn't imagine majoring in anything else.
- agjacobson 9y agoNo attempt was made to measure the number of productive dropouts. I.e. authors bias was "count people with a degree." Hypothesis, gedanken experiment. Award all hackers who are able to support themselves, not necessarily as developers, but having to do with computers, with a CS degree. The curve fills right in.
- tobyhinloopen 9y agoI was rejected from college because I was too young. They told me to come back a year later. I decided to apply for a programming job to earn some money and get back to college the year later. 8 years later... still didn't go back and no intention to.
- jondubois 9y agoJust like with Maths, I think that to effectively learn programming, you have to believe that you're good at it... Unfortunately, it has become harder for people to convince themselves of this because the tooling required to build simple software is much more complex than it used to be. I think that new developers are exposed to more complexity earlier on and so they are more likely to get overwhelmed. It's not quite the slow-paced discovery process that it used to be. New developers have more visibility of the road ahead... And it's a damn long road.
- slackingoff2017 9y agoCS requires a decent amount of smarts, requires constant learning, and is boring to most people. This is enough that it will never be an attractive job to most of the population. Why isn't it drawing more engineers though? I think CS is seen as the risky choice for an engineering job. There's been multiple tech job boom and bust cycles over the years. Why pick CS when most branches of engineering pay almost as much and don't have nearly the risk? Another thing I've seen happening firsthand is other professions getting dragged into the CS sphere. I know multiple electrical engineers that spend their days writing code now. Circuit design is becoming largely automated, they just need coders that understand the circuits. Same with marketing, I know a couple guys that majored in marketing who spend their days tinkering with WordPress. Finance too, basically all trading has some level of automation. Probably half the people writing code now never intended to. I like to think this, at least in part, is why so much code appears to have been written by satan.
- runeks 9y agoOne possible answer: you can learn computer science without needing a degree at all, and subsequently prove that you've learned it by just writing a program that works. That makes a CS degree inherently less valuable than almost all other degrees out there. Why would employers request a degree saying you know your stuff, when they can just ask you to prove it directly? I was recently st a meetup and met a guy I went to school with. When he was in the process of acquiring his masters degree in physics, he was contacted by Google, who wanted to employ him. He went to an interview (which, apparently, was several interviews by different people all working for Google), and he got the job and moved to Ireland to work for them. Moral of the story: get a degree which offers the greatest value for money, and learn CS in your spare time, for free.
- gaius 9y agoThat is not "computer science" any more than spotting constellations makes you an astrophysicist.
- aerovistae 9y agoI don't really understand the point of this comment. Are you suggesting that those developers who lack a CS degree but can program effectively nonetheless don't really know "computer science," and therefore are weaker applicants? By extension, are you suggesting that most developer jobs have a need for applicants well-versed in Turing machines, automata, language parsing, trie data structures, and so on? You seem to be saying that demonstrating strong coding ability doesn't correlate to strong academic CS ability, but I can't imagine why you would bother to point this out unless you felt it was strongly relevant, in which case you must also be suggesting some variant of the above arguments.
- arethuza 9y ago'Are you suggesting that those developers who lack a CS degree but can program effectively nonetheless don't really know "computer science"' In the formal sense, pretty much - most actual CS is pretty irrelevant to day to day development as it's pretty much a specialized branch of maths (note that the CS department I did a degree at is now part of a maths department so I'm perhaps a bit biased). "strong coding ability doesn't correlate to strong academic CS ability" Again I would agree with this - I had a supervisor who never wrote any code but he was very well regarded in his niche area - his area was purely mathematical.
- erikbye 9y agoPerhaps "very smart" was an incorrect assessment on your part.
- aerovistae 9y agoOh, anyone who can't do CS must not be very smart, right? Basically if they don't have the same skillset as you, they're probably not too bright. Doesn't matter if they can draw near-photorealistically or pick up a new foreign language in mere months, or perhaps breed fascinating variants of plants in all manner of ways in their dorm room just off intuition; if they can't pass CS101, if their mind doesn't work their way, they're not really that smart. Right?
- erikbye 9y agoI'm just saying a person thought to be "very smart" should be able to do CS101, easily; and I don't think the examples you mentioned are indication of extraordinary cognitive faculties. I taught myself near photo-realistic drawing, it's a mechanical skill--craftsmanship; had I continued to invest more time in perfecting the technique I would have got to what’s considered photo-realistic. My Spanish was decent after four months in Spain. Not once have I thought these things to indicate me being “very smart”. I doubt having a mind that works a certain "special way" is vital to do CS; seeing heterogeneous groups of students graduate yearly.
- dosgonlogs 9y agosomething tells me your Spanish was never that great, and you never got that good at drawing. You reek of someone with a fragile ego. You also suck at writing clearly and concisely in English.
- literallycancer 9y agoHis English looks just fine to me.
- quantumwannabe 9y ago
- mk89 9y agoOne more reason is that... compared to many other disciplines (law, medicine, etc) you can find a job "just" by doing exercises and maybe with some open source contributions (or as a freelancer).
- wanderr 9y ago> Have people been deeply scarred by the big tech bubble? It bursted in 2001; if CS majors who went through it experienced a long period of difficulty, then it could be the case that they successfully warned off younger people from majoring in it. To prove this, we’d have to see if people who graduated after the bubble did have a hard time As someone who graduated shortly after the bubble burst, I can attest that yes indeed we did have a hard time. I had a year of professional programming experience under my belt (took a year off) and still couldn't find anything for a long time. Eventually took a job making 24k at a failing company that was a nightmare to work at, quit that and did tech support for a county library district (they needed someone who could program but didn't have the budget to hire a developer) making 35k for a few years. I kept an eye on the broader market during that time but it seemed like everything required 10 years of experience.
- apexkid 9y agoHaven't you been to India?
- jokoon 9y agoBecause there so many different things to do in CS. Knowing how to code will already give you a job, but mastering CS at a certain level is another realm of work, and CS keeps changing and evolving. That's like working with cars, you need fewer engineers, and many mechanics and technicians. Coding is like a spoken language. It's not so hard to write and fix code and there is already a lot of business involving just that, so my guess is that many students just learn to code and don't really do real CS. The computing industry keeps growing and growing, so it means you need more technicians to keep up with growth, not nice degrees. Of course it's nice to have PhDs, but good luck training them. Education relies on constrained resources.
- scandox 9y agoBecause most intelligent people don't want to fight with configs, syntax and technical arcana. I think we should accept that there is a strange mix of intelligence and obtuseness common to the people that stay in this profession.
- zacsme 9y agoI am a little surprised by so many comments talking about the problems with the CS curriculum in college. If people aren't even majoring in computer science then I would first think that the issue starts before students come to college. Younger students, K-12, have little exposure to computer science concepts or even programming in general. Sure some schools are great but many public schools in the US are average at best.
- SeanDav 9y agoSlightly OT: Anyone notice the irony of this thread being right next to another HN thread titled: "As Computer Coding Classes Swell, So Does Cheating"?
- fitchjo 9y agoI know not exactly what the author is discussing in his post, but as someone that did two years in CS before switching (to accountancy), one of the main reasons I switched was the stark contrast in interest in the field between myself and (seemingly) everyone else. In hindsight, I think I would have made a good project manager (instead of a developer), but that path was not really communicated to me in a way that resonated with me. So I just saw a bunch of people with a much greater zeal for coding than I had and decided I should try something different. Maybe in another life...
- smcg 9y agoLack of good coding/CS classes in high school. We're still not good at it. Introduction to CS class in high school was what got me hooked in the first place.
- killjoywashere 9y agoDid he actually mean to imply more people major in physics? The most recent numbers show physics at an all time high of less than 8,000 bachelor's degrees awarded (1) whereas the computer science bachelor's degrees, restricted to CS departments in engineering schools (no "information" degrees, no CS departments in math or science colleges), were over 10,000 (2). There was a drop in relative growth because several years before that, the dot-com bubble burst and women fled the field. He says he didn't see that in the NCES tables he looked at, but for pete's sake, that's the first link on Google! (3) (1) https://www.aps.org/programs/education/statistics/bachelors.cfm https://www.aps.org/programs/education/statistics/bachelors.... (2) https://www.asee.org/papers-and-publications/publications/college-profiles/15EngineeringbytheNumbersPart1.pdf https://www.asee.org/papers-and-publications/publications/co... (3) https://nces.ed.gov/programs/digest/d12/tables/dt12_349.asp https://nces.ed.gov/programs/digest/d12/tables/dt12_349.asp
- devwastaken 9y agoOne point I see missing: Colleges are inefficient, have poor quality of life, cost too much, and will not teach you the skills you need. Financially, there is no way I could afford a CS degree today. People like to make the argument that its 'not much' because you'll get paid your entire tuitons worth in one year of work! But, thats not true for everyone. Infact its not true for many. Perhaps if you already live in silicon-valley-esque areas, maybe. But if you don't, Microsoft, Google and Amazon aren't waiting at the door for you. So what happens when you get a degree, and you don't get a 'good' job out of it right away? You probably end up in retail, putting away your entire paycheck into your tuition when you can't defer it anymore. Or, you get a low-paying 'tech' job that burns you out of the field. But, even if you can afford it, can students go through with it? If any self-respecting developer went back to college now, after owning a house, having a family, y'know, a life, I think they'd drop out in the first few months, for what we would then count as perfectly understandable reasons. But for students, both colleges, and society, treat them like vessels without need for things like privacy and ownership. Colleges play the game of forcing students into classes that have nothing to do with their majors. For example, speech classes. Yes, these are nice to have, but I am an adult, and I should be able to choose how I spend my money. In the system today, you are at the complete mercy of what the college tells you to do. Don't like it? Too bad. No warranty, no returns, its gone. College tuition and overall living amenities are quite terrible in most locations. The state (public) university here charges the same amount as commercial apartments across the street, for a dorm room you share with another student that is smaller than your kitchen. Infact, only one building even has a kitchen, so you're stuck with your meal plans, which are during times when you have classes. Oh, also, if you miss a meal, you don't get that money back. If you're a male, and want to live near the college, you are at a disadvantage for rent. Girls are more preferred for renting, to the point where these places are girls-only, are cheaper, and are the closest to the campus. Cheaper as in, a few hundred less than a dorm room, and you actually get your own room. Add ontop that this college purposely built in fast-food restaurants, over-spend on decoration and marble counters for their cafeteria (and other places), have teachers with superiority complexes and are generally incompetent - I don't think its a bad choice to avoid that altogether. Even if you're working at Walmart for years in the cheapest apartments, its still most likely better living conditions. If colleges actually wanted to invest in education, there are a million ways they could be doing that. Thats not to say that all colleges are like this, community colleges can be better at costs and what you need, but students are never told about any of this. They are given a list of options. "Pick one".
- geebee 9y agoGreat article. Thanks to Dan Wang for writing it. My main difference in perspective with this article (I'm hesitant to call it a disagreement, because it's more a matter or perspective than any specific conclusion) is that I don't think people need to be consciously aware of market or societal forces and pressures to be powerfully influenced by them. I think anyone who wonders why more people don't major in CS (as well as other fields claiming a "shortage") should read the chapter on pay and professions from Adam Smith's "Wealth of Nations". I don't think they need to read it and accept it without critical thought, just be aware of the perspective - that there are a huge number of inter-dependent factors, other than pay, that powerfully influence the desirability of a profession. Here's a link: http://geolib.com/smith.adam/won1-10.html http://geolib.com/smith.adam/won1-10.html This is all pretty intuitive - if you want people to take on tedious, odious, or dishonorable work, you may have to pay them well. I actually think CS, and programming, may be a more unpleasant profession than people recognize. Huge open offices, back visibility, SCRUM meetings that deny long term thinking and autonomy, constant technology churn, age-related employment issues, and, yes, specialized visas that mean employers can rely on captive employees who can't leave the field and have limited rights to leave their employer, all these things do mean that CS may be a much less desirable field for people with academic talent. Also - while wages are high, this may be the Silicon Valley effect. A job that pays an average of 120k, but plays this consistently in smaller, less expensive cities, may be more desirable than a job that pays 150k on average, but where 95% of the employment is concentrated in a place where the median price of a house is $1.2+ million. Just for a dose or reality, a registered nurse in San Francisco earns more, at the median, than an application developer. That's a-ok by me! Nursing is a tough job. But if someone prefers to do good as a nurse and make more money than siting around fixing bugs in the latest javascript framework, come on, that's perfectly rational! I really don't think young people need to have analyzed this to be influenced by it. There's a reason we call it the "invisible hand". In short, if it is rational to avoid this field, that's probably enough to conclude that these are factors in deterring workers from it. I don't think you need to prove hyper-awareness specifically of these issues. Keep in mind, people who are capable of learning to code and work in software development teams do have a high level of capacity for work and study. They have a lot of options. I'm not sure that software development, as a field, is all that competitive with the other things they can do. In short, people may be behaving very rationally by avoiding this field.
- paulmooreparks 9y agoI don't understand the assumption that a software developer should study computer science to prepare for a career in designing, writing, and delivering computer software. Consider the building trades. Employees in that industry don't study "Building Science". Architects study architecture. Engineers study engineering. Craftsmen in the various building trades study in apprenticeships. Why not admit that computer scientists should study computer science (a valid and useful area of study in its own right) and instead develop a full-fledged degree program for the various skills involved in the software-development industry?
- gozur88 9y agoI think it's a combination of a CS degree being slanted more toward research than preparation for a career as a software developer, and not everybody is cut out for it, temperamentally. Particularly the latter. A lot of people break out in hives at the thought of spending the next forty five years glued to a computer monitor.
- deavmi 9y agoI am doing CS next year. BSc Mathematics (CompSci). Just got accepted a few days ago.
- t482 9y ago1) Ageism is rampant and sucks. Doctor/Lawyer/Accountant can work until 70 CS till 45. Also no industry protection like the above. 2) If you studied prior to early 90s you were probably stuck on a shitty system. E.g. VAX writing in Turing (a version of Pascal). Horrible editor and very painful with many nights in the basement lab.
- msnower 9y agoI don't know where this article's numbers are coming from, but 1 in 6 Brown undergrads have declared computer science majors this year.