From programming to software engineering