
Don’t confuse Computer Science with Software Engineering
One thing we come across quite often when discussing our ideas about modern tech education is the confusion between computer science and software engineering.
Whether we look at studies describing the digital skill shortage in the workforce and the consequences for our economy, at job descriptions from employers in search of ICT professionals or at politicians demanding more and better educational programs aimed at digital competences – in most cases there is no clear definition of the skills profile in question. ICT Professionals, Developers, Programmers, Software Engineers, Computer Scientists – all too often are they used as synonyms.
Computer Science vs. Software Engineering
If Europe needs 825.000 ICT professionals until 2020 , does it mean everybody should study computer science?
Of course not.
Computer science is about taking complex problems and deriving a solution from maths, science and computational theory. David Budden in “Degrees Demystified”
Computer Scientists are first and foremost scientists. They possess a deep knowledge of the theoretical foundations in mathematics and information science and can develop complex algorithms and advance scientific research. They operate in a world of rigorous analyses, clearly defined concepts and proven facts.
The digital skills in demand as described by employers, labour market studies and politicians are of a different kind. They involve the ability to interact with human beings and to create easy to use software solutions for real-world problems with limited resources in a highly unreliable and dynamically changing environment.
The difference between Computer Science and Software Engineering
David Budden describes the difference in his analysis as follows:
Where computer science is about taking complex problems and deriving a solution from mathematics, science and computational theory, software engineering is very much focused around designing, developing and documenting beautiful, complete, user-friendly software.
Chuck Connell uses the following analogy in his article “ Software Engineering ≠ Computer Science “:
Imagine a brilliant structural engineer who is the world’s expert on building materials, stress and strain, load distributions, wind shear, earthquake forces, etc. Architects in every country keep this person on their speed-dial for every design and construction project. Would this mythical structural engineer necessarily be good at designing the buildings he or she is analysing? Not at all. Our structural engineer might be lousy at talking to clients, unable to design spaces that people like to inhabit, dull at imagining solutions to new problems, and boring aesthetically. Structural engineering is useful to physical architects, but is not enough for good design. Successful architecture includes creativity, vision, multi-disciplinary thinking, and humanity.
As does successful software engineering.
Why is this distinction so important?
- Because it helps to choose a study program that fits one’s abilities: Many have what it takes to become a successful software developer, but lack the mathematical interest or ability to succeed in computer science. We cannot afford to discourage these young talents from choosing a career in software engineering, especially because – as Sarah Mei lays out in her article “ Programming is not math ”: “Learning to program is more like learning a new language than it is like doing maths problems. And the experience of programming today, in industry, is more about language than it is about maths.”
- Because it helps to choose a study program that meets expectations: Starting computer science studies to become a software developer is probably going to be disappointing because Computer Science is more a “degree in applied mathematics” than a “degree where you learn how to code”, as David Budden puts it. The dropout rates in computer science programs (at some German universities as high as 40 %) are a depressing monument to this confusion.
- Because it helps politicians and institutions to identify the approaches and instruments that improve tech education and contribute to closing the digital skills gap.
- Because it helps employers to better understand where to look for future employees that support their growth and successfully drive the digital transformation.
- Because it helps us understand how to design a study program that produces graduates with competence profiles that enable them to become successful software developers and that meet the demands of future employers.
Software engineering is very much focused around designing, developing and documenting beautiful, complete, user-friendly software. David Budden in “Degrees Demystified”
Computer Science or Software Engineering: Which is better?
We are not trying to diminish the importance of computer science as a discipline or computer scientists as a driving force of digital innovation and advancement in scientific research. But the vast majority of the 800.000 digital professionals missing in the European labour market in the year 2020 do not have the competence profile of a computer science major. They need to be creative problem solvers with communication and soft skills and the ability to utilize scientific innovations to make a difference in real life.
Computer Science degree in Germany: strong in theory but lacking practical relevance?
A note about Germany: While the education system in English-speaking countries at least offers the distinction between computer science and software engineering, the German education system almost exclusively talks about “Informatik” (information science) meaning the science of systematic information processing. There are variations like “Angewandte Informatik” (applied information science), “Technische Informatik” (technical information science) or “Medieninformatik” (media information science), but the starting point of any discussion in this field is Informatik. Due to a strong dual education system (combining an apprenticeship in a company with vocational training at a vocational school) the role of German universities was traditionally focussed on scientific education while looking down on the idea of teaching hands-on knowledge and skills with practical relevance with regard to future employers. As a consequence, the need for a software engineering study program as alternative to information science is even greater in Germany (as this commentator elaborates ).
In our next post, we will take a look at the reaction of the education industry to the existing demand for software engineers: the staggering amount and perceived success of coding boot camps .
Study at CODE: Bachelor of Arts in Software Engineering
At CODE University of Applied Sciences in Berlin, we offer a Bachelor of Science in Software Engineering designed to prepare you for a successful career in the dynamic IT industry. Our six-semester program, taught entirely in English, emphasizes a project-based learning approach that integrates real-world applications with theoretical knowledge.
If you're passionate about software development and eager to learn in an environment that values curiosity and practical experience, CODE is the place for you. Our admissions process is designed to identify driven and talented individuals ready to make a difference in the tech world. We are currently accepting applications for the upcoming academic year. Apply now to start your journey with us.
Top Jobs for Software Engineering Graduates
Graduates of our Software Engineering program are well-equipped to enter various roles in the tech industry, including:
- Junior Software Engineer: Assist in developing, testing, and maintaining software applications under the guidance of senior engineers.
- Senior Software Engineer: Lead the design and development of complex systems, ensuring code quality and providing technical leadership.
- Backend Engineer: Focus on server-side logic, database management, and integration of third-party services.
- Frontend Engineer: Develop user interfaces using HTML, CSS, JavaScript, and related frameworks to create responsive and interactive web pages.
- Director of Engineering: Oversee multiple engineering teams, define engineering strategies, and ensure alignment with the company’s vision and goals.
Computer Scientist vs. Software Engineer: Salary and career opportunities compared
When comparing Computer Science versus Software Engineering, salary and career opportunities are often key factors in deciding which path to pursue. Generally, both fields offer lucrative prospects, but the specifics can vary. Software Engineers tend to earn higher starting salaries due to the demand for practical coding skills and the need for specialized expertise in designing and maintaining software systems. Computer Science graduates, on the other hand, may have a broader range of roles available to them, including research positions, data analysis, and algorithm development, which can lead to diverse career opportunities.
Over time, both fields offer significant growth potential, with salaries increasing as professionals gain experience and expertise. However, the direction you choose largely depends on whether you are more interested in hands-on software development or the theoretical and mathematical foundations of computing.