rocky-engineer7の技術日記

webエンジニアを目指して奮闘中!!

【初学者向け】『プロを目指す人のためのRuby入門』を読んだ

はじめに

プロを目指す人のためのRuby入門[改訂2版] 言語仕様からテスト駆動開発・デバッグ技法まで Software Design plus Kindle版

こちらを読んだ感想記事です。

著者である伊藤 淳一さんの推奨されている読み方で一通り読みました。

ザーッと読む程度であれば、1日1,2時間で1週間で読めればいいかなって感じらしいです。 自分は10日間ぐらい空いた時間と休日全部を使用して読みました。

目次
1章:ざっと目を通す程度
2章:基礎的な内容
3章:簡単な内容だがやらないと以降の章がわからなくなる可能性がある
1~6章は必ず読む(ここまでで手続き型言語の学習が完了となる)
7章:7.8まで読む(他は読み飛ばす)
8章:8.4まで読む(読み飛ばす。以降サブセクションも読んでいいが、実務的な内容になるので必要になったらでいい)
9章:9.5まで読む(基本ざっと読む)
10章:10.4までざっと読む(railsはprocが出てくる。スコープがrailsでよく使われているということを理解)
11章:ver3.0からの新しい機能。分岐表現の一つ。一応例題まではやる
12章:読むべき
13章:読むべき(でもまぁざーっと読む)
付録:Railsに入るまでの知識

例に挙げられているプログラムを全て写経せずに、例題や気になったところだけでいい。 遅くとも2週間で読み終わるペースで,なるべく早く読む。

良かったところ

1.各章ごとの内容が濃い!

初学者からプロへステップアップするためにという趣旨に沿っているため初学者にも例題を示し分かりやすく記載している。

上級者向けの内容も記載されていたが、正直今の自分のレベルではまだまだ理解に及ばない部分ばかりで課題を進めていく時に必要になったら読むようにする。

2.業務レベルでの内容も組まれている

業務で実際に使われる書き方に加えて、ver〇〇だとエラーにならないがver〇〇だとエラーになるという細かい内容も記載されている。

3.最後まで読み切るコツをオフシャルで推奨してくれている

本書は初学者に向けて「頭の中にインデックスを作る」ことを目的に学習することを薦めています。初学者にとっては内容が複雑で、わからない事がたくさん増えることで学習から遠ざかってしまうことも想定されます。そのため学習のハードルを下げて進めてOKと記載してあるので、9章以降はインデックス方式にチェンジして読み進めました。

学んだこと

Rubyに関する基礎知識

・ 文字列 ・数値 ・真偽値と条件分岐 ・メソッドの定義

この4つ細かく掘り下げて記載されていたので、Progateで習った内容以外の発見もたくさんありました。

Minitestを用いた自動テスト

Minitestは、Rubyで使えるテストライブラリでテストコードを使って自動で確認できる。

require "minitest/autorun"

class SimpleTest < Minitest::Test
  def test_addition
    assert_equal 2 + 2, 4
  end
end

例えば上記であれば2+2が4と等しいかをテストしています。

配列・繰り返し処理

numbers=[1,2,3,4]
sum=0
numbers.each do |n|
    sum += n
end

sum#=>10

最初に配列が定義されている。sum=0で初期化。
.eachメソッドで配列の最初の要素を取り出し sum+= nで取り出した要素をsumに加算していき、 これを最後の要素までループする。

読む前は簡単な繰り返し処理で何も見ずに正確に日本語化するのが出来ていなかったので、4章はとても勉強になりました。

正規表現

著者である伊藤 淳一さんがqiitaに正規表現についての分かりやすい記事を掲載されています。 私は、この記事を読んでからようやく技術書に書いてある内容が少しずつ読めるようになりました!

初心者歓迎!手と目で覚える正規表現入門・その1「さまざまな形式の電話番号を検索しよう」

初心者歓迎!手と目で覚える正規表現入門・その2「微妙な違いを許容しつつ置換しよう」

初心者歓迎!手と目で覚える正規表現入門・その3「空白文字を自由自在に操ろう」

初心者歓迎!手と目で覚える正規表現入門・その4(最終回)「中級者テクニックをマスターしよう」

おわりに

チェリー本の名で称される名著を1から読んでみてとても参考になる部分が多い中、自分の今のレベル不足で理解が及ばないものや、例題に書いてある処理を読み解くのに時間がかかったりしてほぼ10日間ずっと読んでました。まだまだ、自分の及ばない部分がたくさんあるので何回も読み直してアウトプットを積極的に行い自分の知識として定着させれるようにしていきたいです。