Today was Day 3 of my program at Flatiron. Over the past two days, I’ve been immersed in a crash course for GitHub, HTML, CSS, and Ruby. In the midst of all of this, I’ve been getting quite familiar with my Terminal, and I’ve learned a lot of useful shortcuts that I never knew about in the past. I’ve quickly realized the benefit of using Terminal as a file management system versus a GUI (graphical user interface), which is what most users typically interact with on a computer. Coming from a Excel modeling background, the added bonus of knowing shortcuts does wonders for productivity in regards to development. While being exposed to many different formats of code, I’m also learning how to best manage my time.
We have been discussing the importance of the programmer ethos over the past day and a half. If you’re interested in reading the essay that captures this methodology, look for “Hackers and Painters,” an essay by Paul Graham. Graham’s point is that hackers and painters are both alike in that they are makers. There are a lot of misconceptions of what a software developer/hacker actually does, and ambiguous terms such as computer scientist don’t contribute any clarity towards identifying that. Like a painter, a hacker spends time learning more about his skillset, and better understanding the nuances of certain techniques, and how they can be applied towards achieving a certain goal or task. Over time, ugly creations become less and less, and beautiful ideas tend to thrive through the process of iteration, debugging, and creative destruction.
The big take-away that I took from Graham was that makers basically learn from examples. Like a painter who copies a famous painting to understand the techniques applied, a hacker learns to program by closely following good program (syntax, logic, etc). Skillsets improve via gradual refinement, and hackers improve through an iterative process just as a painter begins with a sketch and follows up by filling it in, piece by piece. I’ve taken that first big step.