So, professional shaped skills… What’s that. Basically, it’s the form your skills take concerning your expertise in your individual field(s). This form will depend on both depth and broadness. Trying to learn as many things as possible will lead to little depth and a large broadness of skills. The exact opposite leads to an ‘I’ form where you’ve picked up a single domain and you’ve decided to become an expert.
The problem with being a jack of all trades, we can’t justify our opinion on a particular subject, you may be not be in a place to answer that question. Although your opinion may not be value because you’re not expert, I do believe that trying to learn as many things as possible will bring you baggage. This baggage can help form some sort of highly credible hypothesis when you’re asked, let’s say, by a client a particular question such as what should be done in case you’d like to build a website and include the X feature.
Let’s talk about the expert. The expert is the go to guy. He’s the guy you want in your team to be able to quickly build a project from the ground up and see it through. Some problems may occur and because of his/her experience, you will have sound advice when you need to ask the hard questions. Although becoming an expert may seem like the thing to become, I’d advise to think it over again. Becoming an expert in one thing may lead to problem career wise in my honest opinion. You may wake up on morning and feel like you’ve waisted 5, 8 or even 12 years in a field and it doesn’t attract you any longer. You don’t have anything else to fall on.
This brings me to the principal shapes for professional skills. T-shaped skills is when someone would combine some deep expertise on a topic with a broad and more shallow knowledge on things. Pi-shaped skills would be to have two deep expertise and comb-shaped skills one person having multiple set of skills.
In my case, if I were to pick right now the set of skills I’d like to deepen and the rest would be “noise” helping me getting a better all-around software engineer, I would only pick a few. Here’s the list below.
- Artificial intelligence and machine learning
- Functional programming
- Mobile cross-platform development
- Oriented-object architecture/design (OOA/OOD)
- User experience design
Yes some of those skills are far from each other and some are pretty close to each other. Thing is, right now, there perfectly aligned with the set of skills I have / want to have. More than that, I think those 5 fields are large enough to let me bounce on feet whenever I feel the need. I can start projects of my own whenever I’ll feel the need. Bottom line, I may not become the best guy in each of those fields. Nevertheless, I think the challenges those fields will make me face throughout my career will make a better developer.
Which one should people try to aim for ? Try to pick 1 or even 2 skills you’d like to develop in your domain. For someone in software development, I could say you could try with web development and databases and move on to other related subjects once you feel comfortable enough to work juggle with new things. Comb-shaped skills are hard to maintain and it makes sense. You need to spend a lot of time to cultivate them and even more time to maintain them. As you become more and more advanced, you’ll need to read research papers, go to meetups and even conferences to deepen your knowledge.
Right now, the skills I decided to work on may seem hard to maintain. I think we should know our limits and see how much time we can afford to spend on those skills. Since I’ve started my career in software engineering, I’ve been able to see what I’m good at but more importantly, what I’m bad at. With those specifics in mind, I decided on the abilities I want to have in a near/far future. I’ll finish with this: have a broad knowledge to become a better generalist and at least one thing where you are an expert.
Becoming a strong generalist will help you decide what you may like enough to start spending more time in it in order to become a specialist. Don’t forget to have some insights on competitive technology stacks that are out there. Each of them will have their strong/weak points.To work on a project, one would need to be aware of what’s out there to be able to make a wise decision.