As architects, we need to know a lot of stuff. We need to know building codes, structures, mechanical systems, materials. We need to know how to read zoning codes, how to calculate building area, how to layout office floor. The list goes on and on. Do we really need to know how to write computer programs as well?
Given the digital nature of architecture and design today, learning to code is an essential skill for the architect. Architects are knowledge workers. Virtually all of our work is created on the computer. We typically use off-the-shelf applications to do the majority of our work. However, many of the problems we need to solve don’t fall within the abilities of our software. Our applications don’t always work well together. We need tools that work the way we need them to work.
You don’t need to become a professional programmer to benefit from learning to code. You can use this skill to solve all kinds of problems you face everyday. Here are five reasons why architects should learn to code:
1. Coding helps you master your tools
Have you ever wished your software worked a little different? Have you ever said “if only it did this, I could get this work done much quicker”. Most programs today come with an API or application programming interface. An API allows you to access the inner workings of the software. You can use the API to write code to either automate the program or to add new features.
If you need a very specific tool for your work, you can write a bit of code to create it. It’s kind of like getting under the hood of your car and turning it into a hot rod. Most CAD and BIM software ship with an API. Revit has a very robust API that you can use to write macros (like this one and this one) as well as add-in applications. The Microsoft Office products all have an API and built-in tools for automating the software. Even website such as Facebook and Google have APIs you can use to create new features and functionality.
APIs are everywhere and with a little knowledge, you can fine tune and customize your software to work exactly the way you think it should.
2. Coding helps you work lazy
By working lazy, I don’t mean sitting with your feet up, sipping a beer while watching videos on YouTube. No, working lazy is really about working with maximum efficiency and minimum effort. Say you need to copy over one hundred files from one folder to another and rename them with today’s date. You could either do this manually, which might take you a couple of mind-numbing hours, or you could write a program that does it for you while you do other, more interesting work.
I recently had to combine part of a door schedule with part of a room schedule in Excel. The schedule had to list all door numbers and their associated room numbers and room names. The schedules were in different Excel files and since there were over two thousand doors to sort through, there was no way I could do this manually. With some code in an Excel macro, I was able to stitch the schedules together in about half an hour. And now with the code written, I can update the schedule in all of five minutes. This to me is the essence of working lazy. It’s letting the computer do the boring repetitive work (which it can do quite well) while you tackle the more interesting, varied challenges.
3. Coding helps you solve problems
We all learn to write in school, but not everyone goes on to be a professional writer. Writing is a tool for communicating ideas and intentions. Programming is a tool for solving problems. Not everyone wants to become a full-time programmer but learning some code can help you solve the kind of problems you face everyday. It’s another tool in your toolbox. We architects shouldn’t be content to just use the tools the software companies provide for us. We should be making our own tools.
4. Coding help you think algorithmically
Architects are notorious right-brained thinkers. We like to rely on intuition and creativity to solve problems. We like subjectivity. We take creative risks. We like to break the rules. However, you can’t approach every problem with this mindset. Sometimes you need a more rigorous approach. You need objectivity.
Algorithmic thinking is the opposite of intuitive thinking. It involves using a step-by-step process to solve a problem. It is objective at it’s core – the problem is either solved or it isn’t. Coding requires algorithmic thinking. It forces you to think through all the steps of a problem. You must consider all the inputs and the outputs of the program.
This methodical approach is really effective at solving certain types of problems. Once you starting thinking algorithmically, you see other areas that could benefit from some structure and systems. Not all our work as architects should be solved through an intuitive process. Even the design process can benefit from a some rigor and structure. As Steve Jobs once said, “I think everybody in this country should learn how to program a computer because it teaches you how to think”.
5. Coding is actually fun
Designing a building takes time. Constructing that building takes even longer. It can take years to go from the initial sketch of a building to actually standing inside of it. In contrast, writing and testing a computer program provides instant gratification. The program will either work or it won’t. There’s not a lot of ambiguity.
Writing code is challenging and gives the problem solving part of your brain a workout. Getting a program to work can be very satisfying. And let’s face it, would you rather click your mouse button a thousand times or write a program to do it for you?
Learning to code takes time and patience but it can pay dividends in the long run. Want to learn to program? Here are some resources to help you get started.