kakakakakku blog

Weekly Tech Blog: Keep on Learning!

プログラミング初心者だけじゃなくプログラミング講師も読むべき一冊だった /「ゼロからわかる Ruby 超入門」を読んだ

11月末に発売された「ゼロからわかる Ruby 超入門」を読んだ.最近まで2年ほどプログラミング講師として Ruby / Ruby on Rails を教えていたので,プログラミング初心者に教えるノウハウが得られたら良いなと考えていた.そして本書は「本当にプログラミング初心者でも挫折せずに読める」素晴らしい本だった.タイトルに「超入門」とあるけど,個人的には「超入門(から中級まで幅広く)」かなと感じた.なぜかと言うと,本書を読み進めていくと,例えば .methods.instance_variables など,中級レベルの内容も出てくるから.今回はプログラミング講師の観点で書評を書きたいと思う.

ゼロからわかる Ruby 超入門 (かんたんIT基礎講座)

ゼロからわかる Ruby 超入門 (かんたんIT基礎講座)

目次

  • CHAPTER 1 : 環境をつくる
  • CHAPTER 2 : かんたんなプログラムを書く
  • CHAPTER 3 : 処理の流れを変える
  • CHAPTER 4 : まとめて扱う - 配列
  • CHAPTER 5 : 便利な道具を使う
  • CHAPTER 6 : 組で扱う - ハッシュ
  • CHAPTER 7 : 小さく分割する - メソッド
  • CHAPTER 8 : 部品をつくる - クラス
  • CHAPTER 9 : 部品を共同利用する - モジュール
  • CHAPTER 10 : Webアプリをつくる
  • CHAPTER 11 : 使いこなす

オススメの読み方を考えた

あくまで参考程度にどうぞ!

プログラミング初心者には「無理に1回で読まず,一歩一歩自信を付けながら,繰り返し読むと良いよ!」と伝えたい.

  • 「超入門」1周目
    • CHAPTER 1 から CHAPTER 7 までを読む(メソッドまで)
    • 「写経」をする
    • Challenge は全部スキップする
    • 練習問題も全部スキップする
  • 「超入門」2周目
    • CHAPTER 1 から CHAPTER 11 までを全て読む
    • 「写経」をする
    • Challenge は全部スキップする
    • 練習問題を全部解く(実際にプログラムを書いて動作確認をする)
  • 「超入門」3周目
    • 苦手意識のある CHAPTER をピックアップして読み直す
    • Challenge を全部読む

インストール手順まで細かく書いてあって良い 👌

CHAPTER 1 で「Windows / Mac に Ruby をインストールする手順」がキャプチャ付きで載っている.今後キャプチャが変わってしまう可能性はあると思うけど,それでもインストールで挫折してしまう人を救うために載っているんだと思う.また「Windows / Mac に Visual Studio Code をインストールする手順」もキャプチャ付きで載っていて,日本語化 / ショートカットなどの絶対に必要になる Tips も丁寧に紹介されている.1点気になったのは Windows は Ruby 2.5 系なのに Mac は Ruby 2.3 系なところ.とは言え,最初に rbenv の話が出てくるとプログラミング初心者は絶対に挫折するので,検討された結果こうなっているんだと思う.

エラーに挫折しないように書かれていて良い 👌

プログラミング初心者は「エラーが出ると思考停止」してしまう.実際に教えているときにエラーが出て「何もわからない!お手上げ!」と悩まれている生徒さんが多くいた.そんなときに僕は「エラーを楽しみましょう!エラーは誰でも出ますから!」と伝えるようにしていた.本書では CHAPTER 1 で「打ち間違いを確認しよう」「全角スペースが入っていないか確認しよう」など,頻発パターンが紹介されているので,実際にエラーが出ても落ち着いて解決できるように書かれている.

さらに CHAPTER 2 ではもう1步踏み込んでいて「エラーメッセージを読み解く方法」が書かれている.エラーが出ると思考停止してしまう理由の1つは「英語や記号がたくさん並んでいてよくわからない」という点にあるので,エラーメッセージの説明は価値がある.僕は「NameError とか SyntaxError とか,エラーの原因を特定するヒントになる部分を探してみよう!」と伝えることが多い.さらに「Did you mean?」も説明されていたのも良かった.

身近な比喩やイメージしやすいシチュエーションが良い 👌

「変数はオブジェクトに付ける名札である」「irb はプログラムを1行ずつ実行できる道具である」など,身近な比喩で説明されている.他にも比喩ではないけど,メソッド引数のデフォルト値を説明するときに「カフェに幾度か通って同じ注文を続けたため、注文を言わなくてもコーヒーが出てくるようになったとしましょう」というイメージしやすいシチュエーションで説明されている点も良かった.プログラミングを学ぶときに「機能は理解できたけど,実際にどんな場面で使えば良いのだろう?」という状態に陥ってしまうことが多いため,使えそうなシチュエーションを知ることにも価値がある.

def order(item = "コーヒー")
  "#{item}をください"
end

puts order # コーヒーをください
puts order("カフェラテ") # カフェラテをください
puts order("モカ") # モカをください

キャラクターが可愛くて良い 👌

本書では多くのページに図解があり,プログラミング初心者でもイメージしやすいように工夫されている.さらにキャラクター(ゆるキャラ)がとても可愛く,例えば「整数オブジェクトさん」「文字列オブジェクトさん」などが登場する.僕のお気に入りは「ハッシュオブジェクトさん」で,実際に Ruby を教えるときに「ハッシュオブジェクト」は理解してもらうのが難しく,今後はこの「ハッシュオブジェクトさん」を見てもらえば良さそう!キャラクターの裏話は以下の記事に書いてある.

note.mu

また以下の書評記事には「pop メソッドのビューン」が挙がっているけど,僕は P.184 に出てくる「Drink クラスからDrink クラスのオブジェクトがベルトコンベアに乗って出てくる工場みたいなキャラクター」が好き.この図解があればクラスも教えやすくなる!

pupupopo88.hatenablog.com

Kindle で読みにくい 💦

あえて改善ポイントを挙げるとするならば,Kindle で読みにくいところだと思う.Amazon の商品ページにも記載がある通り,本書は現時点だと固定レイアウトになっているので,ハイライトや検索ができない.さらに解像度?もあまり高くなく,iPad や MacBook で見ると,文字や図解が滲んで見えた.

※この商品は固定レイアウトで作成されており,タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また,文字列のハイライトや検索,辞書の参照,引用などの機能が使用できません。

プログラミング初心者に教えるときは「身近な比喩」が重要なのだ!

先週「Rails Developers Meetup 2018 Day 4 Nouvelle Vague」で登壇をしたときにも本書を引用した.プログラミング初心者だけじゃなく,プログラミング講師も読むべき一冊だと思う.是非,登壇資料も合わせて見てもらえると!

kakakakakku.hatenablog.com

まとめ

  • 「ゼロからわかる Ruby 超入門」を読んだ
  • 本当にプログラミング初心者でも挫折せずに読める素晴らしい本だった
  • 本書のレベルは「超入門(から中級まで幅広く)」だと思う
  • プログラミング初心者だけじゃなくプログラミング講師も読むべき一冊

ゼロからわかる Ruby 超入門 (かんたんIT基礎講座)

ゼロからわかる Ruby 超入門 (かんたんIT基礎講座)