We know that having a deep knowledge of a single field is not enough to be a good developer. We need to have a good understanding of many fields to be able to build a good product. But how many fields do we need to know? And how do we know which fields are important to know? I will try to answer these questions in this article.
Your T shaped knowledge in your field
It is often praised to have a T shaped knowledge as a developer. Which is true. I play with different frameworks, products and languages continoulsy out of curisosity. I had a look at smart contracts when NFTs were having the time of their lives. I did not go long enough to publish a smart contract. But, solidity is a such language that every tiny inefficient function and unnecessary memory costs you actual money. You gain a perspective you probably would not have gained if you were working with javascript. When you start optimizing your code from this point of view it doesn't matter much in your first function, but when all this comes together it makes a huge difference.



So, you know how to gain depth on your field, but what other fields are in your T?
Your techical horizontal line
You'll often work with backend, frontend, data processing, testing, deployment, etc. Even when you are not the one actively working on them simple measures you can take will make a huge difference. Take this example for example.
You are a frontend developer working on a simple form about a user group. One question is the city that they live in adn you take this answer as a simple text field.
It may not matter a lot at first, but if sommething changes and the city becomes a data point engineering team will have a hard time cleaning this particular data. People may write in different caps, short version of it or they may simply make typos. If you go back to product and suggest a dropdown list, you'll fasten the process a lot. You'll also be able to make sure that the data is clean and you can use it for other purposes.
As you can see having a good understanding of other fields will make you a better developer. You'll be able to make better decisions and you'll be able to communicate with other teams better. It does not take much to gain this understanding as well. You can read a few articles, watch a few videos and you'll be good to go.
Your non technical horizontal line
This advice goes beyond programming. Always try to get different perspectives in life. Go and be a scuba diver part time, learn gourmet cooking and work at a kitchen, learn how to play a musical instrument and play at weddings. You'll start seeing things from perspectives you did not know existed before. You'll comunicate more effectively.
So if you take one thing from me today, let it be this:
If get a chance to do something peculiar, don't miss it.