Tools give you power, but power needs to be used wisely. And by wisely I mean understanding the power you have in your hands. You can use a hammer both with screws and nails, but it is better for the later than for the former.

Now, talking about programmers, this is quite more important. I’m not suggesting that you need to memorize all the options and shortcuts that your development environment has, but I’ve seen many cases when people start using an IDE, a framework or even a language based just on what they see superficially. The sad part is keep doing that for years; so they never get to understand what is happening, or even more important, why something happens. You can detect that when tech-screening a person that has several years of experience on something but cannot understand its fundamentals.

Using a tool that you know only superficially makes you loose all the power underneath. You can cut an oak with a butcher knife, but should you?

You don´t need to deep dive on how a tool was built or the binary code it produces, but at least understand the next level under the surface. This will give you a better picture and maybe help you to come up with new ideas on how to solve the problems that arise. And it will be even more helpful if you are leading a team, so it can help you help them better.

If you don´t know how a tool works under its surface, then you don´t really know how to use it.