So this means that employers will have more and more demand for people with computer science degrees and other related degrees like data science, information technology, etc. For an overview of all the different types of IT jobs, read this article. Back to software engineering though.
Why will you be able to find a remote job if you major in computer science? Here is a list of the top 50 CS programs in the US. If you decide to major in Computer Science, try to go to one of these schools. Also, if you want to be an entrepreneur in the future, a Computer Science background will be useful there too. The stuff they teach in schools on these topics is NOT going to help you start a company or succeed as an entrepreneur.
As a former tech recruiter, I can say with a high level of confidence that Computer Science is an excellent choice and is a major that leads to high-paying entry-level opportunities, but also fantastic long-term career options and growth paths.
Students graduating with a degree in Computer Science over the next decade will have some of the best opportunities of any degree and can go on to pursue in-demand, lucrative careers in fields like software engineering, artificial intelligence, data science, and more.
Share Tweet Share Pin. Programming is the first task that Computer Science students must master, and programming requires an extremely logical and methodical approach to solving problems. Students who are weak in mathematics often have to work harder to attain the logical thinking skills necessary to learn to program. Programming is introduced "cold" to students in a first computer science course and continued in the next several courses.
Compared to Mathematics, students learn math starting in kindergarten and continuing all the way through college. It is introduced in small steps, all the way through school. Programming is a similar intellectual skill that takes time to master, usually in about courses.
Some students appear to find programming easy and unnecessarily intimidate others into believing they are not suited to computer science. However, most of people learn skills step-by-step over time. Can anyone who has no background in music learn to play a musical instrument really well in one semester?
Can someone starting from scratch learn to speak a foreign language fluently with a single course? Unless you are a musical genius, or a young child living in a bi-lingual family, the answer for the vast majority of people is no.
The difference is that CS courses require you to do the programming to learn the skills, as opposed to memorizing large quantities of information or spending many hours rotely repeating language phrases and idioms. Computer Science is a hard discipline to learn because of the constructive nature of the discipline. But, if you are motivated and devote sufficient time to studying the discipline, then it is possible to learn and master every concept when it is encountered. The discipline of Computer Science is very constructive in nature.
In terms of coursework, this means that literally every topic discussed in any one class requires complete mastery of all previous work in that class, and all previous work in other prerequisite classes. Each concept learned is an essential foundation to the next concept s that are learned.
In other words, once you fall behind in Computer Science, your workload to catch up will double on an almost daily basis, and many students do not realize this. Students must invest a large amount of time in order to master every concept at the time they need to master it. Yet, many students tend to be unprepared to invest the time required to learn the discipline. Even though Computer Science is a hard discipline to learn, if you are motivated and devote sufficient time to studying the discipline, then it is possible to learn Computer Science.
The rule for most college courses is that for each credit hour of a course, students should spend about two hours outside of class studying. This time is spent studying and doing homework. Also, we want you to be part of your local tech community; go to hackathons and contribute to GitHub and Stack Overflow. Many of our candidates are an ideal fit for CGI technically, but fall down through the selection process because they cannot articulate their experience, skills and why they are the perfect candidate for us.
I would encourage all students to practise talking about themselves, learning how to articulate their selling points clearly and succinctly. Mock interviews are incredibly valuable, if nerve-racking.
I would strongly recommend that students join a programming society, an open source community, or even buy a kit car and build it from scratch — whatever interests them.
The best interviewees have a personal drive and interest in their own projects and this shines through in the interview, and helps them through the tricky problems we put in front of them! Careers advice. Information technology.
Why your computer science degree won't get you an IT job. Why your computer science degree won't get you an IT job Many students with computer science degrees think that's enough to have recruiters falling at their feet. Computer science graduate employment rates Recruiters report that students applying for graduate technology jobs are particular culprits for not taking applications and employability seriously enough.
Don't neglect your soft skills IT employers care about your transferable skills such as your ability to organise your workload and communicate professionally just as much as your technical ones. Get work experience in IT IT employers care about your transferable skills just as much as your technical ones.
Spotlight organisations. Enterprise Rent-A-Car. Only those who want to be the best of the best will pursue this path of learning, either through a degree program, or self development over time. There also exists a small percentage who pursue the degree for fear of being shunned by a small number of CS Majors only snobs. Let me rephrase your wonderful observation. CS is a field where one should be able to transfer the functional knowledge of one area to another. These are analogous to the blood flow, nervous systems etc.
If you go deep into the dynamic part of the program or the system behavior, excepting for the syntactical differences, an arithmetic statement is still the same and so on. The problem is the data structure differs in several domains, thus one has to devise an algorithm to solve this new situation, like synchronization, communication, state verification etc.
This needs a reasonably good mathematical and statistical models which are not canned as most code monkeys would like to use rather than create. That frightens most people. Logical thinking, isolating the complexity into simple components and how to make them to communicate, are not trivial things.
This is unfortunate and you see this in most CS major in the US. Strong background in Physics, Mathematics and a good dose of humanities and teaching problem solving skills for the Robatic and AI based economy is a must for survival whether you have a CS degree or not. Computers are integral part of our life now. I would have loved to have a degree.
But I came from a poor family with parents with very low education level : my father just did 3 years of school, my mother one year. Then, they immigrated into France. Mother did cleaning jobs, father worked for a car manufacturer. My father found someday a computer that someone had thrown in the trash : a ZX with programming book about basic.
Plugged that into the black and white TV and I started learning. My parents were intrigued. They came from a family where no one could read, no one went to school, farmers. In school, things went pretty badly. I only worked on stuff I liked, which was english, mathematics and physics. So I only got a basic degree and went out of school.
That was almost 20 years ago and in the current computing field, none of this is available, not even as prototypes. After getting bored with cryptography I went to write code for weapons. I wrote code for guidance systems for missiles, and it was fun and I absolutely loved it. I found out that my parents were extremely intelligent : they could learn anything very quickly, be it to speak a language, or any new technology.
So what seems to be my own intelligence is just the result of their genes combination, and all I have comes from my parents genetic lineage. They would have been amazing scientists if they could have had access to education themselves…. They tried for a very long time to keep me there.
What I liked is programming. All my fun is optimizing code and having very simple, elegant code. Today I mostly write Java code. Because it pays very, very, very well. Others, we push them away from production machines and programming.
I think education is very fine and I miss it. Would have loved to have some to avoid spending 10 years of hard work to learn stuff they teach you in a few years… I would not be a better programmer today, but I surely would have become skilled years earlier with such precious knowledge. But the problem to me is not education. Everyone of us can learn to play guitar or bass or sing. To the level of being able to play in front of people in a band and do tours. They are made for it, they are, at their young age, already at that best level there is which it took you 10 to 20 years to reach.
People like Jimmy Hendrix. They have that something from the beginning given to them, that you had to work to and learn with hard work. Some of us are made for it and we kick ass from the start and young age. There, you understand that those amazing people, whatever your education or work, will always be better than you. We have to look for and find those Mozarts in every field and make sure they can get to the fields they will shine like stars.
And please : keep the people that should not be programming out of the field. No education will give you the best programmers. The best programmers are the best because of their innate skills, and all education can do to them is make them reach the best level faster.
Everyone can learn it with work or even education. They just go around you doing circles, laughing and everything is so easy to them. They break anything, write amazing clever code, fast and easily. And you see all the educated people around realizing that education, hard work, is not enough. They will never reach that level of skill, ever. This is why I love the computing field.
About law? Same about the lawyers, they are pretty much saving people right and left on each major TV network or streaming service. Suits, Good Wife, lots and lots of others. And make money. Saving lives and making money is better than just making money right? Yes, maybe programmers are saving lives too… provided they work in a say medical field. So what? No one will ever know. Having said that, I majored in CS. However good the money.
Give me my average programmer job any day. Maybe people in US are just more ambitious? Take India for example.
And having done that much, you are already king. There is a wave of professors coming out of university to join industry, especially in machine learning. Is it possible that the number of faculties are capping the enrollment?
I also heard in UW it is very competitive to major in cs. My kids are a couple of years away from going to college and we have started looking at schools here on the west coast. Most schools have a huge pipeline problem. Too many students, especially foreign ones, competing for a few coveted spots. The demands for keeping up with the latest and greatest tools has been my hardest hurdle. Shifting coding standards.
New tools. Too many people this is simply not worth it especially if you want to raise a family. Competition from overseas is real and they are willing to work for less and harder at it than you so why bother? War stories are plentiful about people working 20 hour days for weeks at a time to get something to work.
We literally brag about it all the time. The stereo-type of the grizzled programmer living under his desk is ingrained in the culture. Really enjoyed reading this article.
A key factor that should be considered is the lack of available computer science education opportunities in our compulsory education system and how it affects perceptions of incoming freshman. One could quite easily see how this would dissuade someone from majoring in computer science simply due to their fear of an unknown subject.
You also have to consider that a degree in Software Engineering qualifies you for most of the same jobs. But it may explain the difference in demand for skills vs CS degrees. On the margin, it might be a matter of cs having a lot of close substitutes like engineering, math, and physics that teach some applied coding skills while imparting knowledge of a subject area that will use those coding skills. Some of these areas, especially engineering, pay higher starting salaries than cs.
A CE degree is not a CS degree. A CS degree is deeply mathematical as opposed to being a trade school. These two degrees are very different. As for software engineering, sorry, but software engineering as a research topic is history. Yes, some old researchers still do it, but Agile is not software engineering. That job title should die. I believe this to be demonstrably false, anecdotally, but also as far as research goes.
The punch line: English and Music aptitude, independently, were better predictors of programming skill than Math. Math, Bio and physical sciences have all seen increases in women majors, although not as large as men, and in engineering the increase in women majors is even larger than in men. Thanks for doing this analysis.
The research I have seen is that women are turning away from CS for rational reasons — why take on a career where you will be constantly marginalized? Get some data on how many students start CS and end up in something else, often math. CS is damn hard; many students switch out in their sophomore year, when they first have to deal with a data structures course involving serious large programming projects.
Succeeding then in a timely manner requires an unusual amount of mental organization and discipline.
Work with computers encompasses many different activities that are often confused. CS is only one of them and is not what the overwhelming majority of the economy demands. It has been repeated that Programming is more of a craft at which some people naturally excel. The same for physicists or enginneers. Why this is so? Indeed, bootcamps do not teach people what to some seems indispensable basic knowledge like data structures, but then perhaps such knowledge is not necessary for what the majority of the computer work is all about, or perhaps in regard to what the industry demands.
These demands bring us back to the first paragraph. And finally there is a demand which is constantly being fed by the programmers themselves, which consists of mastering the last fashionable and in so many cases arguably unjustified or simply rediscovered new tech, that makes the contents of any computer major look like selected for extinction within a few years. To sum up: perhaps any analysis should start by discriminating the different aspects of what is meant by working with computers.
In this light, CS looks like too narrow a specialization. The crafty nature of development combined with the unsophisticated demand of the market and the fickleness of technologies within reach of a teen, make a strong case to follow another major and acquire software skills as a complement. I graduated college in As a woman, I felt that my choices were to become a nurse or a teacher.
I left with a degree in education. A hypothesis. The industries employing CS graduates have a lot of jobs to offer. The money is good. However a very small portion of those jobs involve creative thinking, design or such exciting stimulating work.
A larger chunk of jobs are somewhat mundane. Perhaps American kids are not incluned to take those. Therefore they do not opt to take this major though it is high wage. His salary is dollars. He writes tax software.
Another one is in google testing. Yet another, quality assurance. Wondering if this is why they graduate from other disciplines not CS. Possible you can find the initial enrollment numbers of CS majors and compare those? Thoughts are that they either change or dropout and still work in the industry.
I think that the boom-bust cycle is amplified in the both popular culture and by individual anecdote. The crack cocaine fury of the s ended when the neighborhood was full of 30 year old guys in wheelchairs reminiscing about their gangster days.
Look at Aeronautics and Astronautics in the s. It had been a hot field since the s, but after the big bust in the late s, no one wanted to major in it. Look at any review of any new Apple release. Maybe a handful of review sites like Ars Technica look at it from a software viewpoint even though Apple is a software company that sells hardware platforms to get its software out there.
This variation and invisibility leads to a lack of respect for the occupation, and the fact that it is good computer science that makes real applications work. No one thinks about consistency issues when paying by credit card or scaling issues when doing a search or buying a plane ticket. Most people think that software stops with throwing together a web page, so why build your career hopes on that.
Add to that invisibility the usual problems of technical careers: the lack of a real career path without moving into management, being considered part of the problem not part of the solution, the age discrimination which is often blatant. My niece got a CS degree from Stanford. Really, really great post — the problem is really acute worldwide, not just US. I think there is one more reason for not choosing a cs major, perhaps the most important one.
Tech is a booming market for sure and bound to stay so for some more time, however it is very different from other industries in being very tooling focused. As a result, there is a huge shortage of talent for just doing things, but growth prospects within the industry are not as high as in others. Executives in tech actually earn less than execs in finance or energy or healthcare. The starting compensation is higher, but the growth trajectory is flatter.
Again, just because the shortage happens to be driven primarily by knowledge of tools. So not choosing CS actually makes a lot of sense. Lots of great opinion here. Part of it though is that Computing has outgrown Computer Science. It used to be that computing was a mathematics discipline and that computers were designed to assist with computational mathematics problems. Now computing is fundamental to the data and communications efforts of every facet of human life.
There are as many domains as there are things that interest us. It used to be that if you wanted to work with computers you studied computer science. Now there are an array of different education options and focusses that teach computing related skills within different domains.
A genuine splintering of the subject into many relevant areas none of which capturing or even requirement the mathematical depth of computer science but all of which leveraging off of it to different degrees. In this context Computer Science is becoming a specialisation. Sure innovations will come out of computer science but not every employee is required to be a cutting edge innovator. I think we are starting to see a move away from mass hiring of people with computer science degrees to do any computing work and instead hiring of graduates with computing degrees that have a business domain focus or technical application specialisation.
The point behind the computer science degree was to professionalize computer programming. It could have been a trade. As it now becomes a trade, less money will be made doing it.
There were many different professional tracks in computer programming. The business track, the computer science track, and the EE track. Each of these produced different programmers with different approaches. The microprocessor category is nearing its death. Phone and the cloud are indicators of this. We need new categories. And, while everyone can program, not everyone can program everything.
The degreed programmers can expect continued employment, but a degree is not enough. Further, Open software killed the software industry. We still pretend to be in that industry, but we are really in the industry of our monetizations, aka ad serving. Worse, management still thinks they are in the software industry. Some other factors: 1. No idea what to expect in CS since programming and algorithms are not taught in school like math.
CS academic culture where you are required to learn everything on your own. If you are stuck on a math problem, the teacher solves the rest for you. There is a specific approach that can be learned to solve math problems.
CS has no specific approach, neither does the faculty believe in helping the student when stuck on code. Expectations to know and learn stuff beyond academics like new technologies and creating side projects on your own. There were actually five 5 majors you could study that were related to computers and software, and one was in the Math Dept.
I chose the latter. A few years later they actually merged the computer math classes and teachers with several from the EE Dept and formed an official Computer Science Dept. Their degree was everything I studied plus a couple of missing courses. The driving force in software today seems to be web-based applications. The web started out as simple pages displayed to visitors, with a little bit of customization.
Today, vendors want to replace desktop apps with web-based apps. The state of this technology today is about where it was when Windows 3 was introduced. Only the computers have gotten faster so the turnaround time has shifted from days and hours to seconds. Computers have gotten fast enough, and memory is cheap enough, that most of these are no longer of much concern for nominal programming activities. That does not happen in any other engineering field!
I have no reason to doubt you, so which route would you recommend these days? Sorry for any confusion. As far as your eyes rolling back in your head, you may not be cut out for ANY college degree! Most Comp Sci programs require two or possibly more semesters of Calculus.
I hated calculus, and never used it after I left school. I happened to be very interested in some, but not all of them. There is an evolutionary history and some theories behind software, and it helps to understand some of it if you want to be a really great programmer. Also, given the steady advance of hardware innovation, available memory space is growing faster than we can use it.
Not so much any more. Just got 1 year of Java 7? Believe it or not, the tech schools today are far more attuned to the needs of businesses than most traditional CS programs. You can learn to code at code camp, but many employers know that those graduates are weak at data structures. CS degrees, any degree really, are about academia, not getting jobs. Yes, you can find work without a degree but is that the point? Yes, everyone is missing the point.
And, everyone is just lucky if they get a job. They can code, but so what. From what I seen in my college. Initially a lot of people who really like computers and interested in programming join CS program. Almost all of those people are capable of staying in the long run but they drop out and go into other programs halfway through because of the difficulty.
Main reason is not because it is difficult but because the people teaching intro classes are mostly instructors who are really bad at teaching not worried about setting up a proper foundation for the students. Without walking you through showing you the right way they expect you learn from reading a book with vague partial sample codes.
How can you learn without seeing the right way to do something. This itself disheartens a lot of potential programmers and without the proper foundation the course becomes very difficult further you move along. Another major problem about CS professors and instructors are they are more concerned about plagiarism than if the student understood the concept and knew how to apply it.
Philosophy major, who has a love for computers, would do far better and make much more sense with their work in the computer world than a random student who just took computer science because it pays well.
There are tons of examples of computer engineers with a philosophy background who have done far better in their career. Philosophy as such is not marketable to get a job, except being an academic or pursuing Ph. It is the tools that one learn or gain insight of during the study of philosophy that makes it one of the best major that opens up a wide variety of opportunity — skills like logic, writing, defining, analysing, debating, ethical thinking etc.
It is not that people are not good before philosophy, but after studying it and engaging in the thought process, and endless debates with your class and faculty, you gain and sharpen so much of your above skills, that it becomes a habit, that expresses in your work and life. It becomes a way of your life.
With computer science you learn how to manipulate info, store it, etc. Your learning about the architecture of managing info. You never learn any real knowledge. That architecture always changes and changes quickly.
In demand computer languages change as well. In the end you will find yourself obsolete and know nothing of any value. Then people will spit on you on the street because your a bum. Subscribe to new posts I publish infrequently. Enter your email to get my posts delivered to your inbox:. Maybe others would like this piece too: Tweet. I can only offer two data points. I think they were based somewhere in the South… Texas? No speculation about difficulty, gender issues, faculty, etc.
A recent study demonstrated how H1Bs suppress wages. This is a great article! Thank you for your exploration into and perspective on this topic.
0コメント