Quote:
Originally Posted by DiapDealer
I remain unconvinced that "good" programming skills can be taught. I just don't think the world's best programmers are products of academia.
|
Maybe programming skills can't be taught, but software engineering concepts certainly can be. A good programmer will, at some point, find out about best practices, and the best way to lay out modules, objects, and functions, but this knowledge is certainly teachable.
That is the one thing I got out of my CS degree.When starting out, I already was at the level of being able to program a (simple) chess program/engine in Pascal/Delphi as well as in C and C++. I also had some rudimentary knowledge of how to keep a complex program manageable, but I didn't know anything about actual software engineering and architecture.
And THAT is the one thing I'm always seeing. The organization and separation of modules, objects, and functions is badly done. Responsibilities are handled badly. It is unacceptable that the behavior of Module B changes, because code in Module A was edited.
This is stuff that can be learned; and that is why, in the Netherlands, many institutions are now teaching Software Engineering instead of hard core Computer Science. Much less math, much less "how the computer works internally", much more engineering.
My degree basically was computer science with the extreme hard core CS ripped out (so no writing a compiler or kernel) and replaced with software engineering.