Skills Poor Programmers Lack
The skills cited in the article are:<p>1. Understanding how the language works. Additionally understanding how the language infrastructure interfaces with the computer.<p>2. Anticipating problems. Prefer solid foundations over veneers that appear to get the job done.<p>3. Organizing and designing systems. Essentially, SOLID.<p>Two things on this:<p>First, bad code often results from conflicting goals. Moving goalposts <i>and</i> on time shipping, for example. The result appears to have been written by a poor programmer, when this may not be the case.<p>Second, the most valuable skill a programmer can have isn&#x27;t technical, but rater social: empathy. The best programmers I&#x27;ve seen have it and the worst completely lack it.<p>Lack of empathy leads to poor communication. If programmer can&#x27;t anticipate or read his&#x2F;her audience&#x27;s perspective, there&#x27;s no way s&#x2F;he can communicate a complex concept to them. The temptation will be to blame the audience when in fact the failure lies squarely with the programmer doing the speaking or writing.<p>Lack of empathy also leads to disregard for the needs of users and future maintainers. Systems get built that don&#x27;t need building, and systems that should be built aren&#x27;t. Should the two happen to coincide, the system is a nightmare to maintain because the programmer simply didn&#x27;t care about the people who would need to maintain the contraption.<p>A lot of the 10x programmer discussion focussed on people who lack empathy. For some reason, it&#x27;s easy to conflate lack of empathy with technical skill.