Sam WinslowSam Winslow

Learning hard things

ideas

The more I push myself to succeed as a software engineer and pilot, the more similarities between the two I find. These similarities probably indicate some truths that are common to all hard, technically challenging pursuits. There is no secret sauce.

Expose yourself to people who have really mastered their craft.

Beyond just listening to what they tell you, watch what they do. A really competent person might not be the best at explaining how they do it, so sometimes you might need to drill without fully understanding. Sometimes you'll find yourself mimicing them, and let the knowledge fall into place on its own, in a kinesthetic way. But you must then crystallize your folk-understandings with real data; you do not possess real mastery without one or the other.

When it comes to foundational knowledge, read and consume well-vetted, time-honored inputs.

The books that a thousand people have read and recommended over several decades are better inputs than the latest tutorials on YouTube. When you are comfortable in the fundamentals, one-off tutorials can be helpful for some extremely specific areas. But too many people get caught in "tutorial hell" where they repeatedly try to copy the work of someone who sounds authoritative but is ultimately just Some Guy. Tutorial code is not production code.

Make sure you're not copying the idiosyncracies of one particular teacher. Be highly skeptical (without being an asshole) and compare literally everything they tell you to the foundational knowledge that should support it. If something doesn't seem to line up, drill deeper, and find out where they're coming from or what gaps in your knowledge might explain the discrepancy.

Give yourself a safe space to practice, and explore the limits of that space.

Having guardrails against accidentally doing something really dangerous or in some way earth-shattering is essential. Then you have to trust these guardrails and push yourself to the fullest within them. For leaders, you must create an environment of physical and psychological safety, or else the person you're training will be afraid to push their own boundaries and get better.

Watch the tapes.

The only way you'll know what to work on is if you can reflect on your mistakes objectively. Use the fact that you have more knowledge now than you did before to the advantage of your present self. Don't celebrate failure (there's a lot of this for example in startup media). There is a difference between flailing randomly and iterating toward a better result.

But also don't fixate on your failures to the point of getting demotivated, because that will distract you from doing all of these same steps tomorrow.

Celebrate the wins, and remember always the balance between euphoric incentive-motivation and blissful satiety.

SW