by Leon Rosenshein

Always Learning

Things you know, things you know don't know, things you don't know you don't know, and things you know that just ain't so. 4 categories of information. You know the first, and I've talked about the 4th. This is about the 2nd and 3rd. Whether it's starting a new job, joining a new team, getting assigned a bug in code you didn't write or something else, we've all been in the situation where we know enough about the situation to know that we aren't experts in it. I'm not talking about imposter syndrome or Dunning-Kruger. I'm talking about having to do something that's at least new to you, or maybe even something no-one has done before.

Back in the early days of my career I was working for a small aerospace company and we had a turn-based air combat simulation where we would have pilots come in and make inputs for every ¼ second (stick, throttle, switch/buttons, etc) and then the computer would advance time for all players and then it would happen again. We also had a nifty SGI 70-GTX that could do 1024x768 graphics at 30 hz, but it wasn't doing anything. At some point we realized that it took 3-5 minutes for all the inputs and < 1/10th of a second for the turn to play out and that we could do a real-time simulation. My boss told me about this then-new thing called Ethernet that could make computers from different companies talk to each other and asked me to "Make it work". I was fresh out of school, so I said yes. And then the fun started. What's a network? What's double buffering? What's big-endian vs little endian? Then there were the coding questions. And version control. and planning. But the biggest problem I ran into was getting the Ethernet system working. It was a thicknet backbone with vampire taps and drop cables. And it just wouldn't work. Drivers on both sides seemed to work, but I couldn't ping. The heartbeat light on the tap wouldn't come on. I got a flat spot on my forehead from trying things over and over again but nothing worked.

Then I dropped a screwdriver behind the computer and the heartbeat line came on. Huh? Picked up the screwdriver and it went off. Put it back down and the light came on. Then I realized that it was shorting out the outer and inner conductors on the coaxial cable. And that's then the lightbulb came on in my head. I had read something about a `terminating resistor` in a doc somewhere, but there were no details and I forgot about it. But it was kind of important. To make the two conductors into a bus you need the resistor. Got the parts, made it work and then we had a real-time man in the loop simulation.

A bunch of learnings in there. Be confident. Dig in. Study. Try things and keep notes. And probably the biggest one, ask questions. Once I had it working I told my boss what I did and what the problems were. He said he wished I had come to him sooner. I was a mechanical/aerospace engineer. He was a mechanical/electrical engineer. He knew about electrical buses. He could have saved me days and gotten us to success that much sooner.

So try things. You'll learn a lot that way. But don't forget that you have more resources than Google and Stack Overflow. There are folks around you that have a lot of context, and generally speaking, they're happy to help. So try first, then ask a good question