seanlerner / ruby-and-rails-learning-plan

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ruby and Rails Learning Plan

This learning plan is designed for someone new to both Ruby and Rails.

It'll start you off on the Ruby path and then introduce Rails.

I recommend you have a good fundamental understanding of Ruby before learning Rails.

This document was created by Sean Lerner.

Some of the recommended books are available for free on the web. Others can be purchased or accessed through O'Reilly.

O'Reilly Books for free or on the cheap

The O'Reilly monthly plan is a little expensive, but there are ways to access it for free or on the cheap:

  • Your local library may offer access to free. For example, the Toronto Public Library system does.

  • Your employer may already have a team membership or provide you a learning budget.

Learn Ruby The Hard Way

First go through Learn Ruby The Hard Way:
https://learnrubythehardway.org/book/

Exercism - Ruby Track

After you complete a few exercises from Learn Ruby the Hard Way, sign up to Exercism and register for the Ruby track:
https://exercism.io/my/tracks/ruby

They have 'mentor' and 'non-mentor' modes: go with non-mentor mode (as with mentor mode, you won't be able to progress until a mentor reviews your submissions, which can take a while). Instead, if you get stuck, you can reach out to me for help.

Continue in parallel:

  • Learn Ruby the Hard Way
  • Ruby Exercism track

Command Line Crash Course

If you are new or uncomfortable working on the command line, do this quick Command Line Crash Course:
https://learnpythonthehardway.org/python3/appendixa.html

Eloquent Ruby

After you've completed Learn Ruby The Hard Way go through Eloquent Ruby:
http://eloquentruby.com/

The chapters are small and easily digestible.

Continue in parallel:

  • Eloquent Ruby
  • Ruby Exercism track

Michael Hartl Rails Tutorial

About half way through Eloquent Ruby, start doing the Michael Hart Rails Tutorial.
The first 3 chapters are free online and it's also available through O'Reilly books:
https://www.railstutorial.org/

Continue in parallel:

  • Eloquent Ruby
  • Michael Hartl Rails Tutorial
  • Ruby Exercism track

Think Like (a) Git

About half way through the Rails Tutorial, start interspersing your other learning with the content on Think Like (a) Git:
http://think-like-a-git.net/

Continue in parallel:

  • Eloquent Ruby
  • Michael Hartl Rails Tutorial
  • Ruby Exercism track
  • Think Like (a) Git

Going Further

If you'd like to dive deeper on some of the above topics, try thoughtbot's Upcase learning trails:

https://thoughtbot.com/upcase/practice

Editor

There are many popular editors. Knowing your editor well is key to levelling up as a developer. At the time of this writing, popular editors include Sublime, Atom, VS Code, Vim, Emacs, and RubyMine. There's too many editors to provide good suggestions on where to look to learn your editor of choice better, so I recommend you seek this material out yourself.

(however, the author of this document uses Sublime, and he recommends you try https://sublimetextbook.com/ if you choose to go with sublime)

Diagramming

These video tutorials will get you started:

UML Tutorial Videos

Use Case Diagram
Sequence Diagram
Class Diagram

ERD Tutorial Videos

Part 1
Part 2


Alternate Options

If the above isn't working well for you, try some of these alternate options.

Books

Instead of Learn Ruby the Hard Way and Eloquent Ruby, try:

The Ruby Way:
http://therubyway.io/

Coding Challenge Site

Instead of Exercism, try:

Codewars:
https://www.codewars.com/

HackerRank:
https://www.hackerrank.com/

Ruby Koans:
http://rubykoans.com/

Videos

If video is more your learning style, you can try Lynda's courses instead of the books:

Ruby Essential Training:
https://www.lynda.com/Ruby-tutorials/Ruby-Essential-Training-1-Basics/769286-2.html

Ruby on Rails 6 Essential Training:
https://www.lynda.com/Ruby-Rails-tutorials/Ruby-Rails-6-Essential-Training/2825370-2.html

The Odin Project

The Odin Project offers learning paths similar to this document:

Ruby Programming:
https://www.theodinproject.com/courses/ruby-programming

Rails on Rails:
https://www.theodinproject.com/courses/ruby-on-rails

About