Advertisement

the importance of understanding theory?

Started by December 02, 2013 12:29 AM
21 comments, last by capn_midnight 10 years, 11 months ago

Several years back, I had the task of writing code for a rotary encoder in a microprocessors class. For sophomores, this was a somewhat non-trivial application. If you're unaware of how a rotary encoder works, it outputs a series of gray codes between "clicks" of the knob. This means you need to handle a series of different inputs, and be able to "unwind" if the user only half turns it and lets it turn back. Most experienced programmers will recognize this as an obvious application of a state machine, and I was fortunate to do so. Others in my class were less so, and spent hours trying to think of a hackneyed scheme for handling the input. After a few days, pretty much everyone had a basic switch-statement state machine.

IMO, the difference between knowing the theory and not knowing the theory is that the former tends to make fewer mistakes in the trailblazing process.

I prefer to know the theory or spirit of everything. As I learn new features, I can extrapolate how they work without knowing every detail.

Know in the overarching theme of a thing amplifies your intuition and flattens the learning curve a bit.

You know a thing before you know you do and that process branches in all areas of life.

Advertisement

The more applied mathematics I learn (linear algebra, calculus, statistics), the more I wish I knew more applied math.

Here's the thing. Some day you're going to be asked to do something WRONG, in either sense of the word (invalid or immoral). You're going to be told to "just do it". If you don't know why it's wrong, you might "just do it". And then someone gets away with a crime, or someone gets hurt, or someone gets fired (maybe you!).

I was told once that, to fix an apparent problem with a industrial equipment simulation, to "just add a 5lbs fudge factor". "Just do it, we don't have time to figure out the real problem" I was told. I didn't because I knew it was more complex than just adding 5lbs to everything. I dug my feet in (because who else were they going to get to do it?) and I figured out the real issue. It was a proportional problem and adding 5lbs wasn't going to work for the limits of the equipment, it would have failed catastrophically.

Unless you're one of the lucky 0.1% that ends up working at Google, you're going to end up working with a bunch of idiots. You need to be the smartest person in the room, or else you're going to be party to a lot of stupid shit. And it doesn't matter if you do end up working at Google, smart people still do stupid things and need their shit called out from time to time.

[Formerly "capn_midnight". See some of my projects. Find me on twitter tumblr G+ Github.]

This topic is closed to new replies.

Advertisement