If you haven’t read Successful Developer Career Strategies yet, do so right now! Cory House, Troy Hunt, Scott Allen, Julie Lerman, Oren Eini, Mark Seemann and Kyle Simpson answer questions on Career Strategy, breadth vs depth, and the skill and craft of software development.
Cory and I agreed on a very short conclusion for it. I kept my own commentary and personal opinions to a minimum on Outlier Developer to ensure I didn’t detracted from the words of wisdom from the experts. However I would like to share my own views here.
It is important to have some exposure to a few different languages, not for the purposes of using all of them in your day to day work, but to expand your understanding of what is possible to achieve in software development, and what the various trade-offs are.
2. Both areas are huge, especially in you consider the associated frameworks. Just keeping track of all of the new JS frameworks arriving is a challenge, and the .NET framework contains around 40,000 classes.
3. If you’re doing both, you only have half as much time to devote to either of them.
What I think sets him apart from so many others is his communication skills. Of course his technical knowledge is also very good, but what is even better is the knack he has for being able to eloquently express ideas and concepts.
I don’t say this to put Cory on any sort of pedestal – he is the first to admit that he’s just an ordinary guy. In fact I was originally going to call it “All-Star Developer Q&A” but Cory didn’t feel comfortable with it, and one of our special guests came forward to suggest the new title which emphasizes the topic rather than the people. This taught me that self publicity should always be a by-product of good coverage of a topic, not vice versa.
No, what I mean to point out is you can always make excuses about how things are more difficult for you because of various circumstances, or you can see the opportunities out there and cease them.
We all come across new discoveries in our work all the time. In order to get recognition for that, we just need to share them. If like me you work as a full stack developer, it means there is always enough variety, and enough challenges, to keep things interesting for you. Even if you specialize in a particular area, there are still always plenty of new discoveries to be made.
What is an expert, anyway?
Broadly speaking, and especially outside of software development, it is not too hard to find examples of people who are generally viewed as experts, but who actually don’t know a subject too well under closer examination.
These people generally still reap many of the financial rewards associated with being labelled as an expert, but also make many knowledgeable people very wary of that “expert” label.
I believe that the main consideration is how confident you are teaching the subject.
For example here is a chart of how I view my own knowledge of different languages at the time of writing (and this excludes knowledge of frameworks).
(When I made this I completely forgot about my limited experience with C++, Go, PHP, assembler and the various VB languages. Although I think some of these are good languages, I now appreciate that I shouldn’t be pursuing expertise in those languages)
I think the depth of someone’s knowledge can be assessed quite simply but how many times they can answer “Why?”. When I was a child I used to drive my parents to distraction by saying this word over and over again. After one or two levels deep, they felt that they were at a level of detail where they didn’t need to know any more.
“If you can’t explain it to a six year old, you don’t understand it yourself.” – Albert Einstein
What gets you noticed
Writing a book that collates existing knowledge can get you noticed, but my observation is what really gets a developer better noticed is to establish a reputation as someone who can think not just intelligently but independently. This means coming up with ideas and opinions that haven’t been voiced before. Having a blog and regularly updating it gives us multiple opportunities to demonstrate this.
The experience of writing the Q&A also taught me that most developers share the same passions, and are happy to help, often for free. When I contacted the six author / developers, I knew what busy professionals they were, and I was just hoping that one or two of them would agree. The fact that all of them agreed to take time out of their busy schedules to help shows that you never know what you might get unless you ask.
What did I miss?
I would like to hear your own opinions on this.
Is it better to have breadth of knowledge or depth of knowledge?
What do you think makes someone an expert?
What is an effective way of getting noticed?