Some years ago my son was tasked with a high school assignment to build a circuit to re-encode a bank of switches. The teacher expected a simple diode-based design, but I suggested tossing an embedded computer in, so if the problem changed the solution would be trivial.
Also, of course, the thought of tweaking the instructor was appealing. When Graham got the thing working, the flash of excitement in his eye was a tremendous reward. He built the project, he wrote a little code. And it worked.
That’s exactly why I became an engineer.
Engineering is the art of solving problems. “In order to make a machine that does X, I have to figure out how to design some hardware and firmware that does Y.” Puzzling out these solutions is both an intellectual challenge and a game. Am I smart enough to do this? What will I have to invent?
Problem solving is its own reward. But it’s not enough, for me at least. I want to make something that works. Not push paper, not write proposals, not document someone else’s creation, though all of those tasks are an inescapable and wearisome part of this profession.
But I want the thrill of seeing the motor turn, the LEDs blink, or a message marqueeing across the display. No doubt that “I made that work” satisfaction is rooted somewhere in the same brain center that rewards gamblers and addicts.
A lot of developers work on large projects that take years of effort. More power to them, but I could never do that. I want to see something work, relatively soon. Invent solutions, see them implemented, and move on to the next project. You can have those big government projects that consume entire careers; the thought of being caught in that mill horrifies me. Thankfully others are more patient and will see these efforts through.
I sort of fell into the embedded space as it didn’t exist in the late 60s when I was in high school. An obsessive interest in electronics morphed into ham radio, but the important thing to me was always building something. First, learn the material, absolutely. But do start with just an infancy of knowledge and build a small project to get feedback, for fun, and to get a visceral learning that does not come from books.
Links: http://www.embedded.com/columns/embeddedpulse/200000283


