My First Week at Flatiron School
The first week at Flatiron is over and it has been one of the most remarkable weeks of my life. I can’t ever remember having so many highs and lows in one week.
First, a little context would be helpful.
I was someone who always looked askance at programmers. It was something that I always wanted to do but never was able. I tried over and over again to look but nothing would click. I needed a way to see the entire picture instead of looking at one tiny part. It was really difficult to conceptualize how a “hello world” tutorial became Facebook. After talking with local programmers, I realized that I needed to dive in and finally explore my passion.
There’s a catch though. Programming is not easy. The Flatiron School actually begins before you get to campus. You complete about 100 hours of Prework covering the basics of HTML, CSS, Git, Ruby, SQL and Ruby on Rails.
Don’t know any of that? That’s alright, neither did I. The Prework itself was challeging but the most important part that I got out of it was learning how everything worked together. You used Ruby on your server to process data from your server which you access with SQL. You send that data to the browser as HTML and CSS. You use Ruby on Rails to bring everything together and save your files using Git. The acronyms soon became second-nature and I looked forward to implementing them in class at the school.
The first couple days were focused on Git. Git is a version control system that allows you to take “photographs” of your files at specific points. Git is pretty easy to use when working on your own project but challenging to use when working together. There’s an entire site, Github dedicated to working together using Git. Github has become the sine qua non of programming, it is indispensable and everywhere.
On the third day, we moved on to Ruby, which is the heart of the curriculum at the Flatiron School. The first day seemed familiar and comfortable, given my previous experience with the Prework. By the end of the week, I was an absolute mess. Methods, hashes, arrays, iterations (all subjects of future blog posts). It all swirled together until each had no meaning to me. I was overwhelmed and quite frankly, terrified. I had left a good paying job to explore something I was incredibly passionate about. But what if I couldn’t make it? What if I just didn’t have the “programming gene”?
The TA’s and other students at the school were extremely helpful. Many of the students have prior programming experience so they were able to help me work through some of the concepts, as most of them were completely foreign to me. I managed to get through my assignments and homeworks but they were long, difficult affairs.
After being up late on Saturday night working through another set of labs and homework, I laid awake wondering whether there was something I was missing. Every day seemed more difficult and I wondered why things didn’t seem to be clicking. Suddenly, I bolted up in bed. I was looking at things from the wrong perspective entirely. Every day was difficult because I was learning brand-new material for the first time. It was supposed to be hard, it was the only way to learn. I grabbed my laptop and quickly found the files I had been working on the past Thursday, the first day that programming just seemed impossibly hard. When I opened the files, I nearly laughed. The code I had written and the challenges I had completed were almost trivially easy.
I now subscribe to the One Day Forward, Two Days Back rule of learning to program. Every single day learning to programming will be difficult. Some days will be harder than others but all of it is absolutely necessary. Anything worth having is worth working for. However, two days after I learn new concepts, I will look back and be amazed at how easy it looks. With that in mind its easy, even enjoyable to work through the challenges. I know the light is always just around the corner.
If you want to join me as I learn to code, please bookmark this blog and follow me on Twitter @danielspecs.