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!
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.
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.
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.
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).
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.
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?
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.