January 16th, 2016
(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at: email@example.com
When I started programming again, I vowed not to type a single character unless I knew what pattern I was applying as I did so. The result was incredibly frustrating. I want a class called “Stack”, but why “Stack” and not something else. Then I would go and write the patterns for naming classes and then I could type “Stack”. Then I would want to make its first method public, but why public?
At first, it was like a centipede thinking about its feet. Programming, which had been effortless and flowing, was now an awful chore. I knew, I just knew, that I was going to encounter more patterns I hadn’t thought about. Decisions I had been making on auto-pilot I would have to stop and consider. Ten seconds of coding, four hours of pattern writing.
By the end of the first week, though, I discovered I wasn’t finding many unexamined decisions any more. Most of the decisions I made most of the time were covered by a small catalog of patterns, tens but not hundreds. The surprising effect was that as long as I didn’t uncover any new patterns, programming already flowed better for me. When I programmed, I programmed, undistracted by that second level of anxiety about whether I was using the right strategy.