It is now 3:30 AM on a Friday night and I am sitting in front of my computer, exactly where I have been since 5:30 PM yesterday. I’m tired and I am going home and to bed but I have to vent real quick. I have been teaching myself Ruby on Rails for while now, and I guess what surprises me the most is how much I don’t mind sitting in front of my computer for ten hours trying to figure out how to make something work. For continued practice I am building a little personal web app. Part of what I want this app to do is to scrape some info, present it to me, and then allow me to add it to my Google Calendar. Simple enough. I check through Railscast to learn about the Gems for scraping. I run into a few problems, use google, figure it, keep going. Another problem, Google, Stack Overflow, Google more, figure out, keep going. Doing well then, BAM, a roadblock. Google, nothing. Stack Overflow, nothing. Page 32 of Google results, nothing. Hmmm. Dig into my code, can’t find anything out of place. Maybe it is just late and I have tired eyes? Well it was only like 10:30 at this point so I don’t think it’s that. Another hour of scratching my head, and I figure it out. Websites can do things to stop others from simple scraping. HA, nice.
I mentally figure out a work around, and then start thinking. Do I even really need the scraping? Everything I’ve ever read or heard people say about building apps includes: start simple, get it working, then add functionality. Forgetting that I just spent six hours figuring out a problem I now see as useless I, excuse the pun, scrape the original idea and move to get started on the simpler version.
So now it’s four hours later I’ve run into another roadblock. Three hours of trying and I still can’t get Google’s API connected to my app. Back to the previous exercise. Is it necessary to be connected to my Google Account? No. Should I have thought about this before I started working on it? Yes. AAAAHHHHHHH.
The point of this vent is two-fold. First, a thorough plan is needed before starting any project, no matter how big or small. And that plan should follow the path of: very simplest version first, then add functionality as you iterate from there. Second, and the craziest part for me, I thoroughly enjoyed tonight. Ten hours of staring at computer, struggling to solve problems… I must be crazy. No, I just spent ten hours building something, learning a ton, and solving problems, and that makes it a good night. For everybody taking the time to learn how to program, I hope you remember to enjoy the whole experience. I may never be the best programmer, but I am enjoying trying.