My S21 has been exploring engineering - most recently through a 2 week engineering pre-college program. He came away impressed by the way the software engineers talked about their work – identifying computer products/systems needed to meet a need and bringing it through the design and development process (my words, not his).
Prior to this he was thinking about computer engineering, but what he took away from his program is that computer engineering is more focused on the component parts of electronics while software engineering is more about applicability of what the system is trying to do. And seems to be closer to computer science than true engineering?
I googled the difference between computer science and software engineer and generally learned hat the latter is more systems thinking and application. This does seem like a good fit for him b/c he’s not a person who wants to code all day but is very interested in design and business sides of tech. But from a real world perspective, what’s the route to software engineer? It seems like a lot of colleges lump it under their CS major. And is it ever actually part of an engineering school and if so is that preferable or does that not really matter?
Software engineering actually does exist as a college major, but it is uncommon. At two schools which offer it (CPSLO and SJSU), it is similar to a computer science major, but with somewhat more course work on software engineering methods in place of some computer science topics (but note that computer science majors are often offered an overview of software engineering course anyway).
While the computer science major has one software engineering overview course (CS 160), the software engineering major has a series of courses (CMPE 131, 133, 165, 187). The computer science major has more computer science topics courses.
In terms of career preparation, a major in computer science, with more computer science topics courses and an overview of software engineering course, gives broader coverage of various potential career directions that one may go to at graduation. A software engineering college major is more specialized, which may be limiting, but may not give the student more exclusive access toward the targeted entry-level jobs.
Computer engineering as a college major tends to be more hardware oriented than computer science or software engineering, but there is some variation across different schools, so looking at the curriculum would be advised.
Son got his math-honors and computer science double majors then went to work. Current job title is software engineer, previous job was software developer I believe. Different nationally known (big league in their fields) companies, same background skill sets for CS. A hardware engineer deals with the physical aspects of computing. CS was in the same part of the university as math, not the engineering school, with some overlap of courses. A few year ago I read a long article about how math was a good background for thinking in CS. I agree- creative problem solving with more abstract math tools in one’s brain.
Son is doing development, not research, as he pointed out to me. However he is not just doing programming to meet needs some companies would have. Son has also me an advanced egree is not necessary. He has self taught some additional computer languages and I can see why he would state this for himself. He was never interested in the open comuter box when we did harware upgrades years ago.
Your son got the message- hardware versus software. He will need to decide which aspect most appeals to him. My own comparison is between Chem E and Chemistry (my undergrad major)- very different fields dealing with the same subject. I would never have chosen engineering while into science. Likewise with computers, two different fields.
“Software engineer” is a popular and vague term these days. Many software engineer positions involve coding all day. Your son should explore careers of product manager, project manager, systems analyst, business analyst, system architect etc. Many people start by getting a computer science or related degree and coding for a while, then make a switch to these positions.
Computer Science is more theoretical. Software Engineering is more practical. Most employers won’t make much of a distinction between the two degrees, and it’s likely that recent graduates with either degree will start their careers spending most of the day in front of a computer, writing code. When your son can get involved with the business and/or design aspect of things depends more on the company they’re working for than any particular degree.
I had a CS degree. There were jobs at certain companies where I got to do a lot of design, got involved in business decisions, and talked to customers. There were other companies where I did nothing but sit in a cubicle all day and program. (I hated those jobs.) So when he’s looking for a job, have your son be aware that certain companies will give him a variety of responsibilities early, while others will want him to do nothing but program. He should also look for a company working in application areas that he finds interesting. In my case, I loved working for aerospace companies, medical companies, and on Wall Street because the applications were interesting and I wasn’t totally surrounded by computer nerds. I was often bored working at software and computer companies.
It doesn’t matter whether the CS or SE programs are run out of the engineering school or not.
My husband has a cs degree from Columbia then a master’s in computer engineering. His first job with a Bachelor’s he was hired as a software engineer. He used the company’s educational assistance program to pay for his master’s degree. He switched from software to hardware when his company asked him to. They knew he had a lot of self taught skills. Some software people like getting into hardware and others like sticking to software.
Right now he is an electrical engineer without a electrical engineering degree because he has done many years of embedded systems and firmware design . He said most of the time hardware engineers tend to understand to understand how to do software engineering though some specialized positions don’t need it such as a analog hardware person. Big data and machine learning are big buzz words in software engineering in the field today.
Some software engineers are content sticking to coding and not working on machine components. Some of it simpy boils down to personal interests and some to how a company runs. For insance my nephew is one year out of her bachelors in CS from Brown. He loves software and has no interest in hardware beyond the basics. I was telling him how we got my youngest a new laptop and my husband added a solid state drive and he said he would never do that even though it is easy and would just spend a lot more money to get one that came with it.
At least here in Canada, software and computer engineering are accredited engineering degrees (B.Eng/B.ASc) and graduates are eligible to get their professional engineering status (P.Eng). Computer Science is most often a science (B.Sc) degree though some are included in the faculty of engineering (B.ASc) but do not meet licensing requirements to become professional engineers. Since computer/software engineering are professional programs the course work is much more structured as they need to meet the professional accreditation requirements which requires them to take courses in economics, project management, business communications etc. Computer Science students don’t have those requirements and their elective choices are generally less restricted. It is also often common to be able to combine a CS degree with a math degree, whereas that is not usually available to engineering disciplines.
In the US, SE and CE majors can be ABET-EAC accredited, which can be helpful for PE licensing. CS can be ABET-CAC accredited (but that does not help get PE licensing). However, most US employers for jobs where any of these majors would be good preparation are not concerned about PE licensing or ABET (EAC or CAC) accreditation per se, although ABET accreditation could be used as an indicator of meeting a good minimum standard (i.e. good to excellent; non-ABET-accredited programs range from poor to excellent).
For CS, ABET-CAC accreditation can be helpful if the graduate wants to take the patent exam. A graduate of a non-ABET-accredited CS major needs to have specified course work as listed in the patent exam general requirements bulletin, including some non-CS science course work.
Software engineers/computer science majors do not just work alone- they are members of a team on their project. Your son should look at several school’s degree programs in fields of interest and see the courses required, recommended and available. He will get a feel for what most/least interests him and can make a college list.
My daughter has several friends who did various types of computer degrees at her college. They had separate colleges for engineering and computer science. Some kids did the engineering route and basically learned more hardware. Some did the computer science route and their classes were more software. Some did a business route and their classes were more analytical. There were many classes that were the same for all of these routes.
The companies they worked for after graduation reflected this - the engineering people ended up at places like Intel or Lockheed Martin, the CS people ended up at tech start ups, and the business people ended up at financial companies.
Many of them do coding (regardless of the type of company). Some do QA, some work on new systems, some work on maintaining current systems, and some work on the transition between systems.
Back when I was in the tech field, as you gained experience you moved from coding, to analysis, to project management. I don’t know if this model still holds - I think all of these kids have jobs with the title “analyst” in them (look at job ads for new grads - they all have the word “analyst” in them - no matter what the job really is.)
I’m a software consultant which means I don’t design systems, I help companies make the best use of existing software packages. There still some programming involved and a lot of business analysis. From what you described your son is interested in the development side of new applications.
The applications layer of any system is what actually meets a business or users’ need. There’s a ton of other layers under that which support the application,
system communications , the operating system and the hardware… The farther down into the depths you go into computer systems the more engineering it gets. The closer you get to interacting with the end-user the more businessy (and artsy) the work gets. And the skills required for each layer depend upon what kind of computers and systems you working on. So it is confusing because it is a massive and multifaceted industry.
It would probably simplify things if your son analyzed what he wants to learn. Most people in the software industry got there because they enjoyed programming or data modeling or Hardware or application development so we naturally self-select and in time a career develops from what you work on. If he studies things he’s fascinated in he’ll do better anyway. So have him look for a degree with the curriculum that matches what he really wants to take, preferably in a school that has lots of options to expand that.
@CaMom13 – really helpful input. When you say examine programs to see what he wants to take, do you mean both computer engineering and computer science programs specifically? They seem the most common as I don’t see a lot of software engineering programs at the bachelor’s level.
@kiddie – interesting to see this. My S currently is at a 3-way intersection of engineering & business & computer science and can’t figure out which way to turn! We have a family friend in the computer hardware biz (Nvidia - sp?) and one who is a app developer / tech entrepreneur so we’re going to try to get him to talk to them to help figure it out.
@AlmostThere2018 - I meant find a list of schools he’s interested in and can get into … and can afford… and determine the actual degree to apply for based upon the curriculum. Computer Science and programming are pretty standard courses so you can go to just about any large or high quality small school and get the basics.
I checked and there are 28 schools certifed by ABET in “software engineering”, so that’s a good place to start. Take a look at their curricula and see if it actually fits with what he wants to learn. If not, then that’s not the right degree for him even if it’s the career goal. I wouldn’t let the degree name determine his school list. Ultimately, his work experience will define his career and not his degree.
The ABET certified programs in “software engineering” are:
Arizona State University
Auburn University
California Polytechnic State University, San Luis Obispo
Clarkson University
Drexel University
Embry-Riddle Aeronautical University - Daytona Beach
Embry-Riddle Aeronautical University - Prescott
Fairfield University
Florida Gulf Coast University
Florida Institute of Technology
Gannon University
Iowa State University of Science and Technology
Kennesaw State University
Milwaukee School of Engineering
Mississippi State University
Monmouth University
Montana Technological University
Pennsylvania State University, Behrend College
Quinnipiac University
Rochester Institute of Technology
Rose-Hulman Institute of Technology
San Jose State University
Shippensburg University
The University of Virginia’s College at Wise
University of Michigan - Dearborn
University of Texas at Arlington
University of Texas at Dallas
University of Wisconsin - Platteville
Computer Science is a wide field and there are many ways to approach a degree. Some schools offer a BA, others offer a BS, others offer both and there are differences in the curricula. As is true with many degrees, the more a student knows about their individual goals the easier it will be to find programs that meet their educational goals (and fit within budget). When my S was researching schools, he wanted to find a CS program where he could dive into artificial intelligence. Additionally, he wanted a program that was also heavy on math and science. Those “wants” led him to focus on schools that offered a BSCS with an AI track. His coursework has included general academic classes (writing, foreign language, etc), school of engineering classes (math, science, engineering topics), Core CS classes (the CS classes common to all), and his desired track classes (machine learning, neural networks, etc). I’m note sure if SW engineering has similar complexities but I would not be surprised if it did. Also, for CS, having ABET certified program is not a prime concern.
Saw that list- just because a school is ABET certified does not mean it is a rigorous school. UW-Platteville, for example, gets the average WI college student while the best instate students go to UW-Madison. Your son needs to look at his overall education first- find schools where his academic peers will be found. He then needs to look at CS majors- as above, courses offered, required, available related to his interests. This includes math as well. Also as stated by others- he will do best where he is most interested and likes what he is doing.
Mom- don’t overthink this. Many options. As already stated consider multiple factors- finances, distance et al as above. Look at your instate options.
My point on the ABET school list was to give OP schools to review for “software engineering” curricula. I agree ABET certification is not needed or even considered in the software industry and individual fit at a school is far more important than getting any one degree vs another.
“Most employers won’t make much of a distinction between the two degrees,”
Maybe not once you get the interview, but if the job description calls for a BS in computer science, the software engineer resume will get weeded out by the screening software.