In my internship at Big Nerd Ranch, I learned not only new ways to solve problems, but new ways to think. As I’ve written before, I have valued the emphasis on empathy, thoughtfulness and learning. The sun has now set on my internship at Big Nerd Ranch, but I’ll continue to be a self-admitted fanboy for another reason.
I have always been a hoarder of natural languages, having studied Spanish, French, Russian and Korean. To be sure, my ability in those languages currently varies from “survival level” to “embarrassing,” but in my exploration I finally came across Portuguese—a language I love, and that has continued to hold my attention for years.
Much like wine tasting, an exploration of language allows one to understand the detail and nuance of their native tongue. It allowed me to view English with less bias and exposed the cultural values that languages carry. In Portuguese, for example, you can append saudades to the end of a message to say, roughly, “I am sad because I really miss you and wish we could be together.” The fact that Portuguese offers a single word to express this emotional state says something about the values and priorities of the culture.
Similarly, modern programming languages and frameworks have expressive nuance and character. The C Language, for example, feels to me like a high school principal in 1975, whereas Rails feels more like somebody who still writes letters and collects LPs. These assessments reflect my own biases, but it’s interesting to see how programmers might describe the “personality” of their chosen tools: finicky, friendly, bossy, considerate.
Ultimately, programming tools don’t exist in a vacuum; they are used, shared, discussed and advanced by like-minded developers who find them useful and delightful. CocoaHeads and Rails Girls are just a couple of examples. I imagine that most developers go through a process of discovery, gaining an understanding what they look for in the perfect language or framework.
The Big Nerd Ranch guides introduced me to the Cocoa & Cocoa Touch frameworks, both of which stress the importance of object-oriented programming and show reverence for the human interface—qualities which strongly appealed to me. It felt like an empathetic approach to programming, forcing me to frequently consider the user experience. Ultimately, learning the Cocoa frameworks from Big Nerd Ranch has changed me as a programmer, it has affected my way of thinking and my approach to problem-solving.
I view Big Nerd Ranch guides as excellent travel guides; they give you the language and syntax, the dos and don’ts, explain what “stylish” programmers do, and provide relevant history. By being able to explore major development platforms in a rewarding and painless way, I have been able to develop an understanding of what I value in the development tools that I use. I look forward to reading more Big Nerd Ranch guides in the future and to refining my tastes as a developer.