When you're a doctor, it's vital to learn the fundamentals of different areas of medicine.
Whereas as a developer, you can also just focus on one thing(let's say frontend development) and pick up other areas (backend, databases) on the go, based on your needs.
Conversely, being good at a single thing will give you the necessary mental tools to get good at other things too. One of the biggest hurdles beginners face is not knowing how to push through "the gap" and reach a level of competence where they can actually produce work that aligns with their vision. Being able to draw on the memory of already having done that in the past can be very powerful, and can help you acquire new skills more quickly and with more tenacity than others.
It's a bit cliched, but I agree with a T shaped approach. One of my mentors told me that I was wearing too many hats, and I should focus on a single topic and develop deep expertise to advance my career. On the other hand, in a world where technologies get obsolete faster than you can master them, I wouldn't feel safe without a broad base of knowledge.
To be honest, this is exactly what my manager told me. It's also when I was introduced to the T-shaped approach. As a dev, I want to learn multiple subjects, but I've found that mainly focusing on one thing while also educating myself in others is a good approach.
I feel that having a specialism is more a more marketable headline early on in your career (e.g. I am a React Developer). As you become more senior the expectation is for you to take on additional roles such as hiring, coaching and mentoring. This is very hard if you have focused to much on one area and not taken a more general view.
But this is all about what you want from your career. Some people strive for leadership roles (CTO/Tech Lead) and some people prefer to write code (Senior Developer). Both careers are valid options.
For new grads you are probably best off being a generalist in some broad area you’re most interested in (web, data, mobile, low-latency/systems, games) as 1) most places you’ll interview will just ask you the standard DS/algo questions, and 2) you don’t know exactly what you want to do yet. Don’t fret about the litany of skills in job listings, as they are usually overly specific.
With some experience, you may choose to specialize but if you want to go the management route, you’ll have a very interdisciplinary and generalist job.
10 comments
[ 4.1 ms ] story [ 29.4 ms ] threadWhen you're a doctor, it's vital to learn the fundamentals of different areas of medicine.
Whereas as a developer, you can also just focus on one thing(let's say frontend development) and pick up other areas (backend, databases) on the go, based on your needs.
A broad base will allow you to re-train much easier, plus draw parallelisms from your areas of expertise into new areas.
But this is all about what you want from your career. Some people strive for leadership roles (CTO/Tech Lead) and some people prefer to write code (Senior Developer). Both careers are valid options.
With some experience, you may choose to specialize but if you want to go the management route, you’ll have a very interdisciplinary and generalist job.
Source: FAANG engineer from Tier 1 school