Ever heard of Rails?
In that case, perhaps you’ve heard of Twitter, AirBnB, Shopify, Groupon, Slideshare, or Basecamp? No? Then check then out, because we won’t talk about these apps today. We’ll rather overview what they have in common: Rails!
Ok, so what’s Rails ? [or Ruby on Rails or RoR] No worries, we’ll get there. Btw, if you wanna quickly dive into Rails, go ask Leo Trieu from Code4Startups: he’s got you covered. Meanwhile, let me tell you why i believe Rails is dope (from my business consultant stand point), and how i got totally seduced by it.
Become a RoR Dev in 63 days.
How did that happen? Well, first of all, by not getting paid for 9 weeks (my upper management at my current employer back then simply didn’t see the value at that point), and secondly, by going to Bitmaker, the most amazing tech-skill accelerator bootcamp in NA, after a long year researching and comparing potential options.
9 Weeks to Become a Web Dev?
Not quite, prior starting, you are expected to pursue the equivalent of 2~3weeks of work, which intensively means ~1week full-on of prep-work. And you better do it. Otherwise, say “bye bye” to your investment. In my case, i did this as best as i could coping with my “day job” and leveraging weekends. It was clear the very first day of class that if you had not done this, you were going to miss out.
Why? Because a bootcamp is meant to go super fast. The point of a it is NOT to grab you by the hand at every step of the way: you need buckle up and follow the rhythm or, be ready to be left out. Yes, i am exaggerating a bit (but just a tiny one). In any case,
Bootcamps are the new “MBAs”. Imagine doing a Computer Science Degree in 9~12 weeks (fully hands on), with the upside of being surrounded by amazing people (teachers, instructors, experienced developers) and the downside of the time ticking. A bootcamp on Web App Dev is no a joke and it’s actually the most enriching experience i’ve lived in the past 5 years. And it’s all on RAILS!
What’s Rails? Why Rails?
Before talking about about Rails we need to talk about Ruby. How do you like the name for a programming language? Isn’t just beautiful? I think it is 🙂
Programming (that is, coding with a brain and a global vision) needs to become a practice for all. The corollary of which would imply that programmers need to learn [more] about business, but that is another topic for another article. For now, let’s focus on this:
Business-chaps need to fully understand, be able to prototype, and fully engage with programmers.
- Because programmers know more about business than their business-peers know about coding.
- Because developers will care and embrace more business if in return the business proves that it understands and cares about the challenges that programmers constantly face.
- And, in my grass hopper opinion, business folks need to hop on the wagon simply because programming has become “accessible” to all. Huh? Yup!
Anyone who can read plain english, can actually read, and understand ~80% of Ruby code.
Amazing. How is that possible?
Long story short: “level of abstraction“. In ~1995, Mr. Yukihiro Matsumoto, acknowledging that C was robust but not “agility friendly” and super annoying to use (specially for a dummy like me), came up with Ruby that sits on top of it. Many reasons for this include democratising coding “for all” [while optimising developer happiness] and by doing so taking complexity out of the programming equation.
As a result, solving a problem in Ruby is tackled via a use-case or business approach rather than having to “waste time and focus” on thinking about memory allocation, declarations and compilation.
I love ruby because it allows business oriented people (that have been curious enough) to get a hold of how the magic is made quickly. Ruby is an interpreted-language and object-oriented: it is, in my opinion, the most logical step to start-up with in the fascinating world of web applications. And this is only the beginning.
About Web App Dev & MVC:
In 2005 i discovered web-design. But in reality i discovered “nothing”, or rather discovered Front End with the back then “Wysiwyg” approaches that i won’t even bother to mention. It did help a bit. Web App Dev is another story. Not necessarily hard: depending how far you wanna go. And this is where the framework Rails changed the whole game.
How does a web app work?
Usually, you create an account and start from there. Then you’d probably upload content, follow someone, comment or like something, etc. Does that sound familiar? Of course! But it was NOT so familiar in 2005: when Mr.David Heinemeier Hansson developed Rails.
Heard of MVC? Or move to next section.
The Model, View, & Controller are the 3 binding blocks of modern web app dev. Rails provides a sweet canvas to frame this work accordingly. I know, that probably didn’t mean anything to you (it almost didn’t to me 😛 ). Let’s break it down:
The View is the browser, the client side, and what does that do? It gets the client’s input, that is: “i wanna see the product page”, or “i am tapping in my login”.
So far so good?
The Controller: ok, so any input coming [from the] client side is intercepted by the router [a sub component of the controller] who then tells the controller => “find and show me that very product page requested”.
The Model: this is where it gets even more interesting. The controller talks to the model. It tells it, “hey, i’m looking for the product page with the following ID…”. And here is where Rails Magic happens: the model will retrieve the corresponding data from the DB, all Ruby (translated into SQL by Rails Magic), sent to the Controller and get/post(ed) back to the View as a response.
That’s how web apps work.
And this is just the tip of the iceberg. For example, if you are new to Rails, your first exercise is to build a blog application from scratch including users, articles, and comments. And you can do it in ~15min. Don’t believe me? Read & follow the recipe.
But what i wanted to stress out is the following. By default, when you’re developing on Rails, you have the ability to easily create a social app (just like the blog, or twitter): and this, for “free”. Or for the effort of studying a very well documented Ruby on Rails Framework.
And some cats and companies have simply done the “right thing” on Rails. 2 totally different examples:
One of my favorite ones: ZENDESK. Ruby on Rails Application. Also a company worth ~1B$ guess. The app? The “simplest and most beautiful” customer support app.
Last but not least: TWITTER, in its early beginnings was full on a RoR App. Once it got more than ~100M users it was likely time to break that level of abstraction between Ruby and C and bet on robustness over agility [+ability to change rapidly]. Given funding was a no brainer, they re-developed it all in Scala/Java! More reasons as to why this change should be the topic for another article.
In a nutshell:
Business and Tech need to hold each other’s hand. And they totally can now.
Business is changing at the speed of light. Finding the right tech to allow rapid changes and agile prototyping is key: and that’s Rails.
Rails, is also at the heart of democratising programming “for all”. And business folks can get there via bootcamps such as Bitmaker in Toronto. In turn, the business will be contributing actively in quickly prototyping and testing web and mobile applications for clients, prospects, potential opportunities, in ways not possible before.
As a result, programmers should interest themselves into more business vision and topics as well: and it should be easier for them. These are great times and there hasn’t been a better moment for the business developer.
If you are a programmer and want to share your business experience please do so! Vice versa for the business chaps!