Yesterday’s post talked about the usefulness in other careers and day-to-day life of the factual knowledge gained from studying computer science, but another idea worth touching on is all of the transferable skills to be gained.
Programming is all about being empowered to create something, not just to memorize and regurgitate. Programming is setting an objective or choosing a task, imagining how to achieve it, and then breaking it down into steps small enough to implement. Learning to program pushes you to be resourceful: when you reach the end of your own knowledge, you have the tools to acquire more and then to make it your own by applying it to a project. It’s about being able to check your own answers, see that your solution isn’t quite right, and then keep trying new ones until you get it. It’s the open-endedness of the humanities combined with math’s requirements of specificity and clarity. In that, it may not be just a liberal art, but perhaps even the liberal art.
Individually, programmers have to develop strategic thinking, thoroughness, self-reliance, and executive function. And that doesn’t even begin to touch on the interpersonal skills to be learned from working on a large project with a team! Can anyone who works with students (or employees, for that matter) honestly say they don’t wish those skills were better developed?