29 Behaviors That Will Make You an Unstoppable Programmer
- Maintain An Obnoxious Amount of Sticktoitiveness: This resonated because it has been a challenge for me in the past. I've often been drawn toward jobs or hobbies that I was naturally good at, rather than ones where I had to work long and hard in order to get good. This is a skill that I want to develop, but it also makes me nervous because I'm going to have to push myself when I get frustrated or am not immediately successful. I want to focus on developing habits and patterns that will keep me moving forward even when I'm frustrated and am tempted to quit.
- Acknowledge That Major Decisions Don't Matter That Much: This resonated both because I like the general approach of thinking "big picture" about things, and also because I value using a zen-like state for all things in life. One of the things I like best about myself is my ability to move easily between high- and low-level details and to understand how they are connected. I am excited to practice this skill on something as tangible as code and to get better at seeing the forest through the trees.
- Move Fast and Break Things: This resonated because it's a general life approach that I respect. In my later years, I've worked to become more forgiving of myself and less averse to risk. This has meant learning not to get hung up on the idea of "mistakes" and instead to value all my experiences for what I learned and how I got better. This has been an extremely meaningful mindset change for me, and I hope to continue deepening it and also to apply it to my programming career.
Using Check Lists to Stay Organized
One thing that stood out to me was the note on ensuring that everyone in the surgery room knew one another's name in order to reduce mistakes. This wasn't really part of the discussion of checklists so much as a note on how seemingly immaterial aspects of a process can produce unexpected results, but it also struck me as a comment on how human relationships can make such a difference in focus and success. I know that I often hate using checklists unless it's a process that I feel unfamiliar with. I would much rather rely on my own depth of understanding and human relationships to help ensure I am successful. But I'm happy to use checklists when I'm in the process of learning, or if it's a complex process, or a process that I don't use frequently.
Strengths-Based Development
I love the idea of strengths-based development. The strongest managers I've had have found ways to grow areas where I had potential and were never overly focused on my weaknesses. My experience with my own personal growth has also been that the hardest things to change consciously are my greatest weaknesses, but that if I spend enough time growing in other areas, those weaknesses can often balance themselves out on their own. For example, one of my strengths is that I'm extremely organized, and I'm a great planner. One of my related weaknesses is that I have very strong ideas about how to do things and am not always receptive enough to alternative approaches. I've never been able to force myself to be more open to other ideas, which often just seem flat-out wrong to me. But the more comfortable I become with myself and my abilities, and the better perspective I develop, the less risky it feels to abandon my own ideas and create space for others. One question I'm pondering is how to ensure that I stay open and receptive even when moving into a field where I don't feel secure -- that is, how can I battle this weakness by focusing on my strengths, since I know that that works better for me? Another of my strengths is asking good questions, and I think I can rely on this strength to help me overcome my weakness. I can focus on the opportunity to ask great questions anytime I'm unsure about an alternative approach that is being suggested. I think that expanding on this skill could help me in my new career in software development.