It can be tough to choose between a career in computer science and a career in computer engineering because computer science and computer engineering are so integral to one another. The distinction most commonly drawn between these disciplines—that computer science is software-focused and computer engineering is hardware-focused—simply isn't accurate. Hardware design and development are part of computer science. Computer engineers often write software that controls the basic functions of their hardware. And many employers aren't aware or don't care that there's a difference between computer science and computer engineering degrees.
Your interests and aptitudes should factor into your decision to either become a computer scientist or become a computer engineer, but there is a lot more to think about. Just because you like coding (or fiddling with computer parts) doesn't mean you'll be happiest in computer science (or computer engineering). Computer science encompasses everything from computational theory to network management to machine learning. Depending on the specialty you choose, you may end up doing abstract work or participating in hardware development. Computer engineering is usually more hands-on than computer science, but it can involve physics, research, and programming. Professionals in both fields contribute to the design, development, manufacture, and optimization of computer-driven technology.
Still not sure where you belong? We can help you decide. In this article, we dig deeper into the difference between computer scientists and computer engineers by covering the following:
It's tricky to draw a hard line between what computer scientists do and what computer engineers do. Some guides state that computer engineers build computers and computer scientists tell computers what to do, but again, that's not accurate. Big picture: computer scientists program and work on operating systems, and computer engineers work with physical components and microchips. Still, both design, code, and test software and use their understanding of computer architecture in their work.
The question 'What is a computer scientist?' has more than one answer. That's because computer scientist isn't one job, but rather a tech discipline encompassing many programming and research roles related to:
There's no such thing as the average day in a computer scientist's life because there's no such thing as an average computer scientist. That said, there are some experiences common to most computer science work.
Computer science professionals typically start their day by checking email and taking stock of the day's priorities if they're working on multiple projects (which they probably are). Then they'll pick a task to focus on, which could be anything from cleaning up code, switching between data sources, or developing a new feature in a software suite. In between tasks, they'll go to meetings—a lot of meetings. Projects in this discipline tend to be collaborative, and it takes back and forth among teams to get things done.
Computer engineers are responsible for researching, designing, developing, manufacturing, and maintaining computer hardware. Most, however, don't do all of those things. One computer engineer might specialize in analog sensor design or circuit board installation. Another might be on a team that develops firmware that controls the most basic functions of hardware. Some computer engineers are specialists and work exclusively with mobile devices, embedded systems, or microprocessors.
Some computer engineers work in roles where they spend the most of their time monitoring computer systems to ensure everything is functioning up to spec. Others design and build computer-based tech in cars, appliances, and communications networks. Still others write software that powers those computer-based systems.
That said, an average day in computer engineering looks a lot like an average day in computer science. There are emails to read and answer, meetings to attend, and project-based work to do. Most computer engineers have multiple tasks on their to-do lists, and prioritization is a part of every day.
There's some overlap between job opportunities for computer science professionals and computer engineers—especially if you look beyond their title. It's telling that most computer engineers work in computer systems design or in the sciences, while most computer scientists work for the federal government... or in computer systems design.
Most computer science careers fall into one of two categories: applied computer science (which uses computer systems to meet practical needs) and theoretical computer science (a research field that explores the limits of computation). There are hundreds of job titles that fall under the computer science umbrella, including:
These computer science professionals protect computer systems, networks, and data against malicious actions, unauthorized access, and accidental breaches. They oversee everything related to computer security for businesses and organizations. Information security managers earn about $117,000.
These senior developers handle the technical side of software development projects. While they are often responsible for coding and testing software, they also play a role in ensuring that designs meet the needs of end-users or organizations. The average principal software engineer earns about $139,000.
Senior product managers oversee every part of the development cycle, from the discovery phase to the creation of a product strategy to launch. They may lead a team of product managers and spend time keeping engineering, marketing, sales, and other departments on track. Senior product managers typically earn about $126,000.
These computer science professionals do less hands-on work than principal software engineers. Instead, they manage teams of developers and related professionals as they build, design, develop, and support new products. The average senior software engineer earns about $118,000.
Senior systems engineers are responsible for maintaining the stability, integrity, and efficiency of in-house or external information systems. The average senior systems engineer earns about $107,000.
It's the software architect's job to turn the development requirements into a plan of action. They also make high-level design choices and ensure that developers adhere to coding standards. A software architect earns about $125,000 on average.
These computer science professionals lead teams of developers across industries and oversee software development and web services projects. Their responsibilities include managing staff. They typically earn about $125,000.
Solutions architects design and manage the solution engineering that goes into solving business challenges. They have to create a technical vision that solves the problem at hand and oversee the development of the resultant applications and services. Most solutions architects earn about $119,000.
Professionals in this information management role develop companies' information management strategies and design, develop, and implement the infrastructure to support those strategies. This is a senior leadership role. A VP of information technology might earn $152,000 or more.
Computer engineers can be found in all industries that use computer-based systems, from aerospace to energy, and work with hardware and the software that controls it. Familiar job titles in computer engineering include:
Computer engineers solve problems with hardware and make hardware better. A computer engineer might spend their days finding ways to incorporate computerized systems into analog machines in industries like construction or designing smaller, more efficient computer components and peripherals. Professionals with this title earn about $96,000, on average.
Systems analysts or system architects assess the efficiency and effectiveness of existing computer systems and processes and look for ways to make them better. An analyst might recommend incorporating new technology or overhauling existing hardware and software. In some cases, analysts oversee the implementation of those recommendations. The average systems analyst earns about $69,000.
These computer engineers develop new electrical systems for computers and computer-based systems. Sometimes called electronics engineers, they work with everything from micro temperature trackers used in medical applications to the most powerful supercomputers. Electrical design engineers commonly earn about $75,000.
Embedded software engineers work with the programs used to control embedded electronic systems in non-computer devices, like cruise control in a car or fire suppression systems. These engineers have to understand how code is used to control low-level reactive hardware. They typically earn about $82,000.
Firmware is a type of specialized software that tells devices how to behave. What makes firmware different from other types of software is that it isn't meant to be changed or updated very often. Professionals in this role typically earn about $86,000.
Hardware engineers work with computer components like processors and circuit boards. Some design and build these components. Others test and improve them. Still others dream up new types of hardware. Most hardware engineers earn about $87,000.
Computer network architects are responsible for designing and building data communication systems. They typically work closely with the CTO to determine how best to meet the data traffic needs of a company or organization. On average, network architects earn about $122,000.
Network engineers monitor and troubleshoot network systems and keep those systems secure by backing up data and implementing security measures. They are responsible for both network configuration and ensuring optimal network operations. They earn about $75,000.
These computer engineers work in research and development, creating new hardware designs. Their responsibilities include developing, testing, and improving computer components. Senior hardware design engineers typically earn about $123,000.
Validation engineers inspect, test, and calibrate computerized systems to ensure they're running as they should. They generally earn about $78,000
Computer scientists out-earn computer engineers. That may be because software is still a much bigger field than hardware. As computerized components are integrated into more devices and automation spreads, the balance may shift.
The salary gulf between these disciplines isn't particularly wide, however. According to the US Bureau of Labor Statistics, computer engineers earn about $117,000, while computer scientist salaries are closer to $123,000.
The discrepancy may be more marked in entry-level computer jobs. Some sources report that early-career computer engineers earn less than $45,000, which is surprising given that computer science bachelor's degree holders have starting salaries higher than those of any other undergraduates. Computer science majors can earn $65,000 or more right out of school.
Computer engineering salaries rise quickly, but not as quickly as salaries in computer science. With a bachelor's degree and a few years of experience, computer engineers earn close to $90,000.Computer scientists with the same credentials often earn upwards of $110,000.
Your lifetime earning potential will probably be higher in computer science, though finding definitive information about salaries in each discipline by experience level is challenging. We know that the highest-paying computer science jobs pay more than the highest-paying jobs in computer engineering. Are there computer engineers who earn more than computer scientists? Yes, plenty of them. Salaries in tech jobs are pretty generous across the board, and experience will factor into your earning potential in both disciplines.
Computer scientists and computer engineers earn more after getting master's degrees. How much more differs. You'll probably earn between $8,000 and $10,000 more than your colleagues with bachelor's degrees after graduating with a Master of Science in Computer Science (MSCS), but that could jump to $15,000 if you enroll in a Master of Science in Computer Engineering (MSCE) program. It's unclear why graduate degrees sometimes have a bigger effect on computer engineer salaries. Still, it may be that CS majors get a smaller boost from advanced degrees because they were already earning more.
The top employers for computer scientists and computer engineers overlap in a big way, possibly because many employers (even in the tech world) treat CS and CE degrees as interchangeable. The discipline you study in college may be less important than the practical experience you bring to the table when you apply for open positions at the following companies:
There are lots of jobs at Adobe for computer scientists who specialize in software engineering, data science, and UX design. Computer engineers with programming chops and experience in AI and machine learning will find opportunities here, too. The highest-paid roles at Adobe include senior computer scientists, senior product manager, and research scientist—all of whom earn more than $150,000. Remote jobs at Adobe include AEM architect and platform data architect.
Working at Amazon is great when you're in tech. Computer science and computer engineering salaries at Amazon are relatively high, with top salaries ranging from $123,000 for data scientists to $145,000 for solutions architects to $170,000 for principal software engineers. Remote positions with Amazon include solutions architect, Android engineer, and senior design verification engineer.
This company appears on plenty of lists of the best companies for employees, and working at Facebook is great when you have a background in computer science. Computer engineers can find a home here if they have experience in full-stack development. The highest-paid roles at Facebook include software engineering manager (with base pay over $200,000) and senior software engineer (which pays almost as much). Remote jobs at Facebook include software engineer and analytics engineer.
Working at HP is great, whether you're in computer science or computer engineering. There are high-paying roles at HP for product management directors, software engineering managers, and solutions architects. Remote jobs at HP include application security engineer and cloud platform developer.
Hulu appears in roundups of the best workplaces for women and diversity. While the average Hulu employee earns about $85,000, tech workers earn a lot more. The highest-paid roles are those for computer scientists, like senior product manager and senior software development lead, but a graduate degree in computer engineering carries as much weight as an MSCS. Remote jobs at Hulu include senior technical program lead, but it's worth noting that most technical jobs at this company are on-site.
Google is still one of the world's most desirable companies to work for in the world. Jobs at Google pay well, the culture is relaxed, and flexible working arrangements are common. Average Google salaries range from about $70,000 to $170,000. The highest-paid roles include senior product manager and research engineer. Remote jobs at Google include cloud platform architect and cloud solution developer.
There are plenty of openings for software engineers, security engineers, and other engineers at LinkedIn, where there's always a need for qualified computer scientists and engineers who can build new products and enhance existing ones. The highest-paid positions at LinkedIn pay close to $170,000 and include senior software engineer and technical program manager. While LinkedIn might not advertise many remote jobs, it's known for its generous flex work policies.
Jobs at Microsoft for tech professionals pay around $150,000. Microsoft employs software engineers and hardware engineers, but the highest-paid positions at Microsoft are typically for computer scientists, who can earn more than $185,000 in roles like principal software development engineer. Remote jobs at Microsoft include senior program manager, software engineer, and cloud architect.
Netflix ranks high among happiest workforce in the US. Jobs at Netflix pay a lot—even by tech world standards. The highest-paid roles at this company are for computer scientists, like senior user interface designer (a position that pays close to $400,000) and front-end developer (with base pay close to $250,000). Remote jobs at Netflix include senior software engineer and senior data engineer.
This company shows up on many lists of the best employers for its benefits, diversity, and cool workplace culture, but that's not all it has to offer. Working at PayPal is also lucrative—super-lucrative, in fact. Salaries at PayPal are higher than average; some of the highest-paid roles (like VP of engineering and senior technology director) pay over $300,000. Remote jobs at PayPal don't pay quite as much, but there are plenty.
SpaceX is one of the companies computer scientists and computer engineers most want to work for. There aren't many remote jobs for tech professionals at this high-profile company, and roles like engineering manager and software engineer don't pay as much here as they do at other companies. STILL, having SpaceX on your resume can be its own reward.
Spotify is another tech company where there are more positions for computer scientists than for computer engineers. There are often open positions for software engineers, backend engineers, and web developers. The highest-paid positions at Spotify include senior software engineer, machine learning engineer, and product manager. Remote jobs at Spotify include backend engineer, site reliability engineers, and senior security engineer.
Working for YouTube means getting all the perks Google is famous for giving its employees. You'll also earn a respectable salary. The highest-paid roles at YouTube include software engineering manager, senior software engineer, and product manager. There are also remote jobs at YouTube for full-stack software developers and machine learning product managers.
Some tech professionals dream of working in Silicon Valley, but many of the companies known for hiring computer science professionals and computer engineers are headquartered elsewhere. Some of the best cities for computer science jobs and computer engineering jobs are:
You can land jobs in computer science and computer engineering with nothing more than experience—if you have a robust enough professional network. Getting a degree in computer science or a degree in computer engineering can help you build that network if you don't have much experience.
This is a tough question to answer definitively. When surveyed, many tech professionals report that they could easily do what they do without a graduate degree. Quite a few are unsure whether their advanced degrees have contributed to their success. And there are plenty of tech companies that don't require that employees in highly technical positions have advanced degrees—or any degrees at all.
So, do graduate degrees matter in the tech industry? Yes, and no. Having an MSCS or an MSCE can give you a competitive edge, but many tech companies value specific skills and experience over degrees. The best thing you can do is look at job listings for the positions you're most interested in to see whether specific employers favor candidates with specific degrees.
Schools differ in their approach to the master's in computer science. Some include programming classes in their curricula, while others assume students have a great deal of experience as programmers. Coursework may be advanced or introductory and is often based on specialization.
At Case Western Reserve University, for instance, students in the Master of Science in Computing and Information Science program choose from among concentrations like algorithms and theory, bioinformatics, security and privacy, and software engineering. Each concentration has a unique curriculum.
MSCS prerequisites vary from school to school. There are computer science master's programs for non-CS majors—on campus and online—but it's not uncommon for the top MSCS programs (including the best MSCS programs at HBCUs) to require incoming students to have a computer science background. Stevens Institute of Technology, which offers an online MSCS, is one highly regarded school that welcomes applications from other disciplines, but applicants must have an "exceptional" academic background.
Many computer science master's degree programs are highly competitive, and getting into a good MSCS program can be tough. Your application will be more attractive if you have an undergraduate degree in computer science or a related subject, plus professional experience in a technical field.
Many colleges and universities want to see proof that MSCS applicants have programming skills and an aptitude for logical reasoning. Be sure you read application guidelines carefully, so you don't overlook unexpected prerequisites. Tulane University of Louisiana, for instance, will only consider applicants currently enrolled in one of its own undergraduate programs.
You can earn a master's degree in computer science in about two years of full-time study, though earning an MSCS can take longer if you choose a part-time program, hybrid, or online program in which most classes are delivered asynchronously. In these programs, earning a master's can take three years, but you can keep working while pursuing an MSCS.
Most MSCS programs cost about $40,000 (not including books and housing), though there are more affordable master's-level comp science programs that cost between $10,000 and $20,000. The cost of an MSCS degree at top colleges and universities can be more than $60,000.
U.S. News and World Report maintains a list of the best computer science schools with graduate-level programs. According to their rankings, the following schools are home to the top computer science master's programs:
Coursework in the typical master's in computer engineering program includes electrical engineering, circuit analysis, and computer design, but some programs also cover computer science concepts. Students in the Master of Engineering in Computer Engineering program at the University of Tulsa, for instance, take courses like:
Most colleges and universities ask MSCE applicants to have a bachelor's degree in electrical or computer engineering. Some will accept students who major in a related field like physics or mathematics, provided they pass prerequisite courses in engineering and computing.
The threshold for entry into MSCE programs can be very high. Computer engineering graduate programs are often small, and colleges and universities receive far more applications than pen spots. What schools want to see more than a particular undergraduate GPA or GRE score is that an applicant's goals are in sync with the engineering department's approach to this discipline.
Most MSCE programs require students to complete 30 credit hours of coursework to be eligible for graduation. This usually takes about two years of full-time study. Part-time computer engineering students may need up to four years to fulfill the requirements. In self-paced hybrid programs, sufficiently motivated students may finish in less than the usual two years.
The cost of a computer engineering master's degree is comparable to a master's degree in computer science. An average MSCE program costs between $30,000 and $40,000. There are more affordable programs at less prestigious schools and more expensive programs at top-tier engineering schools.
U.S. News & World Report also maintain a list of the best schools for computer engineering. These colleges and universities have some of the top master's in computer engineering programs:
The tech sector is thriving and gets bigger every year. The existing skills gap—especially in fields like cyber security—is large and may get bigger as companies find new ways to integrate technology into their operations. Organizations across industries need qualified tech professionals who can do things like write software, manage networks, and find practical applications for emerging technologies. Computer scientists and computer engineers both graduate from their respective master's degree programs into a job market flush with opportunity. Even better, salaries are high in computer-focused roles, and tech jobs are relatively secure.
Tech industry burnout is a very real problem, however. Fat paychecks can't necessarily mitigate the stress caused by long hours, unrealistic expectations, and bosses that expect workers to be available 24/7. There's also the fact that working with computers means keeping up with the near-constant evolution of technology, processes, and consumer demand. Everything you learn in your master's program will someday be obsolete, and if you don't stay current, you will be, too.
If you're leaning toward becoming a computer scientist, you're in luck. Most people work reasonably regular hours in this field but enjoy a degree of flexibility you won't find in marketing or accounting. Whether you're in IT or software development, chances are you'll have some control over your working schedule. You may even be able to work remotely some or all of the time.
Flexible working arrangements aren't the same as part-time working arrangements, however. Computer science professionals often work in roles where they are on call 24/7. When something breaks, you work until it's fixed. When something in development is delayed, you work until it's deployed. When it's crunch time, prepare to put in longer hours than usual and perform under pressure.
Computer engineers are paid well to solve the kinds of problems they enjoy tackling anyway, and you may not need a degree to launch a career in computer engineering provided you have quantifiable experience on a resume. Engineering is fun, and chances are demand for computer engineers will continue to rise as more areas of our lives are automated.
On the other hand, computer engineers deal with a lot of stress. Deadlines loom large, and it's not unusual for managers to ask their engineers to put in unpaid overtime. The field can be more competitive than other branches of computer science because engineers build products. The work you'll do may be primarily driven by market forces instead of your curiosity and passion.
As you consider these pros and cons, keep in mind that many different careers fall under the computer science and computer engineering umbrellas. The pros and cons of working in computer-focused roles differ substantially by position—as do salaries. The market for computer professionals is growing much more quickly than the total job market thanks to an explosion in demand in established fields like cyber security and information systems management, and emerging fields like machine learning automation and robotics. That means there's no right or wrong answer when the question is 'Should I become a computer scientist or a computer engineer?' You can count on having a rewarding and lucrative career, regardless of which discipline you choose.
Questions or feedback? Email email@example.com