Become a pi-shaped developer
A T-shaped person is someone who has deep expertise in a single topic, but also broad general knowledge.
T-shaped skills are a compromise between being a specialist and a generalist. It's considered a great way to grow.
But when you look at a typical learning curve, you can see a problem:
After the initial difficult period, we see a time of rapid growth. For a few first years as a developer, you progress really fast (and so is your salary). As you know more, your learning speeds up and you feel the growth month-by-month.
But then the progress slows down as you reach a certain level of expertise. It's the plateau phase. Getting 20% better in the steep growth phase takes days or weeks. In the plateau phase it can take years. That's the time when the motivation is low and the risk of feeling burned out is high.
Then there's the problem of competition. For any skill and any niche, the differences are small at the top. Because progress is really slow there, there's a lot of people with similar skill levels and it's tough to stand out based on knowledge/skill only.
That's a problem for many software developers. They only specialise in technical skills and they quickly plateau in their capability to progress and increase the value they produce.
To be competitive, you don't have to be the best at what you do. Our jobs are complex. Mastering a single skill is just not enough. A second area of expertise can quickly get you ahead of the competition.
How many developers do you know who are great in both technical skills and communication? Or backend skills combined with UX design? Deep expertise with mobile development and real-life experience in running a business?
Once again: to be competitive, you don't have to be the best at what you do. That extra 5% at the expert level might be less valuable than a complementary skill you have.
Bonus point when it comes to motivation: in the second area of expertise, you can take advantage of that rapid growth period.
Looking for valuable skills
How to find skills worth learning? Look for:
- combination of skills rarely found in a single person
- skills that complement each other nicely
- skills missing in your organisation / community / field of expertise
- things that naturally interest you
Look for problems around you to find inspiration. For example, if you notice that your team’s communication skills are low, becoming a better communicator might be a great idea. Look for things that will make you stand out from the crowd.
Some of the skills worth specialising in as a developer:
- Writing / presentation skills / mentoring
- Sketching, conveying ideas visually
- General business knowledge
- UI/UX design
- Sales / marketing
- Psychology, cognitive sciences
- Complexity Thinking / Systems Thinking
- Knowledge about the specific business domain you're working with
- Front-end (JS, Android, iOS) for backend developers; Backend for front-end developers
How will you stand out? Do you think getting 5% better in your specialisation will make a big difference? Is that 5% really the best use of your time?
Instead, find a skill that could improve the value of your work by 50% or 100%. And then learn that.
- Range by David Epstein is a great read on the power of generalists. It challenges the theory that the only way to achieve success is to spend a lot of time specialising in a single field.