The U.S. faces a critical shortage of skilled software developers. Employers cannot find enough talented practitioners despite offering high salaries and generous benefits. I believe this is due to the outmoded, off-putting way we expose students to computer programming techniques, and I propose that Baltimore become the world leader for a new educational approach. Baltimore could become the place to go if you wish to study software as a craft and a fine art, and a place that prepares people already living here with the skills to compete globally.
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. Students should concentrate on making useful things instead of just figuring out how to implement algorithms. According to Gabriel, this kind of teaching “operates by providing a context in which students are constantly designing, writing, and working with software under supervision, with critique, and with explicit thought being given by the student to what the student is doing. One way to look at it is that the student is writing, designing, and working with software while paying attention.”
Baltimore is a great place to start implementing Gabriel’s ideas. The city is filled with mostly self-taught creative people who already work this way, who would love to help smooth the path for future generations. We could begin by creating an interdisciplinary academic center at a local college or university. The center would assemble a wonderful cadre of designers, information architects, and programmers already living here to teach alongside academic faculty from existing computer science departments.
We could then transfer the lessons learned from the college setting to primary education: think of the untapped potential of all the students in our region’s middle and high schools, who could grow up to be software makers, but who may never consider the field for the reasons I’ve described. Exposing those kids to the raw creativity and fun of making software (instead of merely “programming computers”) could make a real difference in their lives. Projects like HacketyHack show what this might look like.
I’m excited about the potential of this idea, because if the city were filled with people capable of making useful, valuable new technologies, many other positive developments would obviously take root. Maryland is known for its game software industry: how much bigger could that grow if we were graduating thousands of smart, creative programmer-craftspeople every year?
I dream of a city that becomes passionate about making software the way Detroit was passionate about making cars or Napa Valley is passionate about making wine. I dream of a place that attracts investors and innovators because of the world-class talent being cultivated and supported here. I think it could all start with one smart college or school administrator around town dreaming this same dream: that’s my audacious idea.