The term “programming” connotes an analytical discipline, something derived from mathematics or engineering, and that’s how most schools teach it: as the domain of computer science. But computer science is only a part of what software makers do. Advances in computer power have made computer science less applicable in the day-to-day work of programmers because there’s less need to keep track of “ones and zeroes.” Making software has simply become a lot more fun than you might remember if you were ever forced to study it.
These advances open the door for many different kinds of people to get involved in the software industry. Newcomers have launched a software craftsmanship movement addressing issues such as: how do we make something truly useful? How do we make it a joy to use? What can we learn from the worlds of art, design, psychology, typography, and architecture? Where you once had programmers thinking of themselves as scientists or engineers, you now have programmers who think of themselves as artisans.
Poet and computer scientist Richard P. Gabriel describes a vision of how we might train programmers as craftspeople in his essay “Master of Fine Arts in Software,” in which he suggests we emphasize the creation of software as a performance instead of as a body of knowledge to master.I'm very hopeful for this approach (which I also discussed a few weeks ago on WYPR's Maryland Morning) because I think it's a straightforward, exciting way to boost the number people able to compete for good jobs in the current economy. Read Marc Andreessen's recent op-ed essay "Why Software Is Eating the World" for more details on why this is going to be extremely important not just for Baltimore but for every city that wants to be economically competitive.