Zach Janicki
Aug 27, 2017 · 2 min read

Computer Science is not an engineering discipline; it is a science discipline. This implies a few important ideas about the software development world as an entity. But first, one of the common rebuttals to this assessment would simply be that most software engineering jobs require a computer science degree, and so therefore computer science == software engineering and because software engineering is (by name) an engineering discipline, computer science must be an engineering discipline. This is not correct. Computer science is to software engineering as physics is to mechanical engineering or as chemistry is to chemical engineering in that it provides the underlying theory or knowledge underneath what becomes a real world concept. Computer Science deals with mathematical proofs, theories, and conceptual ideas about different ways to compute problems.

The greatest implication to this conclusion is that new software engineers, at least those with computer science degrees, are not engineers when they begin their first job or internship. This means that the men and women who are responsible for creating the world technological infrastructure, this task which is certainly a real engineering challenge and no longer a theoretical idea or a concrete proof, have to be trained to apply their knowledge in a way that positively affects the real world. Some of these new engineers are working on simple web applications, fun mobile apps, or other small and unimportant projects, but others are working for vehicle manufacturers, defense contractors, or government agencies, and the programs these engineers write have real world effects on real people. The Atlantic article “Programmers: Stop Calling Yourself Engineers” completely misses the mark in positing that the work programmers do cannot be called engineering because it is not subject to rigorous oversight and regulation. Try telling NASA that it does not subject it’s software engineers to intense standards without being laughed out of Houston. New engineers that work on projects with real life consequences are engineers even if they are not prepared or experienced, but because they are coming from a science background they understand the value of experimentation and testing, and they understand the body of knowledge which powers the field of software engineering.

Computer science, like other sciences and mathematics, is a subject less focused on practical application and more heavily focused on learning to think about problems in a certain manner. Consider a recent college graduate who studied mathematics or physics, this individual is qualified to go to grad school to become a mathematician or physicist, but he or she could also work in finance. The physics graduate could become an engineer with simple accreditation that they are quite prepared to obtain. The computer scientist is also poised to work in many different fields or disciplines (finance, data science, software engineering, etc…) unlike the civil or chemical engineering student who is relegated to designed bridges or pipes for their career. This is not to slander these disciplines, it is merely to point out that they provide a concentrated body of knowledge in one field rather than the broad problem solving ability gained by the computer science, mathematics, or physics student.

)