“Make it work, then make it nice.” These were the words uttered by our teacher, Jeff Cohen, right before he dropped a “truth bomb” on our class. He then proceeded to type one line of code that essentially replaced everything we had been doing from scratch for the last week. Much like a great comedian telling their closing joke, he typed the words “rails generate scaffold,” dropped the mic, and walked off the stage leaving us wondering what just happend. As a tribute to director Quentin Tarantino, I’m going to rewind back to the beginning of the week and build up to the aforementioned “truth bomb.”
Week three started out much like every other week. We had a solid class Monday morning and spent a lot of time learning about Rails architecture and Model, View, Controller (MVC). For those of you unfamiliar with MVC, it is an architectural pattern that separates the input and business logic of your application, from the user interface logic. Here is a quick break down:
Model(s): represent real world objects. It manages the behavior of the application and relies on direction from the controller.
View(s): renders the model to the user (for example the HTML on a web page)
Controller(s): the brains behind an application; the controller receives user input, decides how the model needs to change as a result of that input, and displays the appropriate view.
If you’re looking for a more in depth explanation of MVC by an actual professional, check out this link.
Tuesday was another great day, as I finally got to spend some quality time getting to know my mentor, Darby Frey. Darby is an extremely talented software engineer at Groupon and I can’t wait to learn from him over the next couple of months. After our meeting, we attended Geekfest, which is a weekly lunch gathering at Groupon, where developers meet up and talk about programming, start-ups, etc. Most of the stuff discussed was way over my head, but it was further confirmation of how awesome the Chicago tech scene is.
Later that night I attended entrepreneurs unplugged, which is like VH1 story tellers but for entrepreneurs. It was really cool to hear great startup stories from successful entrepreneurs like, Talia Mashiach (Eved), Jason Fried (37 Signals), and Shawn Riegsecker (Centro). My favorite line of the night came from Jason Fried, when he told us that when starting a business, “it’s important to focus on the things that aren’t going to change.” In the case of 37 signals, that thing was price. By not allowing any client to pay more than a certain price, they were able stay in control of their growth and not rely on anyone client. This is great advice for anyone looking to start a business.
Wednesday was another productive class session, followed by our weekly entrepreneurship workshop. This week, we heard from Maria Katris, the executive director of “Built in Chicago,” and Brian Axelrod, a talented lawyer at Horwood, Marcus, and Berk. Maria gave us some great advice on how to connect with the Chicago start-up community, while Brian was gracious enough to answer legal questions for over an hour…free of charge.
Thursday was somewhat of a breakthrough day, thanks to my mentor. I had hit a road block while trying to develop my application and Darby was gracious enough to meet up and help me through a few of my problems. Like a true teacher, he made me work through each problem, as opposed to just telling me the answer, but after a couple of hours I had my first fully functional web app!
Now, I’ll explain the significance of Jeff’s “truth bomb.” One of the complaints about the Rails framework is that creating an application can be so easy that it sometimes feels like “magic.” A lot of critics feel like they don’t understand what’s going on behind the scenes, more specifically, how rails allows a user to create a basic website with about 3 lines of code. Thus, Jeff decided to spend the entire week peeling back the curtain so we could understand the “magic” behind rails. It was a great teaching moment and I know feel like I have a much better understanding of how rails works. More importantly, I’m finally starting to feel like I can start prototyping a few of my app ideas!