How Great Programmers Avoid Bugs
While these are three of the top software minds, and great ideas that should be incorporated into your own thoughts, I feel like these three examples people and philosophies that come from a different era.<p>Bob Martin&#x27;s seems the most timeless approach to me, building things in small pieces and testing everything is as applicable now as it has ever been.<p>Knuth&#x27;s documenting everything is still absolutely valid, but very few people are in a position to go months without testing, nor to offer bounties on bugs. Those things sort of require writing software that doesn&#x27;t depend on other people&#x27;s libraries. That used to be the norm decades ago, but it&#x27;s really rare now, and most often not remotely possible.<p>Dijkstra&#x27;s approach is now only metaphorical. The example is mathy, and if you&#x27;re writing mathy code, proving things about it makes sense, but writing large async web projects with a lot of UI &amp; network communication... by all means you want to think about how to cover all your bases, but proving things mathematically about that kind of code isn&#x27;t realistic or practical, if it ever was.