5 Things I Learned From My First Rails Project

Luke Whiting
2 min readOct 29, 2013

--

I’m currently attending General Assembly’s Web Development Immersive, a thirteen-week coding bootcamp in San Francisco. After a whirlwind introduction to Ruby, Rails, JavaScript, CSS, and HTML I finished my first Rails project last Friday. Baby steps; but for me, a giant leap. A few observations thus far, in no particular order…

This stuff is harder than it looks.

I wasn’t the only one in my class who started with grand ambitions. How hard could it be? Generate a stock Rails project, mash up a couple of interesting APIs, combine a bit of web scraping, visualize the data on a map or infographic, throw in a login system, push to Heroku and be home in time for supper.

As the week progressed, however reality quickly whittled my ideas down to the skeleton.

Simple != easy.

Beneath most conceptually simple ideas is an iceberg of hidden complexity. Each new software project has, in a way, never been attempted before. It’s nearly impossible to anticipate each of the challenges and annoying issues you’ll face.

My project (an automatic apartment door unlocking system using Twilio — hat tip to Danielle Morrill) needed to save phone numbers into a database. Sounds straightforward, until I discovered that Twilio requires phone numbers to be normalized in the E.164 format, a specific numbering convention defined by the International Telecommunication Union. A quick Google search brought me to the GitHub page of Florian Hanke (a German PhD student and open source developer) whose freely-available Ruby gem (“phony”) made my life easier with just a few simple lines of code.

We stand on the shoulders of giants.

Had I run into this same issue a few years ago I would’ve been on my own. Thankfully, GitHub, Google, Stack Overflow, modern frameworks, and APIs have made programming so much easier. The international programming community is marked by its willingness to freely share reams of accumulated knowledge, drastically simplifying the process of building complex applications.

The blank screen is terrifying.

In spite of all the resources available, it’s hard to know where to start. There’s a terrifying yet thrilling moment when you crack open a fresh new project in your text editor of choice. You’re on line one of thousands, on the precipice of a million tiny decisions. The pressure can be suffocating.

Just start writing. Anywhere. Anything. Once the code starts flowing, it’ll come together.

Scratch your own itch.

It’s been said before, but the best way to learn how to program is to solve your own problems. The world of software is as broad and deep as you make it. Building something you’d use yourself stokes the motivational fires and will keep you from getting hopelessly lost and overwhelmed. The creative process is inevitably filled with pain and frustration — why waste valuable emotional energy on a project you don’t care about?

--

--

Luke Whiting

Currently learning how to code at General Assembly. La vita è bella.