Skip to content

jg-k/learn-ruby-and-rails

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Learn Ruby and Rails

This page is inspired by Felipe Vogel's fantastic Ruby resource list.
Felipe's list is extremely rich and contains most of the resources listed here, so I would encourage you to go straight to Felipe's page if you are looking for a well-researched and extensive Web development / Ruby / Rails / Front end resource list that will get you from 0 to 99.

This list serves primarily as a record for myself of the learning material I have been through and the resources I personally have found most valuable. I include a brief comment on each item, just the opinion of the moment, nothing absolute.
It also does not include formats that do not work well for me, such as videos and podcasts.

It could still be of interest if you are at the beginning of your journey and Felipe's list is too daunting.

Broken link or question? Feel free to open an issue.

Books

Programming

  • Programming Ruby 3.3 by Noel Rappin
    Aka the pickaxe. A classic on the Ruby language, well worth getting a weighty physical copy.
  • Metaprogramming Ruby by Pablo Perrota
    A great read that takes you beyond beginner level, demystifying a lot of concepts that are beyond ruby basics. I would not advise reading this too early in the learning journey as it would only overload your mental model and not much would stick. But once comfortable with the basics, it is the key that will let you dare to start opening existing gems and third-party libraries.
    Not the newest book around, but that doesn't matter much for the purpose.
  • Practical Object-Oriented Design, An Agile Primer Using Ruby (POODR) by Sandi Metz
    Highly recommended reading this early on in your journey, to get a grasp on essential Object-Oriented programming principles. Then get some practice before having another (quicker) read. I occasionally come back to it and while I still find useful parts, I appreciate getting a bit less out of it as you slowly internalize the main concepts over time.
  • High Performance Browser Networking by Ilya Grigorik
    Excellent general foundation knowledge on networking, transport protocols, HTTP versions, Browser APIs, etc. Parts of it are a bit dated but well worth a read. Great to read while commuting, as you don't need a ruby console nearby. Some bits can be skimmed through.
  • Refactoring - Improving the Design of Existing Code by Martin Fowler
    I mention it here because I purchased a copy and it is established as a classic, though I personally have not yet got much out of it. It contains a catalogue of techniques that is not easy to assimilate. I guess it is best to read it slowly, and immediately try out a technique in your codebase to see where it makes sense. Maybe better luck in the future.
  • A Common–Sense Guide to Data Structures and Algorithms by Jen Wengrow
    I was going through the Odin Ruby chapters and took a break to go through this book. I'd recommend it if you've never had computer science courses, as it's very much "algorithms for dummies". Great to get just enough algorithm culture for all these code katas (sorting, linked lists, b-trees, etc.). Covers most of the classics and stops when things get complex, so I intend to follow up with a next-level book on the topic at a later stage, yet it's totally sufficient to get rid of beginner/latecomer fear of the topic. Easy read.

Process & mindset

  • Shape Up by Ryan Singer
    37 signals process for running projects. Compelling read. I was lucky to get the chance to start following the Shape Up process in my team using Basecamp.
    While promising, it was axed before we got to really give it a good shot. It has nevertheless been my most enjoyable project management environment. One reason it may not suit all teams or everybody is that it demands a fairly high level of engagement from contributors in terms of reporting.
    One topic that resonated with me is that it rejects the "sprints" and "backlog" terminology from Scrum processes. While it may sound like a pure terminology choice, "backlog" of tasks gets you run down from the never-ending churn, and sprints get you tired if you try to keep up, or feel like a slacker if you're not constantly sprinting along.
    Shape Up provides the right level in terms of project scoping, wide individual responsibility to adjust the scope and define the end result within a frame.
    It is also an enjoyable and concise read.
  • User Story Mapping by Jeff Paton
    I ended up reading this book to get a better grasp on how to define requirements for software projects.
    I learned a lot from the book, what User Story Mapping is, and some interesting case studies from various organizations. But in hindsight, the main technique described in the book doesn’t feel very attractive as a design process, and if I were to run a large software project, I'd be more inclined to follow Shape Up than spend days in workshops covering walls with post-its.
  • The Lean Startup by Eric Ries
    A mega classic for anybody interested in startups.

Blogs

There are countless blogs on Ruby and Rails that one comes across when learning to code or researching a topic. I only list here a few I find excellent and to which I thought it worth subscribing to the newsletter.

  • Write Software Well
    Extremely well written. Hits the right spot in terms of depth of content. Does not make many assumptions on the reader’s prior knowledge even for more advanced topics, which is always a plus in my view.
  • Zverok on Lucid Code
    Fascinating deep dives on Ruby syntax. A great newsletter to subscribe to, emails are few and far between, but well worth a read, even if superficial, mostly for the fun of following the author's deep meandering into the history and evolution of the language.
  • Josh W Comeau
    Great interactive reference for Grids and Flexbox (and probably more now).

Newsletters

There are many more, yet I don't even manage to consistently read these. These two are excellent and complement each other well.

  • Ruby Weekly
    Classic.
  • Short Ruby by Lucian Ghinda
    Lucian includes relevant social media posts, which allows you to stay up to speed with discussion topics in the community and save you some time spent on X and co.

Courses

  • The Odin Project Foundation & Rails track
    Undoubtedly your best friend if you are getting into web development after a career change. Free, in-depth and itself a collection of high-quality content, either written directly for The Odin Project, or referring to other resources. The mix of own material and extensive references to a wide range of resources of all kinds is one of the strongest points as it very much reflects how one goes about learning about any topic later on and lets you figure out which ones work best for you (I figured out video content is not my thing!).
    It is a very long course which you can follow at your pace. When starting, I was obsessed with how fast or slow I should go or others would go. It’s hard, but the quicker you let go of these concerns, the better because there really is no valid answer. Depending on your prior knowledge, your experience, your available time for learning, the depth you wish to get into a topic, the time spent on the course can vary infinitely, and I believe the most important thing is to just keep going, no matter how slow you feel you are going.
  • Exercism
    Another fantastic resource. A large number of coding exercises in any language under the sun. The most valuable feature for me was the review and iteration process, either with a real human developer kindly and patiently reviewing your code submission for free, or by studying other possible solutions to a given exercise. This is excellent preparation for real-world pull request review processes.
    I'd advise starting with this early on, as it starts at "Hello World" and gets progressively harder. It also focuses on the "basics" of a language. Feels a bit like going to the gym, perfect to get your repetitions on the basic constructs.
    With the huge number of language tracks, there's no shortage of options for further exploration.
  • The Rails Tutorial $$ Not recommended.
    This is an extensive tutorial that will get you from zero knowledge to a nice-looking Twitter-like app and aim to teach the basics in all core areas along the way. The premise of the tutorial is that you will "Learn enough to be dangerous," with the idea that you will pick up the rest easily after completing it. The reality is that you are not dangerous at all, have a very shallow understanding of all the topics covered, yet you are left with the opposite impression that you can now build anything.
    If you are tempted, I would really recommend you do yourself a favor and take the slow and painful road straight away and go for something like the Odin project

Official docs

  • The rails guide Should likely be the first port of call for any rails related question, yet strangely for a long time, it was the last place I would look into.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published