I decided to go back to basics a bit, after a conversation with a co-worker and accomplished Rails programmer today – he said that a common mistake people make is that they try to learn Rails first and Ruby afterwards. So I want a better sense of programming in general before I go plowing ahead.
Rails is a web application development framework written in the Ruby language. It is designed to make programming web applications easier by making assumptions about what every developer needs to get started. It allows you to write less code while accomplishing more than many other languages and frameworks. Experienced Rails developers also report that it makes web application development more fun.
Rails is opinionated software. It makes the assumption that there is the “best” way to do things, and it’s designed to encourage that way – and in some cases to discourage alternatives. If you learn “The Rails Way” you’ll probably discover a tremendous increase in productivity. If you persist in bringing old habits from other languages to your Rails development, and trying to use patterns you learned elsewhere, you may have a less happy experience.
The Rails philosophy includes two major guiding principles:
DRY – “Don’t Repeat Yourself” – suggests that writing the same code over and over again is a bad thing.
Convention Over Configuration – means that Rails makes assumptions about what you want to do and how you’re going to do it, rather than requiring you to specify every little thing through endless configuration files.
Today was all about researching the MVC, or model view controller, framework. Well, I don’t know if it’s a ‘framework’, but it’s a setup for building an app. Basically you separate your app’s code into sections. The model is the data that the app contains, the controller is the guys of the app that pull data from the model and push it to the view, and the view is the markup and front end ui.
I think. At least that’s what it seems like so far.
The class, taught by Calgary’s Lori Olson, was fantastic. The biggest takeaway I have is the vocabulary of programming in Ruby – something I lack in every language. I hear people use terms like “methods” and “objects”, but I don’t really Continue reading “Day Three”
Today I’m heading to Calgary for a Ladies Learning Code Course on Ruby. On the bus ride down, I decided to re-start Treehouse’s “Build a Rails App” project, to see how much I’ve gleaned from the first go-round.
The first wall I hit is that I don’t entirely understand how Rails gets installed. I currently have it functioning for work-related projects, but it seems like any time I start a new working directory, I need to re-install it. Or something. Furious googling leads me to believe that my issue relates to the Ruby version management tool I’m using. I’m only 30% clear on exactly what that means, but according to this blog post, there are two main choices for version management, rvm and rbenv. At the office, we use rbenv. Or rather, a chivalrous programmer set it up with rbenv on my behalf. Continue reading “Day Two”
I was recently forwarded this article over at Fast Company, which expressed the admittedly obvious, but still easily abandoned wisdom that the best way to get better at anything is to do it as much as possible.
“To put it into startup terms, you’re making yourself maximally iterative. To put it into hardware, the idea is to get as many cycles as possible. To put it into workout terms, the idea is to get as many reps as possible. Try fast, fail fast, learn fast.”
In some ways, this is thrilling! I can fail fast! In fact, I’d bet I can fail faster than most people! I basically fail every day, all day long, day-in, day-out! Continue reading “Embrace Quantity”