Learning to program
Okay so I'm a little off topic (home automation) but today Slashdot had one of it's typical rant/misrepresented articles titled: Professors Slam Java As "Damaging" To Students. Despite the fact that the title of the article misrepresented the article a number of absurd comments were made (like saying that HTML was programming, yipes! Where's my concrete clue bat!) and that this language was better than that language. Of course there were a few people who made valid points such as a language is a teaching tool and that the concepts were the point of the class. The teaching of a language was secondary to the concepts but still important. This I agree with 100%. Take a look at the 'Numerical Recipes' books on Amazon. There's Fortran, C, C++ and others. The first language I learned as an engineering student was BASIC on a PDP-11 (I was not being taught to be a programmer as much as using the computer as a tool). Later I used BASIC to learn assembly language on my Atari 800xl. Later I learned C and from there I've had no problems learning various other computer languages. What I carry over from one language to another are things like linked lists, sorting algorithms, the useful theory. I can create queues in assemble language, Perl or Java and that OOP stuff actually makes it a little easier to use (once you understand the concepts)! That's what is supposed to be taught at the universities. Someone made a good point that many universities are turning into training schools (they are not teach us to think). Other posters showed their lack of knowledge by stating the majority of the programming done today is GUI or database or that Mainframes are not relevant anymore that they're just legacy systems. It is my understanding that the largest market (in term ! of numbe rs) is the micro-controller market, embedded programming. Not much room for a GUI or command line in 128 bytes of ram though larger embedded systems are front ended by thing like an embedded Linux, Windows or web based GUI. Many auto manufacturers use Windows as the user interface to the controls. The control of the auto is still done by another embedded real time OS (for lack of a better name). The reality is that the truth lies somewhere in between. People still need to learn the basics but then need to learn the concepts and the ability to think. Maybe that's why a Master's degree is so valuable. To earn a Master's degree means that you've done more than trained to be a programmer or engineer. It means that you've learned to think. Hmm, I've got to get me one of those (Master's degrees).