Findy Engineer Lab

エンジニアのちょい先を考えるメディア

もしもいま、Ruby/Railsをイチから学び直すとしたら? Ruby技術書著者・五十嵐 邦明さんに聞いた学習ロードマップ

めまぐるしく変化するテックの世界。技術を身に着けるうえで学ぶべきポイントや学習環境なども年々変わっています。

そこで「もしもいまの環境で、テックのことをイチから学び直すことになったら、自分はどんな風に勉強したいか」というIFストーリーを通じて、技術との向き合い方を考え直してみる企画「テック転生」。

今回お話を伺ったのは、Ruby・Rails関連の技術書を数多く上梓し、学習環境の充実化やエンジニア育成に尽力されてきた五十嵐邦明さん(@igaiga555)。“自分だったらこう進めたい、Ruby・Ruby on Railsの学習ロードマップ”を伺いました。

初心者に向けて執筆した『ゼロからわかる Ruby超入門』が最適

――五十嵐さんがいま、イチからRuby・Railsを学び直すとしたら、何から始めますか?

もしも私がこれから学び直すとしたら、自分が執筆した『ゼロからわかる Ruby超入門』を使って学習するかと思います。というのも、Ruby関連の本の中で一番わかりやすく易しい本を目指して書いたからです。

この本が出る前の他のRuby入門書は、既に他の言語を習得してからRubyを学ぼうとされる人が多かったこともあり、やや難しめの内容でした。

ただ現在では最初からRubyを学ぶ方も増えてきています。私は「自分が学んだときにこういう資料があるとよかったな」という思いを書籍の形にしてきている面もあるので、手前味噌になってしまいますが『ゼロからわかる Ruby超入門』をおすすめしたいですね。

アップデートも続け、2023年4月の第4刷でRuby3.2に対応しています。

――この本では、どんなスキルが身につくのでしょう。

Rubyはもちろん、基礎的なプログラミング知識も身につきます。

キーボードの中でプログラミングでしか使わないキーの位置の説明から始まり、プログラミングの基礎部品である計算、条件分岐、繰り返しの概念などを図解を入れて丁寧に説明しています。

そしてRubyでよく使用される整数、文字列、配列、Hashといったオブジェクトを説明しています。また、エラーメッセージの読み方とその対処方法、リファレンスマニュアルの調べ方、プログラミングの間違いを見つけて直すデバッグ方法も収録しているので、自分で調べながらプログラミングする力を身につけることができます。

文系大学でRubyの講義をした経験から、初めてプログラミングを学ぶ方がつまづきやすいところを補えるように執筆しました。

今の時代だと、Rubyは比較的覚えるのが簡単な言語に分類されると感じるので、プログラミングをスタートするときにRubyから始めるといいかもしれませんね。

――ちなみにRailsの学習についてはいかがでしょうか。

『ゼロからわかる Ruby超入門』は「この後Railsを学ぶ人が多いだろう」という想定で、Railsを学ぶための知識も押さえています。メソッドやクラス、モジュールの作り方とつかい方、例外処理など、最低限必要となる知識ですね。

応用として、簡単に扱えるWebフレームワーク「Sinatra」でWebサーバを作り、Ruby標準添付ライブラリである「Net::HTTP」を使ってサーバにアクセスするプログラムを書き、HTTPの基礎をプログラムを動かして実践的に学ぶ方法も収録しています。

こちらが本で学ぶ知識を図式化して一覧したものになります。基礎知識が身につき、Railsを本格的に学びたい人には『Railsの教科書』がおすすめです。Railsアプリを最小単位で作り、どのような仕組みで動いているかを図解して説明しています。

どの技術を学ぶべきか判断し、技術全体の関係を把握する

――RubyとRailsの基本を学んだあと、次のステップについてはいかがでしょう。

基本を学ぶと、Webサービスにはたくさんの技術が使われていることに気づきます。いま学んでいるこの技術は全体の中でどんな位置づけなのか、そして次は何を学べばいいのか、と悩む方も少なくないはずです。

そうした人たちに向けて執筆したのが『RubyとRailsの学習ガイド』になります。いわゆるガイドブック的な位置づけの本です。ですので、こちらを読むと、どんな技術を学ぶべきか、それら技術全体の関係の把握に役立つでしょう。

こちらは本に収録した、技術用語と、技術全体の関係を図式化したものです。RubyとRailsの基本を学んでも、どのような技術システムの中で機能するのかを把握しておかなければ十分に使いこなすことはできません。

そうした課題を解決し、さらなる知識を身につける道しるべとして本を活用してほしいですね。もちろんその他の入門書も読んで、さらに知識を深めていく必要があります。

