Flatiron is now 1/12 the way done. The first week has been pretty great; after lecture on Friday I felt physically exhausted, but mentally I was running a mile a minute, thinking of all the stuff that’s out there to learn. My schedule has generally been to get into school around 9 am, morning lecture, lunch, afternoon lecture, group work, then wrap up around 6 pm, after which I’ll stay until 7:30/8:00. I realize that it’s only been one week, but I’ve already learned a ton.
Here are a few of my high-level thoughts on how the first week went:
1) The interwebs are awesome
The Internet is essentially the largest, most secure and most accessible library humans have ever known is available largely for free. If you take a step back and think about it, you’ll realize how remarkable that is. The fact that I can search, communicate, schedule and manage my life using Google’s services and products without paying them is amazing. I’ll pay more today for a cup of coffee than I have ever paid Google, despite the fact that I depend on Google to manage my e-mail, calendar and data. And while I’m fully cognizant of the fact that “if you’re not paying for it, you’re the product,” I’d rather have it that way than for the Internet to be only accessible to people with money. If I can rely on advertisers and data providers to subsidize my learning and exploration, I’m more or less okay with that.
2) “Coding is not rocket surgery”
Computers tend to be perceived as magical black boxes. You click on an browser icon, type in a URL and bam, you have the world’s information at your fingertips. But in actuality, computers aren’t that smart - they’re just really good at following instructions and doing the same thing over and over again. On the other hand, humans are great at inferring context, understanding nuance and efficiently processing a statement like “Do you mind making me a sandwich?” - which is actually a subtle command in the form of a question. Computers, on the other hand, need to be told exactly what to do. However, computers, unlike humans, don’t get tired. Thus, computer science is more like the study of operations, and the purpose of coding is to automate processes and operational procedures so that humans can be freed to do what they do best - be creative and make complex decisions.
This means that to be able to tell a computer what to do (i.e., be a programmer), you need to just be very good at communicating a specific set of instructions. And once you take a look under the hood of a computer (my recommendation would be to start using your terminal to access files and applications), you’ll realize as I’ve realized that programs are created by people and can be understood so long as you put in the time and effort to read through the program instructions and follow the logic tree. Avi captured this well by claiming that “coding is not rocket surgery” - not to diminish the challenge of learning how to code, but rather to demystify the process and encourage beginners to overcome the mental barrier of understanding computers not as objects of frustration but as tools to be used.
3) There is so much out there to learn
A good chunk of the first week was spent working on our student profiles, setting up our blogs and generally getting acquainted with the school and day-to-day schedule. In terms of subject matter, we covered the following topics this week:
- Environment set-up
- Basic HTML/CSS
Each of these topics can get pretty in depth in their own right. We’ve just scratched the surface on Ruby, for example. But as I’ve found in learning most anything, the more you explore, the more you find to explore. Like going down a rabbit hole, we’re just getting started.
4) Some pretty cool people are learning to code
I’ve met a bunch of awesome people in class (including our great instructor). The backgrounds of the students are pretty diverse. In addition to the people working in finance or professional services before starting Flatiron (myself included, this is New York, after all), there are people who worked as designers, entrepreneurs, teachers - we even a professional poker player in class. This diversity of professional background makes for interesting conversations, and its been great to talk to my classmates about what interests them and for how they hope to use technology to better pursue their passions. I used to think that my career options were binary - either pursue technology or explore my passion for media, education and public policy. Instead, I’ve realized that technology doesn’t supplant my passions; technology complements and enhances my passions.
5) This stuff is fun
At the end of the day, programming should be fun and enjoyable. Coding is much more about creative expression than I had imagined before; after all, Matz created Ruby to make developers happy. My first exposure to computers and technology was through my parents, who worked as engineers for a large telecom company for many years. Watching them, I never considered technology to be a creative endeavor - it seemed like much more of a 9 to 5 job than I’ve come to realize. Since moving to New York though, its become clear to me that people in the tech sphere tend to be intellectually and creatively engaged with their craft, even to the point of “working” well beyond the daytime hours and into the weekends. Hackathons are great examples of this. The whole concept of a hackathon - an intensive, focused effort to solve a problem that brings together developers, designers and subject matter experts - is to engage in creative problem solving, not to follow a rote set of instructions. Not only are hackathons indicative of passion people in technology have for their craft, its also an expression of community - a desire to work together with people of different skill sets toward a single goal.
Flatiron has tried to imbue in us a sense of community, that programmers work better together than apart. Coding used to be an endeavor that people would do in their basements, alone, late at night. But it doesn’t have to be this way. In fact, its much more enjoyable to code and program in a community of people so you can bounce ideas off of them, explore new technologies and learn from each other. For me, this was one of the most appealing aspects of doing an intensive, full-time program like Flatiron as opposed to learning in isolation. For the latter half of 2012, I was trying to learn this stuff on my own - using online tools like Codecademy, Udacity and Code School. All of those tools were great, but its challenging, frustrating and, frankly, kind of boring, to learn coding entirely on your own, especially if you have a full-time (and then some) job as I did. Thankfully, I had my brother to mentor me and help me along when I hit a roadbump, as he was busy building Leaguevine at the time. I’ve found that learning in a focused group environment like at Flatiron School to not only be more fun, but also more efficient; before it might take me a whole afternoon and a whole lot of Stack Overflow-ing to debug a few lines of code, now I can easily ask others for help, which allows me to fix problems more quickly and learn more about what I’m doing in the process.