Who Killed the Software Engineer?
Posted on January 21, 2008 Comments (6)
Computer Science Education: Where Are the Software Engineers of Tomorrow? by Dr. Robert B.K. Dewar and Dr. Edmond Schonberg
1. Mathematics requirements in CS programs are shrinking.
2. The development of programming skills in several languages is giving way to cookbook approaches using large libraries and special-purpose packages.
3. The resulting set of skills is insufficient for today’s software industry (in particular for safety and security purposes) and, unfortunately, matches well what the outsourcing industry can offer. We are training easily replaceable professionals.
As faculty members at New York University for decades, we have regretted the introduction of Java as a first language of instruction for most computer science majors. We have seen how this choice has weakened the formation of our students, as reflected in their performance in systems and architecture courses.
Every programmer must be comfortable with functional programming and with the important notion of referential transparency. Even though most programmers find imperative programming more intuitive, they must recognize that in many contexts that a functional, stateless style is clear, natural, easy to understand, and efficient to boot.
An additional benefit of the practice of Lisp is that the program is written in what amounts to abstract syntax, namely the internal representation that most compilers use between parsing and code generation. Knowing Lisp is thus an excellent preparation for any software work that involves language processing.
This is an excellent article: any CS students or those considering careers as programmers definitely should read this. Also read: Computer Science Education.
Related: A Career in Computer Programming – Programming Grads Meet a Skills Gap in the Real World – Programming Ruby – What you Need to Know to Be a Computer Game Programmer – Hiring Software Developers – What Ails India’s Software Engineers?