実践的学習で自分の力を伸ばしていく

――技術の位置づけと全体像を学び終えた、その次のステップは?

次はRubyとRailsの実務に入って「どうやって自分の力を伸ばしていくのか」のフェイズになってくると思います。ここで活用したいのが、『Railsの練習帳』と『研鑽Rubyプログラミング』です。

Railsの世界は、入門書は充実していますが、実践的な内容がまとまった本は少ない印象があります。私が共著で執筆している『パーフェクトRuby on Rails』も役立ちますが、ほかの書籍や資料の数も少ないため、その他の内容をカバーできるように『Railsの練習帳』を執筆しています。

――こちらはどんな内容がまとまっているのでしょう。

『Railsの練習帳』は私の日々の業務でエンジニアとのペアプロや勉強会で話す中で、よく質問される内容を中心に書いたものです。『研鑽Rubyプログラミング』はRubyの知識としては一番難しいレベルの本ですので、その名の通り研鑽に役立つと思います。

――そのほか、実務に入るうえでやっておきたいことはありますか?

やはりコードレビューですね。現場で戦力になるためには、コードレビューを経て、自分のわからない部分を効率的に潰していく必要があります。

しかし、仕事でプログラミングをしている方は同僚や先輩からコードレビューを受ければいいのですが、個人でやっているとなかなか難しい部分もあるでしょう。

そういうときは「フィヨルドブートキャンプ」などのプログラミングスクールでコードレビューを受けるほか、『コードレビューで学ぶ Ruby on Rails 第二版』といった書籍を活用するといいと思います。

また、実務に入ったときコードレビューでの往復回数が多すぎると、企業や周りのエンジニアの負担になってしまいます。コードレビューで自分のコードを改善していくと、レビューの往復回数も減って業務スピードも上がっていくはずです。

――ここまで終えるとどれくらいのスキルレベルになっていると思われますか?

ジュニアから中級者レベルにはなっているかと思います。仕事を始めて1年目の方が、2〜3年でスキルを上げていく、というターンですね。

最近ではRailsが提供する新しいフロントエンド技術「Hotwire」もあるので、より学びたい方には『猫でもわかるHotwire入門 Turbo編』をおすすめします。

――ちなみにここまでで、初心者がつまづきやすそうな箇所はありますか?

これからプログラミングを始める方だと、Array(配列)やHashが出てくると難しくなるみたいですね。

それまでは数字や文字など単一のものを扱うものですがArrayやHashは複数の要素を扱うので混乱する方も多いのではないかと思います。

次に難しいのがクラスです。これまではRubyが用意したものを使っていたのが、突然「クラスを作ってみましょう」になるのでレベルがぐんと上がるんです。これまで教習所でクルマを運転していたのに、「エンジンを組み立ててみましょう」と全然違うことに挑戦させられるというか。ですが、苦手意識を持たず一歩一歩学んでいけば大丈夫です。

今が一番プログラミングを学びやすい状況

――RubyやRailsに関しては日本語の教材も充実しており、かなり学びやすい環境になっていると思います。五十嵐さんはなぜこのようなRubyを学びやすい環境を作られてきたのでしょう。

僕はRubyが好きなので、長くRubyを使いたいなと考えているんです。そのためにはRubyを使う人や仕事を増やしていかなければいけません。

だからRubyの門を叩く人がいたら、その門のそばにいて「こういうわかりやすい本があるよ」ということを伝えてあげたいなと。そうすることでRubyを好きになる人が増えたらうれしいし、仲間が増えればRubyコミュニティがどんどん広がっていくはずです。それが僕のモチベーションですね。

『ゼロからわかる Ruby超入門』も増刷と更新を続けています。2022年よりも2023年のほうがよく売れていて、世の中にRubyを学ぶ人が増えているなとうれしくなりました。

――最後に、今の学習環境の変化についてどう受け止められていますか?

ChatGPTが普及したことで、書いたコードをAIに送ってすぐにフィードバックをもらえる環境になりました。

本を執筆していて一番やりたいのが直接読者とインタラクティブなやり取りをすることです。ChatGPTは何度も質問者と対話できるので、本を書いている身としては、すごくうらやましいです。質問する側からすると、ChatGPTにわからないことを聞いて、それでもわからなければもう一度質問できるのは嬉しい点ですね。

ただし嘘の答えや脆弱性を含んだコードを返されることもあるので、2024年現在は書籍などで体系的に学んだあとに補助的に使う位置づけでしょうか。それでもすごく便利なので、積極的に活用して勘所を掴んでもらえるといいと思います。

学びやすい環境になったことは間違いないので、Rubyを学ぶ人がさらに増えたらとても嬉しいです。