7 answers
Asked
2272 views
For computer scientists how many years of education did it take to acquire a job?
What gave you the most stress, and trouble doing the years of education. What college did you attend and do you reccomend it?
Login to comment
7 answers
Updated
Robert’s Answer
To answer your base question, I have never seen a BA/BS in "Computer Science" offered by any accredited university for less than 4 years of study (the average student takes 4.5-6 years complete a BA/BS in "Computer Science" at most universities). You can get an AA/AS in roughly 2 years, but an AA/AS will not open many interview doors for you. I majored in "Computer Science," and the courses I had the most trouble with were the non-programming courses (such as circuit design, assembly language / computer architecture, physics, calculus, etc.). Do I recommend getting a degree in Computer Science? That depends on what type of job you want, and how willing you are to put in work outside of the classroom.
There is a bit of a disconnect between what universities and their colleges of "Computer Science" (usually attached to either the college of Mathematics, Science, or Engineering -- and comprised of a wide variety of classes, depending on the university, which is why I am putting it in quotes, as the same term doesn't mean the same thing to students at different universities) present as a field of study, and the actual jobs available to those who major in "Computer Science."
Technically speaking, a "Computer Scientist" is someone who works with and studies computers and computing science. They develop better architecture, better programming languages, better ways of networking, etc. They study the science of computers in other words. And that is how the topic is taught (more or less) at the university level. Most undergraduate degrees (both BA and BS) offered for majors of "Computer Science" require the student to study a broad range of courses related to the science of computing.
For myself, that meant taking classes in: circuit design, formal logic, calculus, physics, linear algebra, assembly language and computer architecture, networking and network science, programming language history syntax and design, formal computing science definitions (Turing test, state machines, etc.), and engineering classes too. We also had classes covering C programming, Java, HTML, and even a little bit of database theory as well -- but not as many as you might think.
Students who complete an undergraduate degree majoring in "Computer Science" will exit those programs more or less unemployable in today's economy in jobs related to Computer PROGRAMMING -- if they did not intern or work during university, and they were not working on modern programming projects on the side. The BA/BS of "Computer Science" most universities offer is a broad topic major which canvases nearly all aspects of computing science (both historical and modern). A graduate holding a BA/BS in "Computer Science" has been trained (realistically) to be a scientist who studies computers. That means you would be well qualified to apply to a lab working on the next programming language, or something similar. You will also be well qualified to apply for graduate school to get your MA or Ph.D. in "Computer Science" and become a researcher or professor in the subject.
There are some universities, such as California State: Chico, which are offering majors in "Computer Programming" instead of "Computer Science." It doesn't sound like a huge difference, but it actually is. A "Computer Programming" major will focus not on the broad science of computers in general, but instead on programming those computers in specific. That means a large portion of the "Science" related courses from "Computer Science" (calculus, physics, circuit design, compiler history, assembler architecture, etc.) will be replaced with courses on ... programming! You still won't exit a degree program in "Computer Programming" 100% ready for the job market, but you will be a lot closer than if you had majored in "Computer Science."
So, ultimately, the choice is up to you (and your choice of university, as not every university offers a major in "Computer Programming") -- are you interested in a broad topic major such as "Computer Science" which will prepare you to work on developing the next programming language, the next compiler, the next advancement in network protocols, or as a programmer who will have to do a lot of side work to catch up to where the industry is now in the jobs field. Or, would you interested in more of a job-focused course of study such as a degree in "Computer Programming" which will eschew some of the more theoretical and historical classes on the science of computing, in favor of more modern programming courses, which will better prepare you for a job as a computer programmer?
I earned a BS in Computer Science, and I had zero trouble getting a job as a software engineer/computer programmer. But, I also worked in the field while in college, interned, and got real-world experience while completing my degree. Most of the courses I took had almost nothing to do with modern jobs in the field of software engineering/computer programming. But that was fine, because I already had the experience from my outside work.
My advice to you (and others reading this) is thus: if you intend to seek a job as a software engineer/computer programmer post university, you will need to be able to do the job when you start. Not many companies are offering mentoring or on-the-job training right now, as the pandemic caused a lot of the soon-to-retire people to go ahead and retire, and many companies are running skeleton crews scrambling to replace them. That means they want to hire someone who can be productive from day one, who will not require a mentor, and who won't need a lot of watching. That means they will be checking your ability to solve problems, and code, DURING the interview. And those problems and code will not look like much of what you saw only in your university courses.
In order to be able to pass those interviews, and get hired, with your shiny new BA/BS in hand, you will need to have: majored in Computer Programming, plus have done 2-3 projects outside of your course work, which you can point to with your name on them, and say "I did that." Or, if you major in Computer Science, you will need to have done 4-6 outside projects with your name on them, plus maybe interned at a company doing the kind of work you would like to be doing.
The hiring environment I am describing above is true as of December 2023 (as I am writing this) -- which is only about 1.5 years after all of the lockdowns and restrictions ended globally due to the WW Covid-19 pandemic. Will those conditions always be true? Of course not. Will they be true for the next 6-18 months? Absolutely. I will come back in to this answer and update it periodically as things change. But as of right now, what I have written above is what you will need to be able to do/show in order to get hired for the majority of the software engineering/computer programming job roles on the market right now. Will there be some jobs which will hire you with zero experience? Sure. Will they pay well and have great working conditions? Probably not. Plan accordingly.
There is a bit of a disconnect between what universities and their colleges of "Computer Science" (usually attached to either the college of Mathematics, Science, or Engineering -- and comprised of a wide variety of classes, depending on the university, which is why I am putting it in quotes, as the same term doesn't mean the same thing to students at different universities) present as a field of study, and the actual jobs available to those who major in "Computer Science."
Technically speaking, a "Computer Scientist" is someone who works with and studies computers and computing science. They develop better architecture, better programming languages, better ways of networking, etc. They study the science of computers in other words. And that is how the topic is taught (more or less) at the university level. Most undergraduate degrees (both BA and BS) offered for majors of "Computer Science" require the student to study a broad range of courses related to the science of computing.
For myself, that meant taking classes in: circuit design, formal logic, calculus, physics, linear algebra, assembly language and computer architecture, networking and network science, programming language history syntax and design, formal computing science definitions (Turing test, state machines, etc.), and engineering classes too. We also had classes covering C programming, Java, HTML, and even a little bit of database theory as well -- but not as many as you might think.
Students who complete an undergraduate degree majoring in "Computer Science" will exit those programs more or less unemployable in today's economy in jobs related to Computer PROGRAMMING -- if they did not intern or work during university, and they were not working on modern programming projects on the side. The BA/BS of "Computer Science" most universities offer is a broad topic major which canvases nearly all aspects of computing science (both historical and modern). A graduate holding a BA/BS in "Computer Science" has been trained (realistically) to be a scientist who studies computers. That means you would be well qualified to apply to a lab working on the next programming language, or something similar. You will also be well qualified to apply for graduate school to get your MA or Ph.D. in "Computer Science" and become a researcher or professor in the subject.
There are some universities, such as California State: Chico, which are offering majors in "Computer Programming" instead of "Computer Science." It doesn't sound like a huge difference, but it actually is. A "Computer Programming" major will focus not on the broad science of computers in general, but instead on programming those computers in specific. That means a large portion of the "Science" related courses from "Computer Science" (calculus, physics, circuit design, compiler history, assembler architecture, etc.) will be replaced with courses on ... programming! You still won't exit a degree program in "Computer Programming" 100% ready for the job market, but you will be a lot closer than if you had majored in "Computer Science."
So, ultimately, the choice is up to you (and your choice of university, as not every university offers a major in "Computer Programming") -- are you interested in a broad topic major such as "Computer Science" which will prepare you to work on developing the next programming language, the next compiler, the next advancement in network protocols, or as a programmer who will have to do a lot of side work to catch up to where the industry is now in the jobs field. Or, would you interested in more of a job-focused course of study such as a degree in "Computer Programming" which will eschew some of the more theoretical and historical classes on the science of computing, in favor of more modern programming courses, which will better prepare you for a job as a computer programmer?
I earned a BS in Computer Science, and I had zero trouble getting a job as a software engineer/computer programmer. But, I also worked in the field while in college, interned, and got real-world experience while completing my degree. Most of the courses I took had almost nothing to do with modern jobs in the field of software engineering/computer programming. But that was fine, because I already had the experience from my outside work.
My advice to you (and others reading this) is thus: if you intend to seek a job as a software engineer/computer programmer post university, you will need to be able to do the job when you start. Not many companies are offering mentoring or on-the-job training right now, as the pandemic caused a lot of the soon-to-retire people to go ahead and retire, and many companies are running skeleton crews scrambling to replace them. That means they want to hire someone who can be productive from day one, who will not require a mentor, and who won't need a lot of watching. That means they will be checking your ability to solve problems, and code, DURING the interview. And those problems and code will not look like much of what you saw only in your university courses.
In order to be able to pass those interviews, and get hired, with your shiny new BA/BS in hand, you will need to have: majored in Computer Programming, plus have done 2-3 projects outside of your course work, which you can point to with your name on them, and say "I did that." Or, if you major in Computer Science, you will need to have done 4-6 outside projects with your name on them, plus maybe interned at a company doing the kind of work you would like to be doing.
The hiring environment I am describing above is true as of December 2023 (as I am writing this) -- which is only about 1.5 years after all of the lockdowns and restrictions ended globally due to the WW Covid-19 pandemic. Will those conditions always be true? Of course not. Will they be true for the next 6-18 months? Absolutely. I will come back in to this answer and update it periodically as things change. But as of right now, what I have written above is what you will need to be able to do/show in order to get hired for the majority of the software engineering/computer programming job roles on the market right now. Will there be some jobs which will hire you with zero experience? Sure. Will they pay well and have great working conditions? Probably not. Plan accordingly.
Updated
Jonathan’s Answer
There's no set time requirement of education to get a job. Having a degree helps, but I also know many brilliant minds who were self-taught and also found software jobs they enjoy doing.
I went to University of Washington for Computer Science and Software Engineering. Whatever path you take, don't rush it! Just do whatever you feel you need to do in order to be successful. The learning won't stop. Regardless of where you were educated or what you learned, there will always be something more to learn in computer science. There will be peers who graduate early or late depending on how their credits worked out or personal circumstances, but don't let that be a reason to rush your education. Your experience and learning is and will be valuable.
If you can, starting earlier to ease yourself into the fundamentals of computer science will help. Take the time to work on cool side projects that you're passionate about, and don't rush to finish your degree. Focus on the learning itself, along with the mindset, and the job will follow soon enough.
I went to University of Washington for Computer Science and Software Engineering. Whatever path you take, don't rush it! Just do whatever you feel you need to do in order to be successful. The learning won't stop. Regardless of where you were educated or what you learned, there will always be something more to learn in computer science. There will be peers who graduate early or late depending on how their credits worked out or personal circumstances, but don't let that be a reason to rush your education. Your experience and learning is and will be valuable.
If you can, starting earlier to ease yourself into the fundamentals of computer science will help. Take the time to work on cool side projects that you're passionate about, and don't rush to finish your degree. Focus on the learning itself, along with the mindset, and the job will follow soon enough.
Thank you, Jonathan!
Angel
Updated
Maikel’s Answer
4 years. I was lucky to get a job in the computer science field right out of college. Specifically programming in Java from day 1.
Advanced Data Structures, low level programming, operating systems and theory of computation were the toughest courses and therefore the most stressful. But at the same time the most enjoyable, in my opinion these courses are the core of computer science.
Obviously Carnegie Mellon, MIT and Stanford offer the "top of the top' programs in computer science. But also Georgia Tech, Princeton, UT-Austin, UC-Berkley, University of Michigan-Ann Arbor, Cornell and University of Washington offer great CS programs as well.
Advanced Data Structures, low level programming, operating systems and theory of computation were the toughest courses and therefore the most stressful. But at the same time the most enjoyable, in my opinion these courses are the core of computer science.
Obviously Carnegie Mellon, MIT and Stanford offer the "top of the top' programs in computer science. But also Georgia Tech, Princeton, UT-Austin, UC-Berkley, University of Michigan-Ann Arbor, Cornell and University of Washington offer great CS programs as well.
Updated
Sean’s Answer
Earning a computer science degree typically spans across four years at a university. However, this duration might extend if you opt for a Co-op or Intern program, which provides an opportunity to gain industry experience before you wrap up your degree. I strongly advise you to consider a university or college that offers such a program. It's an excellent way to immerse yourself in the real world and explore various roles within the field. Plus, it's a bonus that you earn a decent income during this period, which can significantly ease your tuition costs.
Alternatively, you might come across institutions offering a two-year computer diploma. If you choose this route, ensure that they provide a pathway to a degree, where your diploma courses are credited. I've encountered individuals who, after obtaining a diploma, desired a degree but were disheartened to discover that many of their completed courses weren't credited. Consequently, they had to retake similar courses to earn their degree.
Alternatively, you might come across institutions offering a two-year computer diploma. If you choose this route, ensure that they provide a pathway to a degree, where your diploma courses are credited. I've encountered individuals who, after obtaining a diploma, desired a degree but were disheartened to discover that many of their completed courses weren't credited. Consequently, they had to retake similar courses to earn their degree.
Thank you so much Sean for the answer and have a good day! I will keep in mind that everything should get credited
Angel
Updated
Caryn’s Answer
The duration of completing a degree can fluctuate. As pointed out by Sean, a standard Computer Science (CS) Bachelor's degree typically takes 4 years. I was able to acquire two degrees in unrelated fields within the same 4-year timeframe. If I had focused solely on a CS Bachelor's degree, I could have potentially finished it in approximately 3 years. This could be achieved by enrolling in additional classes during a semester or attending summer school. However, this largely depends on your financial resources for the degree, as well as your eagerness to take on more classes in a given semester. Alternatively, you can opt for a more technically-oriented CS Associate's Degree, which can be completed in 2 years. This option is available at community colleges, specific computer technical schools, and online platforms.
Updated
Dr. Hanan’s Answer
Reflecting on your questions and the answers above, I wanted to pop in to re-inforce that today's now and age does not require a particular degree though degrees make it easier to land jobs. What most companies do require is having the knowledge. Knowledge can come from online certifications, courses, pro-bono work, internships etc.
Computer science like any other job in tech requires you to be and to remain curious. Curious to learn, curious to investigate, curious to troubleshoot, and curious to improve.
I started in computer science at Youngstown state university then changed my major to information technology as my program offered a graphic design degree that I found more passion in me to pursue. Funny enough, with luck and hard work, I found myself pursuing a PhD in Human-Centered Computing at Clemson University which is a Computer Science degree with a focus on psychology and human factors. Think of it as a major to build systems that take into account the affordances of humans; how our brain works, how fast we learn..etc. it was hard work but it was also very enjoyable. I then kicked off a career in User Experience Design and Engineering where all I do is think about the user and providing requirements for what a system must have to achieve a best user experience.
I share my story to tell you that computer science is not a one shoe fit all. You can pursue a computer science degree and find one of the many disciplines under the computer science umbrella more appealing and pursue that.
Yes I do recommend that you try it and learn more about what you like and your strengths. If you don't try, you don't know. I wish you all the best!!
Computer science like any other job in tech requires you to be and to remain curious. Curious to learn, curious to investigate, curious to troubleshoot, and curious to improve.
I started in computer science at Youngstown state university then changed my major to information technology as my program offered a graphic design degree that I found more passion in me to pursue. Funny enough, with luck and hard work, I found myself pursuing a PhD in Human-Centered Computing at Clemson University which is a Computer Science degree with a focus on psychology and human factors. Think of it as a major to build systems that take into account the affordances of humans; how our brain works, how fast we learn..etc. it was hard work but it was also very enjoyable. I then kicked off a career in User Experience Design and Engineering where all I do is think about the user and providing requirements for what a system must have to achieve a best user experience.
I share my story to tell you that computer science is not a one shoe fit all. You can pursue a computer science degree and find one of the many disciplines under the computer science umbrella more appealing and pursue that.
Yes I do recommend that you try it and learn more about what you like and your strengths. If you don't try, you don't know. I wish you all the best!!
Thank you so much, Dr. Hana for the response and time you put into this!
Angel
Updated
Josias’s Answer
it took me 5 years but here's why. The first 3 years I thought I was gonna do Engineering, then I pivoted to Computer Science. I had an AS in Engineering after 3 years. Then 2 years to finish my BS in Computer Science at University of North Carolina - Charlotte. I lost some time due to courses that were transferred but not relevant to Computer Science. I was lucky that before graduating I landed my first job senior year to begin after graduation. Most stressful years I would say are the middle of your degree due to weed-out classes, and then last year due to job hunting. I loved computers and gaming so to me this was a natural path. I haven't regretted pursuing this career no matter how long it took.