How can I become faster?
I recently saw a request that looked like this in a conversation:
I am a slow programmer. How can I become faster?
This is a question I sometimes ask myself, and here are some questions that I can use that usually help me.
- What makes me want to be faster? Even to the point of questionning the usefulness of me becoming faster.
- What would becoming faster help me accomplish?
- What do I observe that makes me think that I am slow? Slow compared to what?
- What would “fast” look like?
- Beware speed vs. the impression of speed. Example: mixing all concerns at once and going for the perfect design that addresses everything on the first try might feel faster, to the point. But in reality my brain will switch focus on all those concerns all the time, and although it might give the impression of speed, this is usually a big slowdown. Separating concerns usually helps, might feel slower, but is faster.
- Did I observe someone that is objectively faster than me? How does he or she do? What is different from what I do?
- Can I pair with people that I feel are "better" than me?
- Can I observe in real time how they break up the work?
- How do they understand the problem?
- How do they choose options?
- What do they choose not to do?
- Do they draw a lot?
- Or take notes?
- Or know what tests to write?
- How do they know that their code works?
- Does the right thing?
- How do they know that it's good enough?
- How do they know that this small bit can go to production now?
- How did they learn how to do that?
- Etc., a lot more could go here...
- I might find that different people have different ways to address the questions above, what works for me?
- I might have improvement ideas of my own, how can I test them?
- This is a path and not a destination. When I can, I try to enjoy every little progress rather than being frustrated not to be "there" already.
- If I can also, I try to find company, people that take a similar path.
I hope they can help you too.