Go Deep

I left off yesterday saying that you should NOT focus on the number of things that you know as a gauge of your own competence. Today I'll start talking about what to focus on instead.

Learn to go deep. Dig into the tools you know and understand why and how they do the things that they do. There are other, equally important skills to cultivate to be an effective engineer (I'll talk more about one of them tomorrow) but this one will help you combat the imposter syndrome and form the foundation on which you can build others.

It's a skill that comes with experience and practice, but there are two things you can do to get better at it.

First thing is to never accept the behaviors of your tools at face value. What really happens when you make a POST request with Axios? How does React reconcile changes to the DOM without having to update the entire tree? How about the module at your job that you kinda know how it works but you're afraid to really touch it? Get in there and pick it apart. Understand what it's really doing.

Second, build things. Lots of things. Solve real problems even if you're the only user. Try building clones of tools you use and then go see how the creators of those tools solved the problems you encounter.

This may be hard or uncomfortable at first. You're going to start getting off of the beaten path of Googling "How do I do X in React" and start having to think more critically about how you structure applications and data. What you'll find though is that you'll start to build a better foundational understanding of the common elements that the higher level tools are built on, and the needs that they address. When that starts to happen, you'll find that you become more confident in your ability to understand new frameworks and libraries as needed, rather than having to know them all superficially right now.

Did you like this?

I send a daily email with tips and ideas like this one. Join the party!