I always look forward to Jonathan's podcast, and rarely find myself critical, but I found this episode somewhat unclear and unfocused. I'd like to help clarify what I think Jonathan wanted to promote.
- Map your skill/knowledge strengths/weaknesses to the job's required core/ancillary skills/knowledge.
- Improve your weaknesses that are in the job's core.
- Improve your strengths that are in the job's core.
- Don't deprecate yourself for weaknesses and mistakes.
As developers, workers, and people, we're faced with deciding whether to improve our weaknesses or our strengths, and which ones. We need to do both. Focusing on only one or the other is unlikely to lead to success. There's science supporting that only repeating what you're good at doesn't lead to improvement. However, only working on what you're not good at leads to atrophy of your strengths.
I'm a martial artist. If my left side kicks aren't as good as my right side kicks, then I need to work harder at my left ones. There's an implicit goal of parity. However, we sometimes forget (as students and teachers) that the purpose of that goal is improvement, not achievement. It's OK if my left side kicks are never as good as my right ones. It's also OK if I work hard to make my right kicks amazing.
But--to continue the analogy--should I focus on being able to side kick to someone's head who is over six feet tall and hold that kick in place? Some kata competition champions can do this. It's their strength. It's not mine. The short answer is "no," because this is important in the context of competition, but not in my interest which is daily health and self-defense.
With that context, let's go back to the podcast and pull the benefit from it. What's a way to help clarify which job skills we should improve?
Create two lists. One is your skill/knowledge strengths and weaknesses. The other is the job's required core and ancillary skills/knowledge.
( * Starred items are ones I'm naturally good at.)
|System Organization*||Customer requirements gathering|
|Understanding Customers' Needs*||REST-ful APIs|
|Proven scalability experience||Documentation|
To meet the job's needs, we should always work on the core skills. Give these lists, here's what I'd recommend the fictitious developer focus on improving:
- C#, keep improving
- Customer needs, leverage your strength into becoming an expert
- WebApi, keep improving
- Scalable architecture, work hard at improving this weakness
And don't spend much time on:
- System organization, Tenacity, or Documentation, you're already good enough
- Personnel management
I really think this is the essence of what Jonathan was trying to say, but--unusually--the message got lost on a first listen. I'd say a few lesser episodes out of almost seven hundred is pretty darn good.