Learning Rails
So, I decided to write this article to share a few resources I have used over the last 20 months of learning Ruby and Ruby on Rails, in the hopes that it may help others. Also, I am writing to share a little of my story.
I have always loved web technologies and am a self-taught developer who started as a hobby. I built my first website with HTML 3.2 because my business needed one. For fun, I eventually supported many area non-profits by building WordPress sites for many years. However, two years ago, something changed; I had a desire to learn more and transition to a professional career.
In August 2019, I started at Flatiron School and fell in love with the entire Ruby ecosystem: Ruby, Sinatra, and especially Ruby on Rails. I have a thirst and drive to be better tomorrow than I am today, so these resources reflect that desire.
Free Resources
Gorails: This course is by Chris Oliver, creator of JumpstartPro and Hatchbox. This is a new free course for beginners, and it is a great place to begin, watch, and code along.
Rails Code Along - Steve Polito's course is a little different. This course bridges the gap between building side-projects and a full production application. It follows full Test Driven Development with a Continuous Integration workflow. If you have been coding in Rails for a little while, this will really help you step up your game.
Rails Guides - Yes, the Rails Guides. Rails documentation is actually quite good. Any sharp developer needs to learn to read the documentation.
Other I have not used: OdinProject - a lot of Rails developers started with Odin Project, I never have.
Web-Crunch - Andy Leverenz has a multi-part Rails series that I understand is quite good.
Commercial Resources
Rails Tutorial - the Rails Tutorial, by Michael Hartl, has been the definitive standard for learning Rails for years. It is no longer free, so it is listed in the Commercial section, but it is worth the cost of admission. Even if you only purchase the Book, it is a great resource. I finished this tutorial while learning Rails at Flatiron, and I continue to reference the Book or the finished application. It covers User accounts (not Devise), relationship models, and all with TDD using minitest.
Professional Rails Code Along - this Udemy course takes a unique approach by mimicking a Professional Production application designed to meet clients' expectations. It includes an Administration Dashboard to manage users and resources, as well as full Test-Driven Development. Now, the tutorials are dated as they are built with Rails 4.2.6. So, I decided to build with the latest versions of Rails and Ruby. When I hit a roadblock, I stop, work through the problems, and document the results.
Ruby on Rails 5 - BDD, RSpec, and Capybara - a full TDD course by Mashrur Hossain and Emmanuel Asante. Again, a little dated (Rails 5.1), so as before, I decided to build with the latest Rails and Ruby versions.
Andrea Fomera - Andrea's courses are top-notch. She has a Rails course that covers user accounts, relationships, and JavaScript reactive rendering, among other topics. There is also a new pre-released course, Learn Hotwire by Building a Forum, that I am doing right now and covers Hotwire's reactivity-it's excellent.
Jason Charnes offers a great course called Interactive Rails with StimulusReflex, which I highly recommend, that teaches Stimulus Reflex.
Books
Books I have read and/or am reading that I have found beneficial
- Confident Ruby by Avdi Grimm
- Metaprogramming Ruby by Paola Perrotta
- Practical Object-Oriented Design by Sandi Metz
Communities
Being in a community of developers has been vital to my personal growth:
- VirtualCoffee - a laid-back conversation with developers twice a week. It's the conversation that keeps going on Slack. It's the online events that support developers at all stages of the journey. It's the place you go to make friends.
- GoRails - a community of Rails developers, learning Ruby on Rails to build their ideas, products, and businesses.
- Local and virtual Ruby Meetups
- Rails and StimulusReflex Discord
Workflow
When I first graduated from Flatiron in February 2020, I was pulled in many directions, mostly influenced by the number of job postings I was reading. I spent time learning more about Redux, a lot of time learning Vue, which I loved, and time learning the basics of Python, which I want to learn fully. Eventually, I spent some time considering exactly what I wanted to do with my development career - I LOVE RAILS, so I redoubled my efforts to focus on Rails.
It was important for me to develop a routine, a routine that had been missing since Bootcamp.
My daily routine is the same each day:
- In my office at 6 am every day
- Catch up on emails, and follow up on potential Ruby/Rails job openings
- Network on Twitter, LinkedIn, and the Slack communities I am a member of
- Then, pay attention to this part: I code 8 hours a day, commit and push to a repository, run continuous integration, and sometimes deploy
That's right I work as if I already had the job I am searching. It is important to develop skills and muscle memory.
The second routine I have developed is to make notes. If I have worked through a problem in a tutorial or side project, I document it in a Notions workbook. There is no reason to do the same task of discovery all over again.
It is fine to study, learn, listen to others, follow tutorials, but you have to build stuff. It is the task of building that teaches you to work through problems and complete tasks.
So, What now.
I have been searching for my first full-time Rails position for thirteen months. During this time, I have met many wonderful developers, sharpened my skills, and, with a strong passion and desire to be better tomorrow than I am today, I continue to code. Why?
I am a Rails Developer. Even though I am still searching for my first position, I am a Rails developer, and therefore, I code.