Software development is a complex and varying field that encompasses many skills and abilities. Developers must draw on a variety of techniques because the problems they’ll face one day are entirely different from the problems they face the next day, and the next day, and so on. As such, developers need a range of skills that can address these varying problems. Like a carpenter’s tool belt that keeps his most-used tools handy, developers need a range of intellectual tools at their disposal for addressing an unpredictable range of software problems.
The fact is, anyone can write a simple program to make a computer do something—it’s actually an easily learned skill. This is the craft of software development: the set of ...