Our time at Flatiron is coming to an end. While we still have 2 weeks left, I thought it would be a good time to reflect back on what has transpired over the last 10 weeks. In the run up to starting school, I constantly searched for blog posts by Flatiron students about the experience and read whatever I could find. What I didn’t find, however, were as many posts that offered advice on how to best take advantage of the course. So I thought it would be useful to give some advice to myself of 10 weeks ago.
#1. Labs exist for you, not the other way around
Trying to complete every single lab as they are deployed looks like this:
While it is not impossible to finish every lab, that shouldn’t be your primary goal. At Flatiron, there are no grades and the points don’t matter. Really understanding a few labs will be far more valuable than just getting the tests to pass on a lot. The labs will always be there for you - this 12 week period where your entire job is to learn new things won’t be.
#2. Build side projects
There’s a reason the end of the semester culminates in project mode. Building things from scratch takes the training wheels off and takes you out of your comfort zone of programming to someone else’s test. In nearly all of my group projects, we at some point encountered a problem that I had seen before - not in a lab, but in a side project. If you can find the time, this will be invaluable.
#3. Start playing with API’s early
Don’t be scared of API’s! There’s a good chance at some point you will encounter an API towards the end of the semester, either in a lab or on one of your group projects. A few suggestions of really awesome, free API’s with good documentation: Google Maps, Foursquare, Spotify, Wunderground, and NYC Open Data just to name a few. When you get to Hashketball and Green Grocer, don’t get mad, get even. They will help make working with API’s super, super simple.
#4. Don’t just make the tests pass, read the tests.
Testing is crazy useful and I wish I paid more attention to it during the semester. When working on a project I’m excited about, I sometimes code like an ambulance driver going to a crash scene. Writing tests might seem boring, but there will come a time - likely during project mode or on a side project - where you will find yourself debugging a feature or a model and repeating yourself over and over again. At times I thought, “I won’t need to learn testing, I’ll just program it right the first time!” How arrogant I could (a.k.a. can) be!
While making a Potluck dinner organizer app, every time we wanted to test a feature, I had to create a new event by manually clicking around site to see what happened. Look how many I created! How much easier would it have been to write a test that could automate this process? Sometimes it felt like we were testing how fast I could create a new dinner!
Eventually your projects will just become to large to manually test the entire flow of a use case. Practice writing RSPEC and Capybara powered tests and let the computer do the work for you. That’s, after all, why we’re here.
#5 Go on, git!
As labs get bigger, get in the habit of using version control, branching, and merging your branches onto master. Don’t code on your master branch! You can get away with it when working on your labs, but when you get to project mode you will want git to be second nature. Not only will it be there to save your ass when you delete something you shouldn’t have, but its virtually impossible to collaborate on a big project without using git and github.
#6 Remember why you came here
I remember being a liberal arts, history major as an undergrad and EVERYTHING WAS SO IMPORTANT! Ideas, concepts, beliefs, principles, everything was so GD important. At Flatiron, that experience has been similar in its unique way. It is so easy to be overwhelmed by the amount there is to learn, the fear of having to get a job or learn a new language, stress at home from being so busy, getting pissed over group and table assignments, resenting your instructors for deploying labs in the wrong order or changing the schedule without telling you. I could go on…
But when you’re in the trenches it can be easy to focus all your energy on that one thing that’s in front of you at the moment regardless of how insignificant it might be in the long run. You’re a passionate person, with beliefs, goddamnit! That’s why they accepted you in the first place. But in the throes of it all, it can be easy lose perspective of why you came to Flatiron for in the first place. If you’re like me, coding is not some interest you decided to pursue on a lark. It is a lifeline, a guardian angel sent from heaven, a search and rescue mission to pull you from the rubble of your past. In short, a key to a better life. Remember what they tell you at the beginning of the semester. While at Flatiron you will learn to write code and program Ruby, but that’s not really why you’re there. You are there because you want to change your life.