Is software engineering itself an area

When we talk to others about our idea of ​​changing the world of education in the field of digital professions, we repeatedly stumble across a problem: Far too often, discussions fail to distinguish between IT and software development.

Regardless of whether it is in studies on the shortage of digital skilled workers, in corresponding job advertisements or when politicians are calling for better educational programs to promote digital skills: in most cases there is no precise definition of the skills involved. Descriptions and terms such as IT specialist, software developer, programmer, computer scientist and computer scientist are often used synonymously and thus lumped together.

If Europe needs 820,000 IT professionals by 2020, does that mean everyone should start studying computer science now?

Certainly not.

Computer science is about taking complex problems and deriving a solution from math, science and computational theory.David Budden in "Degrees Demystified"

Computer scientists are first and foremost scientists. You will acquire a sound understanding of the theoretical foundations of mathematics and information sciences, you will be able to develop complex algorithms and advance scientific research. You work in a world that consists of precise analyzes, clearly defined concepts and reliable facts.

However, the digital skills that are presented in labor market studies, sought in job advertisements and required in political statements are usually different. They include the ability to communicate with other people and to create meaningful software solutions for practical problems, all with limited resources in an uncertain and dynamically changing world.

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 analyzing? 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.

The same applies to software development.

Why is this distinction so important?

  1. Because it helps prospective students choose a course that suits their skills: Many have what it takes to become successful software developers, but may not have the skills necessary to complete a mathematically demanding degree in computer science. We cannot afford to discourage many young talents in this way from embarking on a career as a software developer. Sarah Mei writes about this in her article “Programming is not math”: “Learning to program is more like learning a new language than it is like doing math problems. And the experience of programming today, in industry, is more about language than it is about math. "
  2. Because it is necessary for prospective students to choose a course that meets their expectations: If you start studying computer science with the aim of becoming a good software developer, there is a high probability that you will be disappointed. Computer science is just not a degree in which you learn to program, as David Budden describes it. The rate of dropouts in IT (almost 40% at some German universities) are the sad result of these disappointed expectations.
  3. Because they are politicians and committed institutions shows which approaches and instruments can make a meaningful contribution to improving the training of digital skills and closing the qualification gap in this area.
  4. Because it helps employersto find the right employees to help shape the digital transformation successfully.
  5. Because we only understand how a course of study has to be designed that equips its graduates with the skills that enable them to become successful software developers and meet the requirements of their future employers.

Software engineering is very much focused around designing, developing and documenting beautiful, complete, user-friendly software.David Budden in "Degrees Demystified"

Our goal is not to diminish the importance of computer science as a scientific discipline or the role of its graduates as the driving force behind digital innovation and scientific progress. But the vast majority of the 800,000 missing digital specialists do not need the skills profile of a computer scientist. We are looking for creative problem solvers with communication and social skills and the ability to apply scientific innovations in practice.

While the education system in the English-speaking countries at least enables the distinction between computer science and software development (software engineering), in Germany we speak almost exclusively of computer science, the science of the systematic processing of information. There are variants such as "Applied Computer Science", "Technical Computer Science" or "Media Computer Science", but the starting point of this discussion is and remains the field of computer science. Since there is a well-established dual training system in the German educational landscape, German universities have traditionally concentrated on academic training and viewed the imparting of practical knowledge and application-oriented skills in the interests of future employers rather disparagingly. For this reason, the need for an application-oriented software development course as an alternative to computer science is particularly great in Germany (as this commentary also explains).

In our next post, we'll take a look at how education providers are responding to the current demand for software developers: the staggering mass and apparent success of coding bootcamps.