Why do so few people major in computer science? (2017)(danwang.co)
danwang.co
Why do so few people major in computer science? (2017)
https://danwang.co/why-so-few-computer-science-majors/
423 comments
The problem is CS is just a miserable field to be in unless you really, really enjoy the grind of it.
To me it comes down to some CS-specific version of Mike Tyson's (perhaps apocryphal) quote "everyone has a plan until they get punched in the mouth" - something along the lines of "Everyone has fun programming until they have to start debugging".
My city has several years of programming courses at the high school. A lot of kids sign up for the first year but the numbers rapidly fall off. They start the kids off with the basics and doing simple programming exercises. Generally they have fun while they are being successful getting boxes and lines to appear on the screen, but as soon as things get the slightest bit complicated and the students get into the weeds of debugging the enthusiasm dissipates pretty quickly.
It's not that most of these kids don't have the intelligence to tackle it if they wanted to; they personally just don't find it fun at all.
To me it comes down to some CS-specific version of Mike Tyson's (perhaps apocryphal) quote "everyone has a plan until they get punched in the mouth" - something along the lines of "Everyone has fun programming until they have to start debugging".
My city has several years of programming courses at the high school. A lot of kids sign up for the first year but the numbers rapidly fall off. They start the kids off with the basics and doing simple programming exercises. Generally they have fun while they are being successful getting boxes and lines to appear on the screen, but as soon as things get the slightest bit complicated and the students get into the weeds of debugging the enthusiasm dissipates pretty quickly.
It's not that most of these kids don't have the intelligence to tackle it if they wanted to; they personally just don't find it fun at all.
Can we talk about how much more CS people are expected to work than people in other fields ?
For most people here, CS is their hobby. So a lot of learning and knowledge acquisition happens during 'leisure' time. This is rarely the case in other professions.
If we count all the time we spend resolving environments, getting setups right, learning new tools and reading papers as work (as we rightly should), then most people in tech would be working far more than 55 hours/week.
This already ignores a lot of the quiet time people spend pondering over things and letting them stew semi-consciously. CS work is flexible, but is not easy or less-time consuming by any means.
If we try to force people into CS, then we will get what India has. A massive glut of incompetent tech 'talent' with BS in CS, but need to be retrained all over-again to even do the most mundane sweat shop coding that companies like Infosys and TCS need their employees to do. (I say this as an Indian). Millions who hate their job, earn low pay and have a very small set of nontransferable skills, because what they actually know is 'sweat shop tools' and not CS. IMO, if there is any demographic that AI/ML is most poised for eradicating, it is likely this one.
If CS in the US wants to increase participation without compromising on its present identity, then the only solution might be to foster interest and love for science/math/coding early in life and hope you can cast a wider net to capture everyone who would come to consider this profession a hobby.
Alternatively, it can go the way of every other mature profession and turn into a 9-5 boring thing you hate, but still continue doing because you need to put food on the table.
For most people here, CS is their hobby. So a lot of learning and knowledge acquisition happens during 'leisure' time. This is rarely the case in other professions.
If we count all the time we spend resolving environments, getting setups right, learning new tools and reading papers as work (as we rightly should), then most people in tech would be working far more than 55 hours/week.
This already ignores a lot of the quiet time people spend pondering over things and letting them stew semi-consciously. CS work is flexible, but is not easy or less-time consuming by any means.
If we try to force people into CS, then we will get what India has. A massive glut of incompetent tech 'talent' with BS in CS, but need to be retrained all over-again to even do the most mundane sweat shop coding that companies like Infosys and TCS need their employees to do. (I say this as an Indian). Millions who hate their job, earn low pay and have a very small set of nontransferable skills, because what they actually know is 'sweat shop tools' and not CS. IMO, if there is any demographic that AI/ML is most poised for eradicating, it is likely this one.
If CS in the US wants to increase participation without compromising on its present identity, then the only solution might be to foster interest and love for science/math/coding early in life and hope you can cast a wider net to capture everyone who would come to consider this profession a hobby.
Alternatively, it can go the way of every other mature profession and turn into a 9-5 boring thing you hate, but still continue doing because you need to put food on the table.
I've always seen the same pattern in College decision: self-projection. That is, a combination of what they know and what they think they can do/like.
Most people choosing Uni choose from what they know. Majority of young people know little about anything CS or nerdy; They often know the end product (computers, phones, apps) but very little about the people working on it.
Compare that to doctors, managers, Wallstreet types, scientist, lawyers; they got incomparable exposure through movies, tv-shows and media in general. Even Scientist have more exposure.
Difference is that in those profession, you can see the people working in it (although often not an accurate representation) so it is easy for a young person to imagine "I can see myself wearing their suits, doing what they do". But just as no one applying for college imagine themselves in a janitors boots, there must be a observable social status in the profession too. "you will be socially respectable after 4 years here!" sells better than a salary figure. I really don't think CS majors come close to the (perceived) social status for the young, compared to the above mentioned professions.
The closet to high social status an CS gets to is the "IT/tech entrepreneur", and you don't need a CS major to get there.
Most people choosing Uni choose from what they know. Majority of young people know little about anything CS or nerdy; They often know the end product (computers, phones, apps) but very little about the people working on it.
Compare that to doctors, managers, Wallstreet types, scientist, lawyers; they got incomparable exposure through movies, tv-shows and media in general. Even Scientist have more exposure.
Difference is that in those profession, you can see the people working in it (although often not an accurate representation) so it is easy for a young person to imagine "I can see myself wearing their suits, doing what they do". But just as no one applying for college imagine themselves in a janitors boots, there must be a observable social status in the profession too. "you will be socially respectable after 4 years here!" sells better than a salary figure. I really don't think CS majors come close to the (perceived) social status for the young, compared to the above mentioned professions.
The closet to high social status an CS gets to is the "IT/tech entrepreneur", and you don't need a CS major to get there.
A few observations I have seen(US Based):
- In college there were basically no women in any of my classes, like 1 or 2 in a class of 30-40. Not having an entire gender being interested in a field(generally speaking) makes numbers overall very low.
- In a Java class I took in college, it was standing room only for the first two sessions, after 3 weeks the class was 70% reduced, by the end of the class it was about 25% of its original size. CS is hard, lets be honest(for most people), to excel you have to love it or be mathematically inclined.
- People, when looking at a career don't see CS as long term choice, they hear of burnout due to extreme overwork, and blatant ageism when you hit 40's. I asked a friend who went into the medical field about CS and they said they want to work into their 60's-70's and didn't want to be forced out of work due to age bias.
- Most engineers don't have much 'clout' in a organization that isn't a pure tech company, I have been solicited by GS and other hedge funds but always pass as I know I will always be 2nd fiddle to finance folks/business majors.
- In college there were basically no women in any of my classes, like 1 or 2 in a class of 30-40. Not having an entire gender being interested in a field(generally speaking) makes numbers overall very low.
- In a Java class I took in college, it was standing room only for the first two sessions, after 3 weeks the class was 70% reduced, by the end of the class it was about 25% of its original size. CS is hard, lets be honest(for most people), to excel you have to love it or be mathematically inclined.
- People, when looking at a career don't see CS as long term choice, they hear of burnout due to extreme overwork, and blatant ageism when you hit 40's. I asked a friend who went into the medical field about CS and they said they want to work into their 60's-70's and didn't want to be forced out of work due to age bias.
- Most engineers don't have much 'clout' in a organization that isn't a pure tech company, I have been solicited by GS and other hedge funds but always pass as I know I will always be 2nd fiddle to finance folks/business majors.
There's one other possible, additional reason.
I recently asked a 17-year-old high school senior who is heading to college what she's planning to study, and she said it would be mathematics, biomedical engineering, or some other kind of engineering. She's self-motivated -- says she will be studying multi-variate calculus, PDEs, and abstract algebra on her own this summer. She maxed out her high school math curriculum, which included linear algebra as an elective.
Naturally, I asked her about computer science, and she said something like this (paraphrasing):
"The kids who love computers at my high school seem to be able to spend their entire day focusing on a computer screen, even on weekends. I cannot do that. And those kids are mostly boys whose social behavior is a little bit on the spectrum."
While I don't fully agree with her perspective, it makes me wonder how many other talented people shun the field for similar reasons.
I recently asked a 17-year-old high school senior who is heading to college what she's planning to study, and she said it would be mathematics, biomedical engineering, or some other kind of engineering. She's self-motivated -- says she will be studying multi-variate calculus, PDEs, and abstract algebra on her own this summer. She maxed out her high school math curriculum, which included linear algebra as an elective.
Naturally, I asked her about computer science, and she said something like this (paraphrasing):
"The kids who love computers at my high school seem to be able to spend their entire day focusing on a computer screen, even on weekends. I cannot do that. And those kids are mostly boys whose social behavior is a little bit on the spectrum."
While I don't fully agree with her perspective, it makes me wonder how many other talented people shun the field for similar reasons.
The reason is because it is a terrible job. Unlikely 90% of other jobs, you have to mentally burn your brain out each day, constantly learn new things, and focus intensely, supposedly for 8 hours. The reward is nothing, not even good pay outside of a couple of tech giants in the USA. If you compare it to a trade, there is a night and day difference to your mental health.
The wage data in this article is meaningless because it ignores the fact that the few places with the 100k+ wages are all in ridiculously expensive cities. Those wages bring up the "average", making it seem high.
No sane person dreams of sitting at a computer all day doing harder things than everybody else sitting at the computer and making average pay. Not only that, but most employers would rather pay a person $5 an hour to make their app from somewhere in yemin then they would hire a local person.
You also never get to be part of any kind of inner circle within the company. You will be paid less than some random useless person who "knows somebody high up" and is in charge of "managing" you.
The wage data in this article is meaningless because it ignores the fact that the few places with the 100k+ wages are all in ridiculously expensive cities. Those wages bring up the "average", making it seem high.
No sane person dreams of sitting at a computer all day doing harder things than everybody else sitting at the computer and making average pay. Not only that, but most employers would rather pay a person $5 an hour to make their app from somewhere in yemin then they would hire a local person.
You also never get to be part of any kind of inner circle within the company. You will be paid less than some random useless person who "knows somebody high up" and is in charge of "managing" you.
I never ended up finishing my degree because it became trivial and pointless by the time that I got a job and started gaining actual real experience and learning that the college/university teaches you idealistic and fantasy concepts of how IT should operate. Reality I've experienced is that it's absolutely nothing like that, places are build upon decades of mixed generation technology, only upgrading a little part here and there. I've moved on from the dig-in hands-on of IT and now do a strange combination of electrical engineering and network engineering. I was working in IT at an amusement park which I cannot compare to any other business to how it functions because the best comparable description would be to describe it as supporting IT for an entire town and all its businesses. What I ultimately learned and took away from that is a fresh BS graduate is basically worthless in comparison to someone who has at least one single year of real experience because it boils down to the requirement that schools do not teach. That skill is troubleshooting, to be able to swiftly and intelligently resolve a problem. It's not something my schooling ever put any major focus on and so as I gained more and more experience at a vastly faster rate compared to going to school, I realized how worthless the degree really was. It was just a meaningless statement. The second thing is all the certifications, and that's what, I believe, is valued higher than having a degree, but about equal to experience. Search engines have provided me with more knowledge and answers than 8 years in school could ever come close to. That's just my experience and view.
FWIW I've been coding since my early teens and enjoyed it a lot, but when it came to university (in 2009) I had very little interest in doing a CS degree and instead opted for Maths. The two main reasons were: a) I knew that doing Maths instead of CS wasn't really going to hinder my job prospects in any way, and b) CS sounded a lot drier and had fewer options and choices than the Maths degree (in the UK you apply for the course and you generally don't do anything from other courses, so your choice matters a lot).
The first point I think has born out fairly well, even if it was probably a bit arrogant. Certainly when I'm interviewing grads I'm not actually that interested in if they did a CS degree (though that might be more because I didn't do one...). We don't really do early stage training so we're looking for evidence that the grads can actually code, whether its by pair programming, via questions or looking at personal projects, etc, its the people who have done it as a hobby that tend to shine there.
The second point is highly subjective and obviously quite personal, but equally if people know they can get into software engineering without a CS degree then I think they're more likely to do a course that really interests them. After all, if you it doesn't effect your job prospects that much then why wouldn't you? There is a fair argument to be said that the industry should be better at hiring CS and code camp graduates and doing on the job training, but that's not where we're at currently, alas.
If anything I tend to view CS as the academic arm, and software engineering as the practical/vocational arm. In the same way e.g. law works (at least in the UK), where actually most lawyers haven't done law as their first degree and do a conversion course after instead (often getting a contract before doing the conversion cause and then having the firm fund it). Really, its the classic argument about how much university degrees should be academic vs vocational.
The first point I think has born out fairly well, even if it was probably a bit arrogant. Certainly when I'm interviewing grads I'm not actually that interested in if they did a CS degree (though that might be more because I didn't do one...). We don't really do early stage training so we're looking for evidence that the grads can actually code, whether its by pair programming, via questions or looking at personal projects, etc, its the people who have done it as a hobby that tend to shine there.
The second point is highly subjective and obviously quite personal, but equally if people know they can get into software engineering without a CS degree then I think they're more likely to do a course that really interests them. After all, if you it doesn't effect your job prospects that much then why wouldn't you? There is a fair argument to be said that the industry should be better at hiring CS and code camp graduates and doing on the job training, but that's not where we're at currently, alas.
If anything I tend to view CS as the academic arm, and software engineering as the practical/vocational arm. In the same way e.g. law works (at least in the UK), where actually most lawyers haven't done law as their first degree and do a conversion course after instead (often getting a contract before doing the conversion cause and then having the firm fund it). Really, its the classic argument about how much university degrees should be academic vs vocational.
I personally think CS is generally taught extremely poorly, specifically any portion where a professor attempts to teach you to code. It generally just comes down to opinion and memorization, its not really fun. I had the experience of having more project based programming classes (like a game or operating system) and that was totally fun, but classes where you have to implement tiny examples of OOP or something are so unbelievably boring (this is what I imagine the cs101 classes are at many schools). If that was my intro to it, I don't think I would have stuck with CS. I also think the theoretical stuff is taught poorly too, it can just be so dry. I think a big issue is you are taught that a concept exists, you don't necessarily go through and try to solve it yourself. I remember my intro to sorting was "here are all the algorithms you should know", not "try to come up with a strat for putting numbers in order." The latter is significantly more interesting and engaging.
The author notices that the nr of bachelor degrees went down every year from 2005 until 2014, at which year it went up again.
It takes 4 to 5 years from the moment of choosing your study until earning your degree.
That means relatively many people chose a CS study in 2000 and also in 2009.
I guess the explanation for 2000 is that the dotcom bubble was still alive and well, the explanation for the popularity of 2009 must have been the credit crisis that made lots of people pursue the job certainty of a CS degree.
I guess the explanation for 2000 is that the dotcom bubble was still alive and well, the explanation for the popularity of 2009 must have been the credit crisis that made lots of people pursue the job certainty of a CS degree.
Easy. The educational aspect is pretty awful. And after you get through that, the big companies treat you like a leper unless you went through a few chosen schools.
I went to a big state school in the 90s. The first two years were a hazing, with a brutal curve designed to drop class size from 1000+ (CSI 200) to about 80 graduates.
It was sink or swim and awarded grit. The only major worse was biology where organic chemistry weeded out the frat boys from premed.
I went to a big state school in the 90s. The first two years were a hazing, with a brutal curve designed to drop class size from 1000+ (CSI 200) to about 80 graduates.
It was sink or swim and awarded grit. The only major worse was biology where organic chemistry weeded out the frat boys from premed.
Prof at a SLAC here, in the Math Dept but degree in CS theory. FWIW, I'll throw in that my advisees often tell me that they hated the first CS course (which Math requires).
Our CS Dept is good. They are not slave drivers, or doing crazy stuff. They run a standard Java class doing very reasonable things and give a perfectly typical range of grades. And the students who say these things to me are not just the poor ones.
Is it inherient in the material? Is it the way the intro is typically approached in standard texts? I don't know. And I admit that I only have anecdotes. But the article didn't mention it, so I'm mentioning it.
Our CS Dept is good. They are not slave drivers, or doing crazy stuff. They run a standard Java class doing very reasonable things and give a perfectly typical range of grades. And the students who say these things to me are not just the poor ones.
Is it inherient in the material? Is it the way the intro is typically approached in standard texts? I don't know. And I admit that I only have anecdotes. But the article didn't mention it, so I'm mentioning it.
CS is a bifurcated world. Yes there are very well paid people in FANG companies and in Bay Area start ups. The reality is that 90% of IT people are working in a cubical making bug fixes to TPS reports in nondescript corporates where they're just another cost center - until they hit their forties when it gets tough to find a job.
Most people see that reality.
Most people see that reality.
When I learned coding, CS wasn't really a "thing." I came up from the hardware end of things (EE).
Today, the only downside of this seems to be that I never learned all the binary tree stuff (BTrees haven't played any role in the type of coding I've been doing for the last three decades), so I don't fare well in employment exams.
Otherwise, I'm actually thrilled at the way my software development education has gone. My hardware background has stood in good stead, in developing things like drivers and async stuff.
Today, the only downside of this seems to be that I never learned all the binary tree stuff (BTrees haven't played any role in the type of coding I've been doing for the last three decades), so I don't fare well in employment exams.
Otherwise, I'm actually thrilled at the way my software development education has gone. My hardware background has stood in good stead, in developing things like drivers and async stuff.
My theory is that a lot of people would hate working in computer science and programming. For most people this kind of work is very tedious and boring. You have to be cut out for it.
CS is seen as leading up to a blue collar job executed behind a desk that requires a particular kind of mental aptitude and dedication.
It comes with low intrinsic social status and even stigma attached.
The skill set and personal characteristics that it thrives on are nearly opposite of those that do well in corporate or societal careering.
It comes with low intrinsic social status and even stigma attached.
The skill set and personal characteristics that it thrives on are nearly opposite of those that do well in corporate or societal careering.
I was in college from 2010-2014 which is a period of high growth as shown in the article.
It may not have been an all time high but it felt like everyone was taking CS. The 101 classes were incredibly oversubscribed. Maybe not many people graduated with the major but a ton of people started down that road and many people pursued the minor.
It may not have been an all time high but it felt like everyone was taking CS. The 101 classes were incredibly oversubscribed. Maybe not many people graduated with the major but a ton of people started down that road and many people pursued the minor.
Some of the decline in 80s can probably be attributed to a reduced percentage of women getting CS degrees [1]. I tend to agree with the conventional wisdom that gaming and home computers led to CS becoming a less welcoming degree to someone who had never touched a computer before. Contra almost every degree outside of the arts where some interest and the usual high school curricula are all you need. (And it became a somewhat self-reinforcing cycle.)
That theory doesn't speak to the 2005 peak and subsequent decline however. [ADDED: Which is probably more related to the dot-com bubble bursting.]
[1] https://www.aei.org/carpe-diem/chart-of-the-day-the-declinin...
That theory doesn't speak to the 2005 peak and subsequent decline however. [ADDED: Which is probably more related to the dot-com bubble bursting.]
[1] https://www.aei.org/carpe-diem/chart-of-the-day-the-declinin...
What do people here consider to be CS? I couldn't really tell from the article. As I recall, CS was in the math faculty and dealt with theory and core principles or developments, stuff you typically read in whitepapers.
Regular programming/software programmes were in the engineering faculty, as well as some software development being covered to some extent in all the eng programmes. I also recall CS + computer eng made up a large fraction, about as much as all the other math depts and more than physics + biology combined.
The title suggests that there aught to be more and I'd agree that grads going into computer science fields should be better prepared but I don't think that has to be via a CS degree.
Regular programming/software programmes were in the engineering faculty, as well as some software development being covered to some extent in all the eng programmes. I also recall CS + computer eng made up a large fraction, about as much as all the other math depts and more than physics + biology combined.
The title suggests that there aught to be more and I'd agree that grads going into computer science fields should be better prepared but I don't think that has to be via a CS degree.
Why would you major in computer science if you want to work as a software engineer?
It's like getting a physics degree to become a civil engineer.
It's like getting a physics degree to become a civil engineer.
Great article. I majored in Electrical and Computer Engineering roughly 20 years ago at a top US university. Even then, my classes were probably 2/3 international students. I fear that the recent rhetoric from the White House (shutting down H-1B visas) and general impact of Covid on globalism is going to make this problem in many countries like the US. Just as the legal and medical fields got saturated in the 80s and 90s and the preferred career track for high pay and job security, I predict that the same will happen with computer science in the near future. I think most future innovation will come from fields like biology.
Personal opinion: after four of the required five years of my CS major education, I felt like I had gotten about as much out of it as I ever would. I knew I would advance my own skills and knowledge more by spending that last year as part of an experienced team in the industry instead, so I did.
Other than it being annoying to explain the situation if someone asks, this has not ever set me back in any way I know of.
If, in the future, I feel like it would improve my abilities/position to write a Master's thesis and get a diploma, I might look into taking the last year. But so far, I have gotten way more leverage out of the additional industry experience.
Other than it being annoying to explain the situation if someone asks, this has not ever set me back in any way I know of.
If, in the future, I feel like it would improve my abilities/position to write a Master's thesis and get a diploma, I might look into taking the last year. But so far, I have gotten way more leverage out of the additional industry experience.
A CS degree program isn't something you can get into by knocking on the door and saying, "Hi, I'd like to study CS because there are well-paid jobs in Silicon Valley".
Moreover, university departments tend to only tighten their entrance requirements with increased interest in a field.
Article also conflates "earned degree" with "majored".
Moreover, university departments tend to only tighten their entrance requirements with increased interest in a field.
Article also conflates "earned degree" with "majored".
[deleted]
I thought about adding CS as a second major. Then I saw how much the CS majors had to work. The CS program at my alma mater has/had a reputation for having some extremely time intensive courses — iirc, some courses had weekly homework assignments that took 20-40 hours per week (per course). Maybe it was just a few courses that were weeder courses, but I didn’t think that was the best use of my time in college. It seemed excessive and perhaps abusive in a hazing kind of way. Maybe they thought having ENIAC on display would motivate people through the grind.
I didn’t mind working hard in school, but I definitely wanted to explore things outside of coursework.
I also already knew how to program, and I didn’t need a CS major to get programming work. The benefits of a CS degree just didn’t seem to be worth that much at the time (this was decades ago, so it may be different now).
I didn’t mind working hard in school, but I definitely wanted to explore things outside of coursework.
I also already knew how to program, and I didn’t need a CS major to get programming work. The benefits of a CS degree just didn’t seem to be worth that much at the time (this was decades ago, so it may be different now).
I myself have Bachelors and Masters in Computer Science degree with 11+ years of full-time industry experience (Canada) and here is my opinion about popularity of computer science degree:
- What is the point of getting a Computer Science degree when the people sitting besides you are also Tech Team Leads or Sr. Developers or Architects without a computer science degree?
- Why bother spending so many years going through theoretical computer science courses when you could have gotten through some bootcamps, youtube vids, Leetcode, and spent time creating github portfolio? Ultimately its the frameworks (and sometimes certs.) which gets you the money. There is a reason why even Google dropped the 'degree' requirements for their Software Engineering positions.
- When it comes to corporate IT: Among the most glorified of CS/IT career is that of a Software Developer (coding). And if I was to be biased, I would say those who didn't get CS degree and instead went to Community College for programming diplomas tend to better at picking up frameworks and churning out code. It seems that their minds are less cluttered with useless technical details which nobody in Corporate IT cares about.
- Frankly speaking, Programming and even other CS fields (including niche ones such as Data Science / AI / Machine Learning) suffer from absence of licensing requirements. I am not advocating for one but from what I have seen, just about any office job outside of IT has set of licensing requirements (PEng, LLB, CFA, CPA, Securities course, etc.) and atleast in Canada, they want the "Canadian version" of CPA, CFA, etc. -- this ensures that new immigrants can't just walk into such Canadian jobs and safeguards them against offshoring to an extent.
Despite all this, I am still glad that I have my CS degrees because that is just me, it's fits my thought process and personality. I really didn't do it for the money. I just feel I couldn't have done any other degree besides a CS degree - it's not about harder or easier.
- What is the point of getting a Computer Science degree when the people sitting besides you are also Tech Team Leads or Sr. Developers or Architects without a computer science degree?
- Why bother spending so many years going through theoretical computer science courses when you could have gotten through some bootcamps, youtube vids, Leetcode, and spent time creating github portfolio? Ultimately its the frameworks (and sometimes certs.) which gets you the money. There is a reason why even Google dropped the 'degree' requirements for their Software Engineering positions.
- When it comes to corporate IT: Among the most glorified of CS/IT career is that of a Software Developer (coding). And if I was to be biased, I would say those who didn't get CS degree and instead went to Community College for programming diplomas tend to better at picking up frameworks and churning out code. It seems that their minds are less cluttered with useless technical details which nobody in Corporate IT cares about.
- Frankly speaking, Programming and even other CS fields (including niche ones such as Data Science / AI / Machine Learning) suffer from absence of licensing requirements. I am not advocating for one but from what I have seen, just about any office job outside of IT has set of licensing requirements (PEng, LLB, CFA, CPA, Securities course, etc.) and atleast in Canada, they want the "Canadian version" of CPA, CFA, etc. -- this ensures that new immigrants can't just walk into such Canadian jobs and safeguards them against offshoring to an extent.
Despite all this, I am still glad that I have my CS degrees because that is just me, it's fits my thought process and personality. I really didn't do it for the money. I just feel I couldn't have done any other degree besides a CS degree - it's not about harder or easier.
I got about 8 years into my four year degree program in between interesting part time and then full time jobs on the side, and recently came to a set of realizations:
1. I'm never going to finish this damn thing because I keep failing or almost failing math courses (and it happens the three required courses I have left are gated by math courses). All it does at this stage is make me feel inferior. (I do suck at thinking mathemetically, but I guess I've sucked at it for long enough I can deal with it in practice. Alas, they aren't buying it :b).
2. The only required course that remains which I'm really interested in doing is about writing a compiler, but I could do this myself. I'd miss having the excellent prof who teaches it, but that isn't worth the tuition until then. I already found my way into the others. There were some good ones which I'm really glad I did.
3. Upon graduating, my job prospects wouldn't change. Things are going fine. I might regret not having the piece of paper if I want to switch fields, but…
4. Outside of two or three excellent CS courses, the courses I have most enjoyed and grown from have been humanities and archaeology electives. They have a more interesting, diverse range of students; heaps of opportunity for cross-discipline thinking; and content I genuinely know nothing about, would like to learn about, and have no idea where to start. If I decide at some point I'd like to finish my degree, I'd probably take more of those courses and try to find an applicable degree than suffering through more CS.
The trouble with CS is (as a job training program, as opposed to a program about science and mathemtics), if you're the type of person who's doing the degree program because you're already doing this stuff, there's a decent chance you could find a relevant job while you're still at school. And that job _also_ provides educational opportunities, because that's how our field works. Unless you are in a place where that four year full time degree thing works for you, it makes itself irrelevant.
1. I'm never going to finish this damn thing because I keep failing or almost failing math courses (and it happens the three required courses I have left are gated by math courses). All it does at this stage is make me feel inferior. (I do suck at thinking mathemetically, but I guess I've sucked at it for long enough I can deal with it in practice. Alas, they aren't buying it :b).
2. The only required course that remains which I'm really interested in doing is about writing a compiler, but I could do this myself. I'd miss having the excellent prof who teaches it, but that isn't worth the tuition until then. I already found my way into the others. There were some good ones which I'm really glad I did.
3. Upon graduating, my job prospects wouldn't change. Things are going fine. I might regret not having the piece of paper if I want to switch fields, but…
4. Outside of two or three excellent CS courses, the courses I have most enjoyed and grown from have been humanities and archaeology electives. They have a more interesting, diverse range of students; heaps of opportunity for cross-discipline thinking; and content I genuinely know nothing about, would like to learn about, and have no idea where to start. If I decide at some point I'd like to finish my degree, I'd probably take more of those courses and try to find an applicable degree than suffering through more CS.
The trouble with CS is (as a job training program, as opposed to a program about science and mathemtics), if you're the type of person who's doing the degree program because you're already doing this stuff, there's a decent chance you could find a relevant job while you're still at school. And that job _also_ provides educational opportunities, because that's how our field works. Unless you are in a place where that four year full time degree thing works for you, it makes itself irrelevant.
I studied CS up to a German Diploma (comparable to a Major-Degree) and it was hard.
Now, ten years later, with all that advances in AI I finally know why I had to learn all that theoretical stuff: for the future to come.
Do your major degree, it makes the future more fun!
This isn't a full explanation, but might be worth thinking about. CS bachelor's education track is unique enough it is hard to switch into. If you are electrical/mechanical/aerospace engineering you're taking a lot of the same classes until your 3 year or so. You can change your mind and switch majors within the hard engineering fields. It is similar if you want to switch from biology to chemistry etc. At least in my experience a CS degree starts and ends there. If you want to switch into CS you almost have to start your courses over unless you were computer engineering. So out of the average % of students switching majors, some switch out of CS, but very few switch into it.
Here's a concrete example to make it really obvious.
How many computer scientists are there in the Lords in the UK? I'm not sure there's any. There are nearly 800 lawyers, doctors, religious ministers, biologists, physicist, mathematicians, philosophers, business people, politicians, authors, composers. A computer scientist who defines the field for half a century is lucky to get knight bachelor.
Look at similar establishment institutions elsewhere. Are there any computer scientists in the Senate in the US? Are computer scientists often invited to lead major public bodies? How many computer scientists become deans of universities compared to other fields?
The social status of computer scientists is zero.