On Computer Science and Software Development
- July 18th, 2011
- Write comment
Recently I had a discussion with a friend regarding teaching computer science and producing actual programmers out of university. I’m posting the original post and my response for a few different reasons, but primarily I want to archive it for review later on in my career to see how my mindset and the topic in question has changed.
Keith B. : Computer Science college = more theory, little application. Why isn’t there more “we will make you a motherfucking programmer!” courses?
My reply, with added line breaks for readability:
I apologize in advance for the amount of hot air I’m going to lay down here. What developers do is a craft (yes, I’m going to mention that ugly phrase ‘Software Craftsmanship’. Deal.) and the trappings of which follow any other craft or art. Schools can teach you the basics and principals of the craft as well as rounding you as an individual with other topics that may or may not pertain to said craft. However, for the practitioner of the craft to fully bloom, they must build – not only on their own but under the tutelage of other more experienced developers. Schools can facilitate this using labs and other free-form projects, but sadly, this doesn’t occur too often in my experience or from the experience of others I’ve talked to. Schools aim for simple regurgitation of information, not the application thereof; it’s easier to put a binary pass/fail on such things which gives them metrics to pass along to the regents or greater shareholders of the school.
The true craftsmanship of development and programming comes in to play when you have that understanding of the tools, the application of the tools, and then the desire to continually improve on your art, the mind knowing how to flex the tools to its whim, the drive to do so and finally the work ethic to see it all through. These are all things that CAN be taught; but taught through experimentation, failure, retrospect and improvement.
Consider the carpenter – there’s a lot of parallels with that vocation and ours. They can be shown the hammer and read about the history and uses of the tool, but a student of the craft will never build a house on that information alone – they must swing the hammer and pound nails to perfect their skill and art.