“I understand it, but I can’t speak it”
An epiphany of comprehension
I just hit the four week mark of my experience at MakerSquare in San Francisco. (Read up on MakerSquare here if you’ve never heard of it.) Being immersed in code 12 hours a day, six days a week has turned out to be a pretty gnarly experience so far. I have to effectively gulp down and digest a firehose of javascript and computer science fundamentals every day.
I was talking to my friend Jessica a few months back about her experience in Harvard’s study abroad program. Having a couple semesters of German under her belt, Jessica flew into Munich without a sliver of apprehension, excited to put her new found understanding of German to good use. “Upon arrival I quickly realized that I could not speak German nearly as well as I previously thought. I had written papers and given presentations, but when it came down to it, I couldn’t effectively communicate in the real world without struggle.”
I’ve been told a version of that same story many times by a multitude of people, but I never quite understood it. If you can read and comprehend something why wouldn’t you be able to effectively communicate it? About a week into MakerSquare the answer became very clear to me. I studied Javascript for about 5 months before starting the program. I could read solutions to algorithms and understand the logic. Given a template, I could implement a functioning front-end website. But, I did not know how to effectively write and apply my own code when presented a blank slate. Though I could understand and regurgitate other peoples logic, I could not come up with my own solutions. I finally understood what Jessica was saying. Being able to simply understand a solution is drastically different than engineering and executing your own solution from scratch.
“Being able to simply understand a solution is drastically different than engineering and executing your own solution from scratch.”
One of my main goals coming into the program was to transform the way I approach, break down, and solve problems. I want to think like a programmer. Over the last three weeks I’ve seen a substantial change in my ability to process tasks “algorithmically” and implement my own logic. I can confidently approach an algorithm or project and build an effective plan by breaking it down into smaller parts. Given a bug, I can backtrack its movements and find the area of a possible error. In my opinion, this thought process is one of the most important skills a programmer can have.