Have you ever had that dream where you’re back in school, and that huge essay you haven’t even started yet is due today? I have this dream all the time; for me, it’s more a flashback than a dream. It’s also far more stressful than that other school dream where I’m giving a speech in my underwear for some crazy reason.
Learning to write code is very similar to learning your local written language. You have to start slowly, learning the shape of each symbol and the sounds it can make, the meaning behind it. Next you learn to combine the symbols into larger structures: words, sentences, paragraphs; you learn to glue these structures together with common tools like introductions, transitions, conclusions, and the occasional parenthetical phrase. With a lot of time and (often tedious) practice, you’re eventually able to utilize the tools of the written language to translate the thoughts in your head on to paper as a fully formed story, article, poem, or even a dreaded essay.
Programming is no different. You start slowly by learning the syntax of the programming language – its keywords, operators, and other important symbols. You learn to combine those keywords and operators into full statements, and then combine those statements into a program that accomplishes a task. You start leveraging design patterns to further breakdown and combine programs into well-formed, complete applications. Then you learn optimization techniques for making your well-formed application accomplish its task(s) faster or with less code.
If all of that sounds intimidating, don’t let it! Just as surely as you are reading this email now, you can learn to read code as well. Just as you could hit reply and easily turn your thoughts and the empty page into a written reply, so too can you learn to turn a business requirement and a blank page into a fully functioning application.