Mark Schoonover wrote:


I was aware of this situation a couple of years ago while talking to a
friend of mine that's a software engineer. When I found out he didn't take C
in college, I've asked him why not. He told me that he didn't need to. Most
of the world was either VB - which he worked every day - or Visual C.
There's no reason to learn C, or assembly these days, but the folks that
work on embedded systems might have something to say!


We certainly do have something to say! :)

First, I'd like to say (not necessarily responding to you, but to the thread in general) that IMEO, there is a difference between a programmer and a software engineer. A programmer is someone that just cranks out code under the direction of the engineers. They do not make decisions about architecture, languages used, core design decisions, write documentation, etc. These are tasks for the software engineer who is supposed to have an intimate knowledge of the systems to be developed for, down to the hardware level (to some extent, but the better the understanding of the hardware, the better the end design should be).

Software engineers *need* to know a variety of languages. They need to know assembly and for embedded systems, they need to know it well. For embedded systems, they need to have an excellent knowledge of the hardware architecture and not just assembly for the platform the system uses.

I've said many times that I think engineers should learn assembly first, followed by higher level languages (I learned BASIC and assembly first, and after assembly all others came fairly easy). Java should be learned as a first step to learning OO concepts, followed by C++. C should be learned as possibly the first high-level language after assembly. VB, C#, and other M$-centric languages should only be learned if a student wants to go down that career path.

My path started with hardware at a very young age. I had an excellent grasp of CPUs, memory, and logic by the time I moved to learning programming. As I became old enough to actually work for a living, and attend college for a degree, I found (and my employers found) that my programming abilities were enhanced because of my knowledge of hardware and assembly.

I have found in more recent years that "Software Engineers" coming out of school really don't know squat as compared to the "old school" engineers who learned Pascal, assembly, etc. the way CS programs used to be taught. As a result the quality of software systems these days suffers greatly resulting in "Beta" software that can really only be considered early alpha.

Don't even get me started on "engineers" that don't know C/C++ and only have experience with C#, VB, and related M$ programming (and even worse, the ones that only learned M$ programming in school).

PGA
--
Paul G. Allen, BSIT/SE
Owner, Sr. Engineer
Random Logic Consulting Services
www.randomlogic.com

--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to