4 ms·
I’ve done the opposite of the author. I was a professional pilot and flight instructor, now I’m a software engineer. As always with these “techie turned pilot”
by jungrothmorton 10y ago
I’ve done the opposite of the author. I was a professional pilot and flight instructor, now I’m a software engineer.
As always with these “techie turned pilot” articles, I disagree with the author’s conclusions. It sounds nice. Don’t let the airplane be a black box, don’t let the computer be a black box. Makes sense. But the prescription is wrong.
As an operator of a system (let’s say a pilot of an airplane) all you need is a basic understanding of how it works. Past that, you create mental models from experience and instruction. If I do A, B happens. If I need more X, do Y.
There also has to be a willingness to deal with change. Pushing the throttle decreases power? Cool. Today is backwards throttle day. Let’s get back to the airport and figure out why.
Being overly obsessed with the “why” can get you in trouble. Small airplanes crash all the time while people are trying to figure out what is wrong, when they should have just gone back and landed. Or, things don’t work the way they expect them to and they just can’t accept that. They crash into the ground being perfectly right.
The author’s own example of spin training disproves his point. I’ve taken about a dozen people through spin training. I can tell you that no amount of understanding an airplane will prepare you for recovering from a spin. Rote memorization (and practice) is exactly what you need. The fact that this memorized procedure is different that the standard procedure doesn’t make it not count.
Take two pilots, one that spent 10 minutes dry drilling the recovery procedures in a parked airplane and one that has written a paper on spin aerodynamics and watch who does a better recovery. I can tell you which airplane I’d rather be in.
There’s another problem with being overly reliant on the “white box” approach. It’s really easy for your mental model to be wrong. All the time I’d have some know-it-all pilot tell me why such-and-such is true. He’d have all this lovely reasoning. I’d listen to it all and then say “Cool. But that’s not what really happens. Want to fly and see?” It’s really easy for some mental model of a system to be missing one little thing that totally flips it around. The airplane never lies.
Now, I deal with the same thing in software. Someone treats the real world operation of software engineering with the academic touch of computer science, and things get all jacked up.
I am NOT against understanding the machine, wether it’s a computer or an airplane. My point is keep your eyes open. Your understanding should serve your operation. Don’t let your own knowledge get in the way of doing what works.
- 0xdeadbeefbabe 10y ago> They crash into the ground being perfectly right. I read of German clerks during WWII who wouldn't surrender till they had finished typing a report. Even though the enemy was already there.
- na85 10y agoI sort-of agree re: spin training. The reason you don't recover with the ailerons is that it actually increases the angle of attack and makes the stall worse. It makes sense if you understand the aerodynamics. But my experience has been that a great deal of pilots actually have only a fairly rudimentary understanding of it. >Programmers want to store and retrieve data using the database interface and then leave it to the ops guys to get it running robustly. Surely the author isn't arguing that Encapsulation is a bad thing? The whole point of an API is that you shouldn't have to sweat the details.
- nathanmarz 10y agoYou seem to be implying that I'm saying understanding how the plane works is more important than practice and memorization of procedures. I don't say that anywhere. What I do say is "You use your tools much more effectively and safely when you understand their implementation." I would not say that someone who blindly operates the airplane based on theory is someone who really understands implementation. Understanding how the plane works goes a long way towards developing the right instincts. For example, understanding the aerodynamics of stalls helped me greatly in developing an instinct for keeping the ailerons neutral and being active on the rudder during recovery. Likewise, understanding the mechanics of carb icing helped me internalize that I should not be surprised if the engine runs even rougher immediately after applying carb heat. Finally, I got skilled at crosswind landings through an iterative process of thinking about the aerodynamics and then adjusting my technique through repeated practice. I address the topic of "theory vs practice" directly when I said in the post "My answer is I advocate for a computer science education for programmers to the same extent I advocate for an aeronautical engineering degree for pilots. The degrees are relevant, useful, and helpful, but on their own do little to make you a good programmer or a good pilot." My previous post about computer science educations addresses this topic as well. [1] [1] http://nathanmarz.com/blog/the-limited-value-of-a-computer-science-education.html http://nathanmarz.com/blog/the-limited-value-of-a-computer-s...