概要
PHPやGoを触ってきた人間はRubyを学ぶ際に取り組んだことを書く。
取り組み
公式ドキュメント
何はともあれはまずは公式ドキュメント。
- Rubyとは
- Rubyの特徴を端的に記している
- 個別に深く調べておきたい仕様についてはここを参照すれば良さそう。
- 他言語からのRuby入門
- Rubyの言語仕様で特徴的な部分を記している。他言語にはない部分で学ぶべきポイントがまとまっている。
- 個別に深く調べておきたい仕様についてはこちらも参照すれば良さそう。
- PHPからRubyへ
- Goはなかった。元PHPerだったのでPHPのページを参照してみた。内容としては結構あっさりしている。
- 20分ではじめるRuby
- 軽く素振りするのにちょうど良い。
- オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (Ruby 3.3 リファレンスマニュアル)
- 有志によるリファレンスマニュアル。ありがたや。
本
定番系のものをピックアップした。
- たのしいRuby 第6版
- プロを目指す人のためのRuby入門
- パーフェクトRuby
- cf. パーフェクトRuby
- パーフェクトRuby on Rails
- Rubyではなくフレームワークだが、RubyやるならRailsも触る機会があるだろう
- cf. パーフェクトRuby on Rails
オブジェクト指向関連の本もピックアップしてはいたが、時間的都合で読めていない。
Ruby Tips
Tips関連の記事を読み漁った。
- Rubyで宣言的なプログラムを書くためのテクニックTips
- RubyのちょとしたTips
- Ruby競プロTips(基本・罠・高速化108 2.7x2.7)
- 内容が充実している
- Ruby特有の作法
- [Ruby, Rails] リファクタリングに役立つTips集 (初心者向け)
- Ruby の引数の種類をまとめてみた
- 引数の種類が多い・・!
- 一度に覚えきれないのでコード書いたり読んだりする上で覚えていきたい
- qiita.com - RubyでWebフレームワークを自作する
- Railsの基本理念 : Railsの生みの親が掲げる8つの原則
- Ruby on Railsの正体と向き合い方 / What is Ruby on Rails and how to deal with it?
- Ruby備忘録、Rubyの特に分かりにくかったところ、メソッド呼び出しのカッコ省略等
- パーフェクトRails著者が解説するdeviseの現代的なユーザー認証のモデル構成について
- DHHはどのようにRailsのコントローラを書くのか
ブログ
気になった言語仕様について学んでブログにまとめておいた。
コーディングクイズ
肩慣らしにコーディングクイズを解いておく。
- HackerRank - Prepare > Ruby
- Rubyのチュートリアルがあるので取り組んでおいた。
LeetCodeも数問解こうと思ったが時間的都合で一旦スキップした。
データ構造とアルゴリズム
言語の使い方を覚えるにあたってちょうど良い題材なので素振りした。
昔Goで書いたものをRubyに変換してみた。ChatGPTとCopilotがかなりサポートしてくれた。
デザインパターン
Rubyはオブジェクト指向言語であるので、いくつかパターンを素振りしておいた。
davidgf/design-patterns-in-rubyを参考に、いくつかピックアップして写経した。
所感
おおよそRubyの特徴的な言語仕様を把握することができたので、あとはひたすらコードを書いていく。
一通り学んで思ったのは、練度によってコードの冗長さがかなりブレるだろうなという印象を持った。PHPでもそういう部分はあるが、Goではあまり感じない部分ではあったので、コード読む際にしばらく苦労するかもしれない。
一方で、見た目や書き味的なところはシンプルさがありそうという印象を持った。
オブジェクト指向言語からしばらく離れていたので、クラス周りの取り扱いに不慣れさを感じたので練習したい。
Rubyを取り巻く環境を見ると、国産言語だけあって日本人コミッターが多かったり、RubyKaigiのレベルが高かったり、Rubyのコミュニティの熱量が高さを感じた。学びが多いだろうなという期待感を感じたので今後とも精進していきたい。
言語によってコミュニティの雰囲気が違う文化的な側面は大変面白い。