Since I’ve been the CTO and teacher of the French coding bootcamp Le Wagon, the question “Why learn Ruby on Rails?” is often asked by many entrepreneurs who are eager to learn to code. That’s why I decided to put together a list of seven key points explaining why we decided to train newbies how to code by teaching them Ruby on Rails.
Important: Note that Ruby / Ruby on Rails is a good choice to start programming, but not an exclusive choice. Python / Django are also solid options. At Le Wagon we decided to teach Ruby on Rails mainly because of its educational value.
Ruby, an easy-to-approach programming language
One of the first nice things about Ruby on Rails lies in the Ruby language itself. The syntax is simple, concise, close to the English language and very flexible. For experienced developers, Ruby opens the way for meta-programming (the act of writing code in order for your service to generate other pieces of code automatically) uniquely. Intellectually, it’s a pleasure to structure one’s thinking and to write code in this language.
A minimal tool set
Once the setup and config made on your computer, the tool set associated with Ruby on Rails is the simplest of all: a text editor, a terminal and a browser. No time wasted nor loading screen when coding. Your computer breathes. You too.
Rails is a framework, meaning a frame which the developer must fit into. It is also a unique tool perfectly suited to web application development. For a startup, go fast, pivot, iterate, change your mind, scale, build and deconstruct is part of everyday life. Rails offers extraordinary flexibility to cash without flinching all these changes.
Whatever field you want to invest yourself into, in general, you will need: a database, a Front-End (the visible part of your application) and a Back-End (server-side code). Painlessly blending and organizing these three elements is definitely the sweet spot of Rails.
Simplified learning and cooperation
Rails is based on the principle of Convention over Configuration. The architecture of your code is standardized, and made mandatory by the framework. There’s always a rails way to get things done. This allows a Rails developer to rapidly get hold of any Rails application, even if he hasn’t coded a line, which grandly facilitates collaboration and learning.
This may disconcert developers coming from a more verbose language, which often will wonder where the code is located. You need to get along with this abstraction. But once the conventions understood and assimilated, the speed of development of any new functionality is extraordinary.
The strength of its community
Rails is a Gem, that is to say an open source module developed and maintained for over 10 years by thousands of developers. In addition, there are thousands of gems out there, we have recently presented 25 of them. Thus, when a new feature is to be developed, 90% of the time, the work can be performed quickly on the basis of an existing module.
The code of each gem is available on GitHub, and even if you don’t find a gem with the exact feature you want, no worries, you can then simply fork the gem and edit it to the specific functionality you were looking for. Up to you then to share (give back) this new feature with the community by submitting a pull request to the initial gem, so your new piece of code can be merged into it. This spirit is great ethically / morally, but also economically, as the ruby developers don’t reinvent the wheel each time but integrate existing bricks in order to focus on the business needs of their users / clients.
Historically, the Ruby community is based on a culture of openness and sharing. In addition to the multiple communities on the web, you will find many physical relays around the world, like the excellent Paris.rb group.
A recognized skill in the Startup ecosystem…
If on one hand languages like Java and C# remain predominant in the corporate world, on the other side Ruby is often acclaimed by the startup environment. Many successful web startups began and continue with Rails (GitHub, Twitter, Basecamp, Shopify …) and some Le Wagon alumni found developer jobs in startups.
…that makes sense within a broader stack
Alan Turing showed that all languages are intrinsically equal in terms of expressiveness, which means that once you know how to program in a language, you can program in all languages. Acquiring the programmer mindset is the hardest part of the game.
And if a job requires you to code in another language, after an intensive week you will quickly be able to see the syntactic analogy between your preferred language and the new one. Actually you will need at least a more complete stack control:
- HTML & CSS are not programming languages, but markup languages, for data representation. This is what your browser needs to read in order to display a web page properly (content and style)
- GitHub Flow: it is always relevant to keep track of the different versions of your code and to use git for that, even if you work alone. It’s a great tool and GitHub has sublimated it by adding a social layer and some great collaboration tools.
- SQL: is the query language used to talk to a database such as PostgreSQL. A web application presents data to the user, and allows you to modify them (eg, Facebook displays posts in a feed, and lets you create new ones). It’s the role of the database to store it all.
All these concepts are addressed and integrated within Le Wagon’s Full-Stack program and it’s amazing to see what our students acquire in 9 weeks what others take year. Le Wagon’s students, seasoned or wannabe entrepreneurs, bring a great diversity in the projects, and are continuously challenging the expertise of the staff. Definitely refreshing! Not to mention these bluffing results!
Let’s build our world!
CTO du Wagon