Skip to content

First pass at updating en/documentation/index.md #3427

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 31, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
264 changes: 181 additions & 83 deletions en/documentation/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,48 +18,56 @@ The authoritative Ruby language documentation at [docs.ruby-lang.org][docs-rlo-e

### Getting Started

[Official FAQ](/en/documentation/faq/)
: The official frequently asked questions.

[Ruby Koans][2]
: The Koans walk you along the path to enlightenment in order to learn
Ruby. The goal is to learn the Ruby language, syntax, structure, and
some common functions and libraries. We also teach you culture.

[Why’s (Poignant) Guide to Ruby][5]
: An unconventional but interesting book that will teach you Ruby
through stories, wit, and comics. Originally created by *why the lucky
stiff*, this guide remains a classic for Ruby learners.

[Ruby Essentials][7]
: A free on-line book designed to provide a concise
and easy to follow guide to learning Ruby.
[Try Ruby][1]
: You can try Ruby right in your browser.

[Learn to Program][8]
: A wonderful little tutorial by Chris Pine for programming newbies. If
you don’t know how to program, start here.

[Learn Ruby the Hard Way][38]
: A very good set of exercises with explanations that guide you from
the absolute basics of Ruby all the way to OOP and web development.
[Ruby in Twenty Minutes][rubyin20]
: A small Ruby tutorial that should take no more than 20 minutes to
complete.

### Manuals
[The Odin Project][odin]
: An open source full stack curriculum

[Programming Ruby][9]
: The seminal work on Ruby in English, this first edition of the
[Pragmatic Programmers’ book][10] is available for free online.
[excercism][exercism]
: 120 exercises with automatic analysis and personal mentoring.

[The Ruby Programming Wikibook][12]
: A free online manual with beginner and intermediate content plus a
thorough language reference.
[Codecademy][codecademy]
: Online code bootcamp with a variety of topics. Freeish.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
: Online code bootcamp with a variety of topics. Freeish.
: Online code bootcamp with a variety of topics.


### Manuals / Books

#### Beginner

[Programming Ruby 3.3][pickaxe]
: The seminal work on Ruby in English. Recently updated to Ruby 3.3.

[The Well-Grounded Rubyist][grounded]
: A tutorial that begins with your first Ruby program and takes you all the way to sophisticated topics like reflection, threading, and recursion.

#### Intermediate

[Practical OOD in Ruby (POODR)][poodr]
: A programmer's tale about how to write object-oriented code.

#### Expert

[Metaprogramming][meta]
: Explains metaprogramming in a down-to-earth style.

[Ruby Under a Microscope (RUM)][microscope]
: An illustrated guide to Ruby internals.

### Reference Documentation

[Official API Documentation][docs-rlo-en]
[Official API Documentation][docs-rlo-en] [(JP)][docs-rlo-jp]
: The official Ruby language documentation for different versions including
the currently unreleased (trunk) version.

[Ruby C API Reference][extensions]
[Ruby C API Reference][extensions] [(JP)][extensions-jp]
: The official introduction to Ruby's C API.
Great if you want to write C extensions
or contribute to Ruby’s development.
Expand All @@ -71,6 +79,61 @@ The authoritative Ruby language documentation at [docs.ruby-lang.org][docs-rlo-e
[RubyAPI.org][rubyapi-org]
: Easily find and browse Ruby classes, modules, and methods.

[ruby-doc.org][39]
: Online API documentation

[DevDocs.io][40]
: Online API documentation

[Ruby QuickRef][42]
: The Ruby quick reference

[rubyreferences][43]
: A full language reference + detailed language changelog. Fantastic.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
: A full language reference + detailed language changelog. Fantastic.
: A full language reference + detailed language changelog


### Style Guides

[rubystyle.guide][44]
: RuboCop's Ruby style guide

[RuboCop][45]
: Automated enforcement of their style guide.

[Shopify][46]
: Shopify's Ruby style guide

[GitLab][47]
: Gitlab's Ruby style guide

[Airbnb][48]
: Airbnb's Ruby style guide

[w3resource][49]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your contribution and for adding helpful links 🙌🏻 I noticed this one has significant number of ads (screenshot below). While the content looks valuable, I wonder if we should consider whether this is a good addition to be on the documentation page on the Ruby official website 🤔

CleanShot 2024-11-25 at 21 51 56@2x

: W3's Ruby style guide
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd suggest dropping this, it seems to be a copy-paste of Airbnb's guide.


# Tools

[IRB][50]
: The interactive Ruby Read-Eval-Print-Loop (REPL)

[Pry][51]
: An alternative Ruby REPL

[Rake][52]
: A make-like build utility for Ruby.

[RI][53]
: (Ruby Information) is the Ruby command-line utility that gives fast and easy on-line access to Ruby documentation.

[RBS][54]
: Type Signature for Ruby

[TypeProf][55]
: An experimental type-level Ruby interpreter for testing and understanding Ruby code.

[Steep][56]
: Static type checker for Ruby.

### Editors and IDEs

For coding in Ruby, you can use the default editor of your operating
Expand All @@ -79,71 +142,106 @@ syntax-highlighting, file browsing) or an integrated development
environment with advanced features (e.g. code completion, refactoring,
testing support).

Here is a list of popular tools used by Rubyists:

* Linux and cross-platform tools:
* [Aptana Studio][19]
* [Atom][atom]
* [Emacs][20] with [Ruby mode][21] and [Rsense][22]
* [Eric][eric]
* [Geany][23]
* [gedit][24]
* [Kate][kate]
* [KDevelop][kdevelop]
* [NetBeans][36]
* [RubyMine][27]
* [SciTe][28]
* [Sublime Text][37]
* [Vim][25] with [vim-ruby][26] plugin and [Rsense][22]
Here is a list of popular editors used by Rubyists, broken up by
learning curve:

* Days
* [Sublime Text][37] (paid)
* [Visual Studio Code][vscode]
* [Zed][zed]
* Months
* [RubyMine][27] (paid)
* "Years" (as in, you'll spend years still learning things about it)
* [Emacs][20] with [Ruby mode][21] or [Enhanced Ruby mode][enh-ruby-mode]
* [Vim][25] with [vim-ruby][26] plugin
* [NeoVim][neovim]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if we need or should pair editors with experience levels. For example, I started writing Ruby with Vim, then switched to NeoVim for like 6 years, and switched to VS Code like 2 years ago.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the idea is from an approachability standpoint instead of an end user skill level standpoint.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, I meant this more about learning curve of the editor


All of these editors support the Language Server Protocol (LSP),
either by default or through their LSP plugins. Shopify's
[ruby-lsp][ruby-lsp] is one of the most popular language servers for
Ruby and [supports all of the above editors][shopify_lsp].

### Older Reading / Resources

These links were more prominent but haven't been updated in ages.

[Ruby Koans][2]
: The Koans walk you along the path to enlightenment in order to learn
Ruby. The goal is to learn the Ruby language, syntax, structure, and
some common functions and libraries. We also teach you culture.

[Ruby Essentials][7]
: A free on-line book designed to provide a concise
and easy to follow guide to learning Ruby.

* On Windows:
* [Notepad++][29]
[Why’s (Poignant) Guide to Ruby][5]
: An unconventional but interesting book that will teach you Ruby
through stories, wit, and comics. Originally created by *why the lucky
stiff*, this guide remains a classic for Ruby learners.

* On macOS:
* [TextMate][32]
* [BBEdit][33]
* [Dash][39] (documentation browser)
[Learn Ruby the Hard Way][38]
: A very good set of exercises with explanations that guide you from
the absolute basics of Ruby all the way to OOP and web development.

### Further Reading
[Programming Ruby][9]
: The seminal work on Ruby in English, this first edition of the
[Pragmatic Programmers’ book][10] is available for free online.
Comment on lines +186 to +188
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[Programming Ruby][9]
: The seminal work on Ruby in English, this first edition of the
[Pragmatic Programmers’ book][10] is available for free online.
[Programming Ruby][9]
: The first edition of this seminal work on Ruby in English is available for free online.

The current edition is already linked to in the Books section.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is. They are different things.


[Ruby-doc.org][34] maintains a comprehensive list of English
documentation sources.
If you have questions about Ruby the
[mailing list](/en/community/mailing-lists/) is a great place to start.
[The Ruby Programming Wikibook][12]
: A free online manual with beginner and intermediate content plus a
thorough language reference.

[1]: https://try.ruby-lang.org/
[2]: https://rubykoans.com/
[5]: https://poignant.guide
[7]: http://www.techotopia.com/index.php/Ruby_Essentials
[8]: http://pine.fm/LearnToProgram/
[9]: http://www.ruby-doc.org/docs/ProgrammingRuby/
[7]: https://www.techotopia.com/index.php/Ruby_Essentials
[8]: https://pine.fm/LearnToProgram/
[9]: https://www.ruby-doc.org/docs/ProgrammingRuby/
[10]: https://pragprog.com/titles/ruby5/programming-ruby-3-3-5th-edition/
[12]: http://en.wikibooks.org/wiki/Ruby_programming_language
[extensions]: https://docs.ruby-lang.org/en/master/extension_rdoc.html
[16]: http://www.rubydoc.info/
[rubyapi-org]: https://rubyapi.org/
[19]: http://www.aptana.com/
[20]: http://www.gnu.org/software/emacs/
[21]: http://www.emacswiki.org/emacs/RubyMode
[22]: http://rsense.github.io/
[23]: http://www.geany.org/
[24]: http://projects.gnome.org/gedit/screenshots.html
[25]: http://www.vim.org/
[12]: https://en.wikibooks.org/wiki/Ruby_programming_language
[16]: https://www.rubydoc.info/
[20]: https://www.gnu.org/software/emacs/
[21]: https://www.emacswiki.org/emacs/RubyMode
[25]: https://www.vim.org/
[26]: https://github.com/vim-ruby/vim-ruby
[27]: http://www.jetbrains.com/ruby/
[28]: http://www.scintilla.org/SciTE.html
[29]: http://notepad-plus-plus.org/
[32]: http://macromates.com/
[33]: https://www.barebones.com/products/bbedit/
[34]: http://ruby-doc.org
[36]: https://netbeans.org/
[37]: http://www.sublimetext.com/
[27]: https://www.jetbrains.com/ruby/
[34]: https://ruby-doc.org/
[37]: https://www.sublimetext.com/
[38]: https://learncodethehardway.org/ruby/
[39]: http://kapeli.com/dash
[docs-rlo-en]: https://docs.ruby-lang.org/en/
[atom]: https://atom.io/
[39]: https://www.ruby-doc.org/
[40]: https://devdocs.io/ruby/
[42]: https://www.zenspider.com/ruby/quickref.html
[43]: https://rubyreferences.github.io/
[44]: https://rubystyle.guide/
[45]: https://github.com/rubocop/ruby-style-guide
[46]: https://ruby-style-guide.shopify.dev/
[47]: https://docs.gitlab.com/ee/development/backend/ruby_style_guide.html
[48]: https://github.com/airbnb/ruby
[49]: https://www.w3resource.com/ruby/ruby-style-guide.php
[50]: https://github.com/ruby/irb
[51]: https://github.com/pry/pry
[52]: https://github.com/ruby/rake
[53]: https://ruby.github.io/rdoc/RI_md.html
[54]: https://github.com/ruby/rbs
[55]: https://github.com/ruby/typeprof
[56]: https://github.com/soutaro/steep
[codecademy]: https://www.codecademy.com/learn/learn-ruby
[docs-rlo-en]: https://docs.ruby-lang.org/en/latest
[docs-rlo-jp]: https://docs.ruby-lang.org/ja/latest
[enh-ruby-mode]: https://github.com/zenspider/enhanced-ruby-mode/
[exercism]: https://exercism.org/tracks/ruby
[extensions-jp]: https://docs.ruby-lang.org/jp/master/extension_rdoc.html
[extensions]: https://docs.ruby-lang.org/en/master/extension_rdoc.html
[grounded]: https://www.manning.com/books/the-well-grounded-rubyist-third-edition
[meta]: https://pragprog.com/titles/ppmetr2/metaprogramming-ruby-2/
[microscope]: https://patshaughnessy.net/ruby-under-a-microscope
[neovim]: https://neovim.io/
[odin]: https://www.theodinproject.com/paths/full-stack-ruby-on-rails/courses/ruby
[pickaxe]: https://pragprog.com/titles/ruby5/programming-ruby-3-3-5th-edition/
[poodr]: https://www.poodr.com/
[ruby-lsp]: https://github.com/Shopify/ruby-lsp
[rubyapi-org]: https://rubyapi.org/
[rubyin20]: https://www.ruby-lang.org/en/documentation/quickstart/
[shopify_lsp]: https://shopify.github.io/ruby-lsp/editors.html)
[vscode]: https://code.visualstudio.com/docs/languages/ruby
[eric]: https://eric-ide.python-projects.org/
[kdevelop]: https://www.kdevelop.org/
[kate]: https://kate-editor.org/
[zed]: https://zed.dev/
Loading