A mark of a good programmer is not that they are full of knowledge,1 but that they know the limits of their knowledge, and know when to distrust their abilities. They know when to seek a well-built library that has many contributors and stood the test of time. That they have a deep desire to not build sophisticated in-house solutions, but rather view that as a last alternative when all currently available systems fail to meet the requirements. They understand that this isn’t admitting a weakness but rather showing a mark of maturity. They hate working around a framework and instead prefer ways to work with it. They love to write unit tests because they understand computers are more logical than they themselves.
Self-distrust is a mark of a good programmer.2