It’s interesting to note that two career options that are perceived to be the same, are actually very different. Yes, there are overlapping areas in their functioning and training, but they’re definitely unique. These roles are:
These two roles have overlapping responsibilities and draw information from similar subjects and theories. Currently in 2018, employees in these fields can fulfill similar roles after studies are completed, but with changes in the industry their roles may become more defined.
Let’s see what each is about.
What Roles do They Play?
When you become a software engineer your goals will include finding and generating software that you can use on computers. What will be the most efficient solution that meets the requirements? You’ll use a systematic approach, applying your engineering principles to reach that goal.
Tasks will include:
You can specialize in a sub discipline that uses these basic tasks to reach specific goals, such as:
-Requirements engineering to analyze, specify and validate the requirements of certain software
-Software construction which includes all tasks from programming to testing and then integration & debugging
-Software engineering economics which relates to the role in a business environment
-Games and entertainment such as app development
As part of engineering disciplines, it makes sense that—as with other engineering programs—licensing programs are implemented. This is especially relevant if a software engineer’s work relates to public safety. This is however still under discussion in most countries.
So how does computer science relate to this? One major difference between a scientific and engineering approach is this:
-Scientists mostly discover, test and research new theories
-Engineers work with these theories that have already been proven
In Peter Denning’s words, computer science is about answering the question ‘What can be automated?’.
Here is what you’ll work with when handling computer science courses and responsibilities:
-Learn about data and instruction processing through algorithms
-The storage of this data
-How do computing devices communicate this data?
These scientists are scientist and mathematicians, experts in computation theory & they design computational systems. While their work can include both abstract and concrete knowledge, their focus is on data & finding more effective ways relating to its:
In practical terms this could relate to work as:
-Helping to create databases where data is statistically modeled
-Finding ways that data can be protected and kept authentic
Areas of specialization include:
-Real world application of computer graphics
-Abstract computational complexity theory
-Enhance the industry by developing new coding languages
-Mobile and internet computing
-AI and trying to duplicate human intelligence and making computers that learn
Training and Education
Seeing the differences between training courses may shed light on what each focuses on.
Occasionally software engineering is taught as part of a computer science degree. To meet the market’s needs, some institutions such as IBM offers a tailor made course to provide employees with necessary software engineering skills, appropriate for the company.
Still, at most schools you’ll find separate courses.
While both study directions’ courses can be accredited by ABET, they fall under different departments:
-Computer science relates to the Computing Accreditation Commission
-Software engineering is managed by the Engineering Accreditation Commission
Be careful about how terms are used. Software engineering is often used to refer to many different roles, including computer science, so make sure the course you pick is actually accredited by ABET (Accreditation Board for Engineering and Technology).
The courses are less defined at the moment, because of overlapping of subjects and job responsibilities. In both you’ll learn about interaction between hardware and software, but a focus on hardware development is rarely included. You’ll usually acquire knowledge about software engineering, math and basics of computing.
Each study course has a different approach to projects and outcomes:
-Through a design project a software engineering student must show the necessary skills to apply engineering principles. As with most engineering courses the focus is on finding solutions that work in society.
-A computer science student will face more courses related to theories, algorithms and mathematics. The courses also prepare them for doing research.
During a computer science degree students usually follow courses incorporating:
-Architecture & organization
-Parallel and distributed computing
-Information assurance and security
We’ve mentioned the subjects both courses use, but a software engineer’s will be less abstract, focusing on:
Depending on the university, people may even be allowed to customize their courses—by selecting certain subjects—to match their unique job interests and goals.
A Third Role Player
Another career path that closely links with these is that of computer engineers. They may even share certain responsibilities when employed.
A computer engineer incorporates electrical engineering knowledge, working with parts such as micro processors, but also learns about data and how the physical (electronic) components will communicate it. They also have an understanding of how software relates to hardware.
In a new device, this role player builds the circuits while others write operating systems and apps.
Which option do you pick? The benefit of placing yourself in one of these careers is that currently you’ll find many overlapping responsibilities. You may pick one degree, but enjoy the diverse work options it affords you, because your training will prepare you for many different roles.