Embedded world...

I hope I’m not coming across as a zealot. I’ve used many operating systems and languages commercially in my time.
My point is simply that using the latest and greatest does not guarantee results. As Mario and Mitchell correctly point out, modern tools unfortunately lead to a loss of knowledge of what is going on under the covers.

At the risk of offending some, we find that engineers (especially electrical or electronic) make better programmers for our needs than IT graduates. That should stir up a hornet’s nest!!

Has this discussion wandered off topic ?

cheers, guys.
Ian

Wow, I’m flabbergasted. I’m not offended, just amazed. On one hand I believe you. On the other hand, my experience with ee engineers is that they 1) generally think they know how to program, and 2) they don’t. This can only mean that today’s crop of IT grads are really hurting. I don’t want to think about how many rescue projects I’ve been brought in on where I was told that the code has just a few bugs, and in the end it had to be almost completely reconstituted. It’s one think to understand how to poke hardware a little to get it going, and another to understand overall structure and how important it is.

I suspect the reason that EE’s seem like better programmers than IT grads is because most of us who are on this site are dealing directly with hardware in our products. And EE’s are used to dealing with hardware in their undergrad programs while IT grads are not.

We were interviewing recently for a junior position and myself and another guy were looking through the stacks of resume’s. He commented that none of them had any hardware experience listed at all and that the couple we had talked to on the phone seemed to have no idea how to deal with hardware. He seemed amazed by that fact. I then joked that he had lost the ability to deal with memory because he’d been programing in C# for the last few years (after spending his first 15 years programming in C/C++ with hardware).

That’s when we both realized that we are indeed forgetting our past thanks to modern software languages/tools. Things like linked lists and memory management aren’t taught anymore because languages like C#/Java have standard libraries and garbage collection. This is a big contributor to the massive code bloat. So we end up with processors that are 5 or 10x as fast but they don’t do that much more because of all the code bloat and/or other programs that are always running (like anti-virus)

Now as far as great system design goes, that comes from experience. You absolutely can’t expect junior programmers, experienced programmers new to a language (ie Java to C++) or experienced programmers new to an environment (le new O/S) to produce a great system design. They just don’t have enough in depth knowledge to make properly informed decisions. So I am not surprised in IanC’s example that the Windows guys who were trying to use new tools/languages to be intellectually challenged failed badly at system design.

Tim

Wow… we get so far… but I’m very enthusiastic reading this comments… I have almost nothing to add, many important things were said, and I agree. I can tell you that in my experience hiring people (I think I’ve interviewed about more than 20 people per year in the last 4 years ago) I learn one thing. You need to look for “experience” (=more expensive). I don’t know if ee programs better than IT people… I work with both where some are good the others are bad (and experience becames absolutely necessary for both).

AH. One more thing for experienced programmers. There is one mortal enemy of a great design:

PARADIGMS - PRECONCEPTIONS

So… Juniors don’t know but they are like sponge. Seniors (think!) they know but (we) are like rocks!!

For this is that I arrive at my house at 8:30 pm every day…

Regards,
JM

Treffpunkt der internationalen Embedded-Community von 26. - 28.02.2013 in Nürnberg. Herzlich willkommen im Messezentrum!