| Here are some serious outstanding problems in software: * Considering how fast modern computers are, software is so damn slow. * Software frequently stops working. When it does, the process to diagnose the bug and fix it conclusively is not a straightforward one. * Software is poorly understood. Most developers today work with other people’s abstractions. It’s rare to find a software system that someone can describe the inner workings of end to end. * Software is excessively complex. To understand a codebase, you might have to crawl through ten layers of dependencies, imports, and scaffolding before finding code that actually does anything. These are just some obvious ones off the top of my head. Does following the advice on this list make me any better at tackling any of these problems? Could someone conceivably do none of the things on this list, and still be a very skilled developer who makes strong strides toward solving these problems? |
But they are all the same one (the last form is the clearest statement), restated in different ways or viewed through effects that the same source causes.