A comment on Hacker News is arguing that our self-assessment
quiz for computer scientists is in fact a self-assessment for
computer engineers since computer science is about computation
complexity and not programming. At the same time, a popular
article at the Elegant Code blog is arguing that software
development and traditional engineering are fundamentally
different. Now I am confused because apparently programming is
neither a science and nor an engineering. Then what is it? It
has to be an art. Let me start with a comment on the John
Sonmez’s post on “Why Software Development Will Never be
Engineering.” I think John over estimates engineering.
Engineering is not as structured as he assumes it to be.
Engineers’ analytic models often fail due to reality and a big
chunk of engineering consists of developing solutions in the
absence of analytic models. What John describes as engineering
is closer to science, and I do agree with him that programming
isn’t a science. Scientists, e.g., physicists, study the nat