This past past weekend I participated in my first hackathon. I was a little apprehensive, but experience has told me that that feeling most often times leads to good things so I figured "what the hell?" and cannonballed into the deep end. This hackathon was put together by the folks at Code Academy which is where I'm in the middle of some design classes. So the apprehension was eased some as it was within the bubble with a group of people that were also new to these things.
For those who aren't aware what a hackathon actually is, you're probably thinking we locked ourselves inside a room in the basement and began hacking into government systems. While that does sound pretty cool this had nothing to do with that sort of thing. This weekend was all about building web applications. We met as a large group Friday evening to discuss ideas and formulate teams around those ideas. It was a fairly social start and before long we had grouped ourselves together with the single focus of building a web application by 3pm Sunday. At that time we'd have to present what we made to the group.
My group seemed to form quite easily with a great mash-up of talents and expertises. We wanted to focus on something that felt attainable in this short amount. We also wanted to be able to apply techniques and things learned on future projects. And amazingly we were all on the same page with this stuff.
Our application wasn't the sexiest idea of the weekend, but we felt comfortable with it and dug right in. We wanted to build an online (and mobile) version of our student directory (currently produced in PDF form) so that it would be more useful for the students as they were making their way through Code Academy. A basic idea, but as we found out there is a fair amount going on in the background with something like this.
Friday evening we received a crash course on Github from Kevin Musiorski (a Code Academy alum himself) and created and cloned the initial Rails install (yep, we're using Ruby on Rails). I was the lone designer in my group so I let the others take control over the initial set up and configuration of the database and the core aspects of the Rails application. I decided that I wanted to dig into Twitter Bootstrap for this project and see how quickly I could get it figured out and make this thing look cool. This is really a perfect scenario for something like Bootstap so I dug in and started tearing it apart.
We continued working on our application the entire next day. Our team ended up being very focused and even though we were working on separate things a lot of the time we communicated really well for being such a new group. It was very cool to feel how building an application in a team environment would work. We worked closely with Github to manage our code. This alone was insanely useful to see happening in a real life scenario. Github was always a little hazy to me and some things definitely clicked while we were pushing and pulling our code around during the weekend.
By Sunday morning I had worked up a responsive front-end for our application and it was time to start bringing things together. Now, we learned a ton of lessons during the weekend and one of them was to work on the front-end right within the application itself from the beginning. So after fighting through some issues on that front we we had a functioning and pretty decent looking application.
By the time we were to shut down and congregate into the presentation space we were pretty much ready to go. We had a working (for the most part anyway) online/mobile Code Academy directory actually functioning and essentially usable. It was pretty freaking cool to see what we novices were able to complete in such a short amount of focused time. We presented and got some great feedback. This hackathon wasn't a contest as some are so the feedback was more constructive and two-way. We talked about what we had learned in general and got some great responses back from the panel.
We were successful in creating an MVP (minmum viable product) and because of the reception we received and how well we worked together we've decided to continue on with the project. We'll be rewriting things and have some great ideas for expanded functionality so keep your eyes peeled for the launch of a completed actual web application in the coming month or so (don't worry, I'll definitely be writing about it again once we're ready to go live).
Few of us knew what we were getting into with it being the first hackathon for most of us, but I can say that those three days were the most insightful three days of the Code Academy experience so far and probably from a learning perspective three of the most insightful days I've experienced in this field. It was an incredibly valuable learning experience and I can't encourage people trying to learn about web design and development to participate in things like this enough. The best way to learn this stuff is to do it and by having a group to work with and a set project and deadline in mind it is so much easier to get over that hump. I'll even go so far as to say that I'm way less apprehensive now about starting a project outside of a hackathon as well. It's proved a perfect jumpstart for the rest of this course and beyond.