Programmer. Computer Scientist. Software Engineer. Software Craftsman. Principle Architect. Designer. Developer.
These are the words that we use to describe our profession and ourselves. We are encouraged to study Computer Science, however a large percentage of us are self-taught or have entered programming through related fields. This sits in stark contrast to most other engineering disciplines, and this diversity is possibly our greatest strength.
We are computer programmers, but we are also artists, teachers, mothers, social advocates, athletes, scientists, writers, gardeners, and many more. It’s important for us to take the time to look at problems through many lenses, and form diverse teams that allow us to solve problems from many different angles. There is no ‘one size fits all’ approach to programming – we are all standing on the shoulders of giants.
Programming sits at the intersection of science, art, and craft. I contend that, given introspection on each of these facets, we will all improve. I’ll provide concrete examples of how to apply formal Computer Science techniques to real-world problems. I’ll outline the benefits of treating code as an art form. I’ll explain how problem solving in programming maps directly onto other crafty domains. But most importantly I’ll discuss the importance of taking the time to look at problems from different perspectives. No matter what path you have taken, there is always more to be learned by walking in the footsteps of another.