For novel ideas about building embedded systems (both hardware and firmware), join the 35,000 engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. Click here to subscribe.
In my experience some engineers are plodders. They just don't get it. Sure, they can crank some C or design a bit of logic but their creations are leaden, devoid of style, crude, slow and just not elegant.
Then there are the superstars, those few who establish a mind-meld with the code or electronics. Have you ever worked with one? When the system doesn't work and mysterious bugs baffle all of our efforts, up comes the guru who licks his finger and touches a node and immediately discovers the problem. We feel like idiots; he struts off in glory.
Who are these guys, anyway? An astonishing number of them have "unusual" academic credentials. Take my friend Don. He went off to college at age 18, for the first time leaving his West Virginia home behind. A scholarship program lined his pockets with cash, enough to pay for tuition, room, and board for a full year. Cash - not a safer University credit of some sort.
A semester later he was out, expelled for non-payment of all fees and total academic failure, with an Animal House GPA of exactly 0.0. The cash funded parties; the late nights interfered with classes. His one chance at a sheepskin collapsed, doomed by the teenage immaturity that all of us muddle through, with varying degrees of success.
Today he's a successful engineer. He managed to apprentice himself to a startup, and then to parley that job into others where his skills showed through, and where enlightened bosses valued his design flair despite the handicap of no degree.
Then there's my dad who breezed through MIT on a full scholarship. Graduating with a feeling that his prestigious degree made him oh-so-very special he started working at Grumman in 1950 as a mechanical engineer working on aircraft. To his shock and horror the company put him on the production line for six months, riveting airplanes together. This outfit put all new engineers in production to teach them the difference between theory and practicality. He came out of it with a new appreciation for what works, and for the problems associated with manufacturing.
What an enlightened way to introduce new graduates to the harsh realities of the physical world! A grizzled old machinist, hearing of my engineering desires while I was in high school, took me aside and warned me never to be like "those" engineers who designed stuff that couldn't be built.
Experience is a critical part of the engineering education, one that's pretty much impossible to impart in the environment of a university. You really don't know much about programming till you've completely hosed a 10,000 line project, and you know little about hardware till you've designed, built, and somehow troubleshot a complex board. We're still much like the blacksmith of old, who started his career as an apprentice, and who ends it working with apprentices, training them over the truth of a hot fire. Book learning is very important, but in the end we're paid for what we can do.
In my career I've worked with lots of engineers, most with sheepskins, but many without. Both groups have had winners and losers. The non-degreed folks, though, generally come up a very different path, earning their "engineering" title only after years as a technician. This career path has a tremendous amount of value, as it's tempered in the forge of hands-on experience, far more than gathered in a handful of school lab classes.
Technicians are masters of making things. They are expert solderers - something far too few engineers ever master. A good tech can burn a PAL, assemble a board, and use a milling machine. The best - those bound for an engineering career - are wonderfully adept troubleshooters, masters of the scope. Since technicians spend their lives daily working intimately with circuits, some develop an uncanny understanding of electronic behavior.
In college we learn theory at the expense of practical things. Yet I recently surveyed several graduate engineers and found none could integrate a simple function. None remembered much about the transfer function of a transistor. What happened to all of that hard-learned theory?
Over the years I've hired many engineers with and without their bachelors, and have had some wonderful experiences with very smart, very hard working people who became engineers by the force of their will. Oddly, some of the best firmware folks I've worked with have degrees, but in English! Perhaps clear expression of ideas is universal, whether the language is English or C.
We're in a very young field, where a bit of the anarchy of the wild west still reigns. More so than in other professions we're judged on our ability and our performance. If you can crank working designs out at warp speed, then who cares what your scholastic record shows?