My thinking process as a codenewbie on why I chose to learn Rails
Back in Jan 2019, I made a promise to myself that Iāll really learn how to code that year. I asked:
Whatās next? Deciding what and how to learn. Go with plain vanilla HTML, CSS, JS, PHP, MySQL? Or go with tried and tested Ruby on Rails? Or try something new and shiny like MEAN?
I then went on to learn HTML, CSS, JS, PHP and MySQL in the months after that. Not an expert at any rate, nor at a level for a professional job, but enough to know how to go about creating a basic CRUD web app. And thatās all I need. I just want to know how to make products, not be a professional developer. Those languages were just for the foundational basics.
With the basics done, it's onward to another language that can help me with my bigger product aspirations ā Ruby on Rails!
Why Ruby on Rails?
Iām a conventional kinda guy
I love the philosophy behind it. Convention over configuration is something that resonates with me, even after this short time of writing code. I like that I donāt have to repeatedly code the same things over and over for every new app I create. I like following best practices and conventions that help me save time, because Iām just a solo indie maker with limited bandwidth, so I have to make choices about being intentional and selective of where best to focus my energy. Rails help me do that.
Fast shipping, fast goal
Because of convention-centric approach, Rails allows people to launch products fast, which is something I value at this stage of my maker journey. On top of that, with platforms like Heroku, itās so easy and fast to deploy, that itās even faster than good olā Wordpress (my tool of choice last year while doing the 12 startups in 12 months challenge)! Right now, Iām still in the early stages of product discovery, and finding product-market fit for stuff I want to make. Shipping fast helps me iterate fast, and evolve towards the $1mil goal that Iām aspiring towards.
It takes a village
Because Iām still a noob, I foresee Iām going to need lots of help, lots of community support. This is probably the biggest consideration - this is where Rails as a relatively older, stable language is best in. Being around for much longer time means more online resources, more communities, more āpluginsā to plug-and-play, and more guidance for rookies like me.
Love the process, enjoy the journey
I also love how Matz, the creator of Ruby, wanted to create a programming language that developers love to programme with. Thatās a value statement that rings deep. Thatās how I would love to code too - enjoying every line of it, not feel like Iām pulling teeth and hair every time. And in my experience so far having to write both Ruby code and Rails code, itās been astonishing readable and fast to pick up, even for rookies (and this contrasts to my own experience writing JS, PHP and MySQL).
Influencer influence
A few of the indie makers who I look up to on Twitter (like @yongfook, @marckohlbrugge) use Rails too, so you can say Iām biased. Some of my favourite apps on the internet are made on Rails too! Airbnb, Basecamp, Github, Fiverr, Goodreads, Twitter. These swung me over.
A treasure train to the Land of Oz
They say love blinds you. Somehow, thereās something about the name that I canāt quite put a finger toā¦it just sounds delicious to me. Something about ruby, gems, jewels, treasure, value, and rails, fast, destination, goals. A chat with some coding friends last week got us riffing about analogies like ruby slippers, going off the rails, on a treasure train - like Dorothy wearing the ruby slippers going to Land of Oz (thatās how I sometimes see my coding journey) and going off the rails, off the beaten track (my hope for living differently), on a treasure-filled bullet train (my $1mil goal). Did I say Iām a sucker for metaphors?
But Iām no code nazi
I mean, I love Rails, but that doesnāt mean Iām closing my doors to other languages. In the end, itās just a tool towards an end. Maybe in the future, what I want to make might be different from what I want to make now, and therefore I might need different tools, different frameworks and languages. Sure, no problem! Iām language-agnostic. Itās what product I want to make that matters, and your users donāt care a hoot about it as long as it solves their problem (unless your users are hardcore developers haha!). Iām drawn to the shiny new MEAN stack too, because of how we can use JS for front and back end development. Very enticing. Perhaps thatās something I can pick up next.
Follow my daily writings on Lifelog, where I write about learning to code, goals, productivity, indie hacking and tech for good.
Top comments (0)