Learning how to code is something that many start and few complete. Like many other activities, getting over the beginner hurdle can be difficult, especially when you don’t see much progress in the beginning. Specifically for programming, lack of early success may lead one to believe that a mathematical background is required before you can start developing anything. This form of impostor syndrome is detrimental to those who find their strength in the reading and writing portion of the liberal arts. There has to be a shift away from the idea that code is the sole domain of science. I remember one of my coding instructors surprising me by saying that he believed coding is an art. That statement jogged my mind. I’d always seen code as an austere beast, one incapable of expression. A means to an end.
However, code is much more than that; it’s a form of expression. All you need to do is look up Erick Steven Raymond’s hacker manifesto. In it, he refers to hackers(or coders) as part of a group of “creative people.” To hack, ideally, is to use a programming language to solve a problem. Of course, you can argue that this puts coding squarely into the domain of mathematics. Though that may be true, that doesn’t mean you can’t apply coding to another field. Skilled writers solve the problem of communicating ideas one sentence at a time. They refactor their words to heighten comprehension. Mark Twain once said, “I didn’t have time to write a short letter, so I wrote a long one instead.” The quote exhibits a logical decision that the author made when setting out to write. The difficulty of writing concisely is similar to the problems that professional programmers face during crunch time. The elegant ideal that hackers seek to achieve must be compromised by deadlines that facilitate the need to write in-concise code.
So all the code you see out there in the wild are just that: instructions written in a foreign language. In order to be fluent in any language, it helps to read the language. So, reading well-written code is one of the best ways to learn how to program. As you read the code, you should ask yourself what purpose the line of code serves. In other words, what problem does it solve? Why was it written in this way? Could it have been written in any other way?
This sort of immersion is better than spending countless hours slogging through a programming book or dabbling in brief tutorials. Languages aren’t learned passively. They’re learned by actually using them and discovering nuances and asking questions about those nuances. Just like you get better at writing by reading and writing, you get better at coding by reading and writing code. Though it’s true that coding involves problem solving, many of the problems you encounter can be solved by recognizing a few patterns and using trial and error. We solve many of our daily problems in this way.
If we want coding to become more of a mainstream phenomenon, the stigma of complexity must be removed. Rather, coding should become a basic skill taught in elementary and middle schools to develop intuitive problem solving skills. If we can think of coding as yet another art form, then perhaps the idea of a group of eight-year-olds coding on their free time may not be a pipe dream. The computer science stuff, like grammar, can come later.