Several months ago I set out to learn Rails once and for all. I had dabbled with rails several times in the prior years, but I would always simply give up or find something ‘more interesting’ when I got stuck or things became difficult.

You see, I’m a designer & front-end guy. I started in Graphic Design when I was about 16, then transitioned into front-end web design when I was around 20. I always had ideas I wanted to bring to life, but I didn’t have the money to hire a developer, or know how to build them out myself. I’ve always loved the idea of taking a concept of mine from design, to front-end code, to back-end all myself.

I wanted to be a Unicorn… An individual who is skilled in UI / UX design, front-end development & back-end development.

The opportunities that come from having that wide range of skills is huge in my opinion…

So, back to the learning Rails stuff!

Every time I attempted to learn Rails, I would follow a tutorial, but hit a wall the moment I attempted to do anything other than what was outlined in the tutorial. And a lot of times hit a wall when I attempted to do something that was in the tutorial, haha.

I knew that I could read blog posts or go through tutorials every day, but I wouldn’t truly understand Rails and how the pieces fit together until I started building applications using it the framework.

So I challenged myself.

I challenged myself to build a new web application in Rails each week for twelve weeks. However, I didn’t stop there.

I read an article that explained that you learn better by teaching, because you retain the information differently when you’re prepared to explain or teach it to someone else. So in addition to the weekly build, I recorded a screencast teaching others & showing step by step how I built each weeks application.

I’ll be completely honest. This challenge was really… fucking… hard!

This was mainly because I was doing this challenge in addition to my full-time job. There were many 16+ hour days. There were many times throughout the process when I wanted to quit! Many times I thought I was stupid for not choosing a smaller number like a 4 in 4 challenge instead, haha.

Each week, I struggled.

I started to build the application, then i’d run into an error that made no sense to me and that I had no idea how to fix, then I would spend the next several hours googling around for answers (there is an art to choosing your search terms). I’d usually find a fix on stack overflow, or a random blog I happened to stumble upon and I’d continue on (not fully understanding what caused the error or how I fixed it).

Once I finally finished building the web app with all the features I wanted it to have, I would then start the process of building it again! This time taking detailed notes & outlining the process. With that outline, I then built the application for a third time for the screencast recording (Didn’t want to look stupid in my screencasts!).

As I went through this process each week, an amazing thing happened.

These apps became easier and easier to build! By week 5 I felt pretty confident in the basics. I started to understand the MVC concepts! I could debug an error pretty quickly and continue on, and the fear of getting unknown errors quieted down.

Now that this challenge is over, I’m pretty confident that I can build at least an MVP of any idea that pops into my head. And more importantly, if I don’t know exactly how to build an application or implement a specific feature, I’m confident I can figure it out!

Don’t get me wrong though, there is still a ton of stuff I need & plan on learning about Rails, like testing among other topics (and I will continue to create screencasts on what I learn!), but this challenge was a great start in the process.