Learning Rails
Tags: ruby, rails, webdev
Published: 2021-03-11 22:07:50

So, I decided to write this article to share a few resources I have used over the last twenty months of learning Ruby and Ruby on Rails in the hopes 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, which started as a hobby. Initially, I build my first website with HTML 3.2 because my business needed a website. For fun, I eventually, I supported many area non-profits by building WordPress sites for many years. However, two years ago, something changes, I had a desire to learn more and transition to a professional career. 

In August 2019, I started at [Flatiron School](https://flatironschool.com/) and fell in love with the entire Ruby eco-system: Ruby, Sinatra, and especially [Ruby on Rails](https://rubyonrails.org/). I have a thirst and drive to **be better tomorrow than I am today**, so these resources reflect that desire.

## Free Resources

[Gorails](https://gorails.com/start) - this course is by Chris Oliver of GoRails, creator of [JumpstartPro](https://jumpstartrails.com/?utm_source=gorails) and [Hatchbox](https://hatchbox.io). This is a new free course for beginners , and is a great place to begin, watch, and code along.

[Rails Code Along](https://www.railscodealong.com/) - Steve Polito's course is a little different. This course bridges the gap between building side-projects, to a full production application. It follows full Test Driven Development with a Continuous Integration workflow. If you have been coding Rails for a little while, this will really way to step up your game.

[Rails Guides](https://guides.rubyonrails.org/) - 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](https://www.theodinproject.com/courses/ruby-on-rails) - a lot of Rails developers started with Odin Project, I just never have.

[Web-Crunch](https://web-crunch.com/) - Andy Leverenz has a multi-part Rails series that I understand is quite good.

## Commercial Resources

[Rails Tutorial](https://www.learnenough.com/) - the Rails Tutorial, by [Michael Hartl](https://twitter.com/mhartl), has been the definitive standard for learning Rails for years. It is on 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 am continually referencing the book, or the finished application. It covers User accounts (not Devise), relationship models, and all with TDD using minitest.

[Professional Rails Code Along](https://www.udemy.com/share/101EFgB0UTdV9TRnw=/) - this Udemy course takes a unique approach of mimicking a Professional Production application, designed to meet the clients' expectations. It includes an Administration Dashboard to manager users and resources, and 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 Rails and Ruby versions. When I hit a roadblock, I stop, worked through the problems, and documented the results. 

[Ruby on Rails 5 - BDD, RSpec and Capybara](https://www.udemy.com/course/ruby-rails-5-bdd-rspec-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](https://store.afomera.dev/) - Andrea's courses are top notch. She has a Rails course that touches on User accounts, relationships, and Javascript reactive rendering, just to name a few topics. There is also a new pre-released course **Learn Hotwire by Building a Forum** that I am doing right now that covers reactivity of Hotwire and is excellent.

[Jason Charnes](https://courses.jasoncharnes.com/) - offers a great course called **Interactive Rails with StimulusReflex** which I highly recommend, which teaches Stimulus Reflex. 

## Books

Books I have read and/or 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](https://virtualcoffee.io/) - Virtual Coffee is a laid-back conversation with developers twice a week. It's the conversation that keeps going in 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](https://gorails.com/) - 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
a lot of directions, mostly influenced by the amount of job posting 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 have a
desire to fully learn. 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 just Rails.

It was important for me to develop a routine, a routine that was missing since Bootcamp. 

My daily routine is the same each day:
- In my office at 6am everyday
- 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
- Then, pay attention to this part, **I code eight hours a day**, committing and pushing code to a repository, running continuous integration, and sometimes deploying.  

That's right I work as if I already had the job I am searching. It is important to develop skills and the muscle memory of developing. 

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 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 just have to build stuff. It is the task of build were you learn to work through problems, and solve tasks. 

## So, What now.
I have been searching for my first full-time Rails position for thirteen months. During this time I have met a lot of wonderful developers, I have 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 that first position, I am a Rails developer and therefore I code. 

## Footnote

This has been fun. Leave a comment or send me a DM on [Twitter](http://twitter.com/EclecticCoding).

Shameless Plug: If you work at a great company, and you are in the market for a Software Developer with a varied skill set and life experiences, and strives to be *better tomorrow than I am today*, send me a message on [Twitter](http://twitter.com/EclecticCoding) and check out my [LinkedIn](http://www.linkedin.com/in/dev-chuck-smith).

Credit: [Localhost SSL](https://github.com/codica2/rails-puma-ssl)