Breadth vs Depth in Engineering
Tags: career, engineer, productivity
Published: 2022-10-10 15:23:20

All of us probably remember graph data structures, and the **traversal methods (BFS and DFS)**. As an engineer, we can visualise the expertise and learnings in tech industry as a graph. Going forward with this assumption, should one approach this knowledge graph in a breadth-first or depth-first fashion?

Breadth is **how many things you know about**, whereas depth is **how much you know about that thing**. Depth helps you move fast in one direction, and breadth helps you determine the right direction to move in. Breadth gives you diverse perspectives, and thus wisdom. And, on a long time scale, **wisdom is almost always more valuable than knowledge**.

Our tech industry is weird this way that a person with very deep expertise in one specific thing is praised as an expert whereas a person with broad set of skills is called out as a jack of all trades but master of none. As an industry, we overvalue knowledge much more than wisdom. This might be because **testing knowledge is relatively easier compared to wisdom**.

**Moving fast is as important as moving in the right direction.** Early on in career, you should be optimising heavily on breadth. Why? I feel it’s more important to understand the questions and conversations around you. You can always go deeper to find the answers once you understand the questions. Going broad helps us identify these questions and core concepts in the deluge of languages, frameworks, and whatnot. 

**Focus on concepts**. There are very few concepts. Different frameworks just make different choices at these conceptual levels on approaching different problems. Understanding things at a conceptual level will help you quickly pick up other adjacent frameworks and technologies when needed.

Without sufficient depth, you'll **keep hitting walls** where you get stuck. This is really critical and an indicator to go deeper. This is when focus needs to temporarily shift to being depth-heavy. Deeply familiarising yourself with the framework/tech being used gives you a stronger basis which is very useful to find patterns when we go outside of that framework.

With time, as you progress in our career you will hit many walls, go deeper into those blockers, and repeat. In the process, you've learnt 'n' number of things at a beginner or intermediate-level and also are at advanced-level in a few of these things. You evolve from just being a jack of all trades to also being expert in a few things.

Essentially, **you've transitioned from a short, fat engineer to a T-shaped engineer** who are much sought after. There is a good amount of breadth that you need to find the right direction to move into, and the sufficient amount of depth to move fast into the direction that you have chosen. Hope this is teeny bit helpful at least.

### Inspirations
- [Short Fat Engineers Are Undervalued](https://nested.substack.com/p/short-fat-engineers-are-undervalued)
- [SCALER POD 01 ft. Amod Malviya, Co-founder, Udaan | How Engineers Can Learn for Fun and Profit](https://www.youtube.com/watch?v=KBy7CYOqjNU&list=PLLhBy6YSIT0DjPC-a9j-Alz21GHOjzrVe)
- [Depth vs breadth in programming knowledge](https://www.reddit.com/r/cscareerquestions/comments/1ww8bx/depth_vs_breadth_in_programming_knowledge/)
- [The T-Shaped Engineer](https://alexkondov.com/the-t-shaped-engineer/)