Rubyを勉強するなら実際に作りながら勉強したほうがいい!! ~おすすめの書籍も紹介~

新卒でエンジニアとして入社して早くも半年以上が経過しました。会社の雰囲気にもなれてきていよいよコーディングの業務が増えております。
最近は初心に帰ってRubyを基礎から勉強をし直しておりますやまそうです。

 

そこでですね、皆さんはどの様にプログラミングを勉強されていますか??

勉強の仕方って言うのは皆さん人それぞれあると思います。

 

ネットで色んな記事をみて情報や知識をインプットする、プログラミング勉強用のwebサービスを利用する、参考書等の書籍を利用する、などなど勉強方法だけでもざっとこれくらい。
さらに勉強するときに重視するポイントみたいなものもあると思います。

「とにかくわかりやすいの!!」とか「一つ一つが深く解説されているもの」とかとか。みなさんもそういったこだわり??みたいなものがあると思います。

 

でもアプローチが違えど目的は「なるだけ早くプログラミングができるようになりたい!」だと思うんですよね。

じゃあどうすればプログラミングができるようになるのか、スキルが身につくのか。

よく聞くのは「実際に作ってみろ」。こういったセリフをよく耳にすると思います。

でも何も準備なしに作ろうと思っても
まず何作る?
どうやって作る?
作り始めたは良いものの。。。
意外と何を作ろう、こういうものを作ろうと考えるのって大変なんですよね。

そんなこんなで意外とすんなり進まず途中で断念することってあると思います。

私は何度もありました笑

 

そこで!大学2年の後半でプログラミングを勉強し始めて現在エンジニアとして現場で働いている私が、Rubyを勉強し始めたときに大変世話になった書籍を紹介させていただこうと思います!

その書籍は「作りながら学ぶRuby入門 第2版」です!

 

こちらの本は書籍のタイトルの如く、作りながらRubyの基礎を学ぶことができます。

 

私はこの本で勉強して飛躍的にRubyの基礎力が身についたと思います。自分の身の回りの新米エンジニアにこの本を紹介して使ってみたら評判とても良かったです笑

 

なんで実際に作りながら勉強したほうが良いのかも考えたので勉強の仕方に悩んでいる方のお力になれば幸いです。

本の内容もざっと紹介をしたいと思います。

 

 

ちなみにこちらの書籍です。

 

※注意:この書籍のRubyはバージョン1.8を扱っています。古いおバージョンでも基本的な部分は変わらないので十分に勉強することが出来ますが、多少の動作の違い等はあります。

 

 

なんでRubyを勉強するのか

私はとあるプログラミングスクールに通っていてそこのコンテンツのRuby on Railsを勉強していました。

そこで1ヶ月ほど勉強してRailsでwebアプリケーションは作れるようになりました。

が、これはプログラミングができるようになったというよりはRailsに慣れて来たって感じだったのですね。今思えば。

 

Railsがすごすぎちゃって中途半端な知識でもRailsの初歩的な使い方さえ覚えてしまえば簡単にwebアプリケーションを作れてしまいます。

ただその頃壁にぶつかったわけです。

Railsのレールに沿ったやり方ならアプリケーションは作れますが、独自のなにか機能を作ろうとしたときに全く作れなかったのです。

そもそもRubyをあんまり知らない。プログラミング自体どういうものかわかっていないなので、ネットで調べてもソースは読めない、コピペしても適宜ソースを変えることができないといった始末です。動くものができたとしてもソースを理解していないので少しいじったらすぐバグる。

 

ですがRubyを理解しているとそんなことはなくなります。

ネットに転がっているソースコードを読み解いて自分のアプリように少しいじって動かすことができる。ソースコードが読めるので世界中の人が書いたコードを見て勉強になる。正しいコードがよりかけるようになりバグがなくなる。

Ruby on Rails(レールに乗ったRuby)なので当然Ruby力は必要なわけです。おそかれはやかれRubyを勉強しなくてはとなると思います。

 

なんで勉強するなら実際に作りながら?

勉強の方法は多様にありますが、プログラミングに関しては私は実際に作りながら手を動かして勉強することが一番だと思っています。

今Googleでわからないところを検索すればそれはもう沢山の情報が溢れ出ています。実際に書いたソースコードもオープンになっていて何なら解説もされている記事などがほとんどですね。

ですがプログラムって英単語の羅列がコンピュータに命令を下しているってことしか見てわからないので実際にどのように動作しているかってイメージしにくいと思います。

例えば以下のソースコード

nil.to_s

このソースコードはnilを文字列にしてるんだって読めるけど、実行結果が「””」と空文字列だってことは意外と読み解け無いと思います。

実際私はRubyを知ったかぶって居た頃は「”nil”」って結果が出ると思っていました。笑

コレは一例ですが思ってたのと結果が違うってことがプログラミングの世界では多々ありますよね。

 

 

また、ただRubyのできることを紹介している書籍とかRubyの辞書的な意味合いの書籍っていうのは意味と結果と解説を読んで理解することができる。つまり何を書いたらどう動くっていうのは分かっても実際の開発でいつ使うの?とかなんの目的でこのメソッドは使われるのよって思うはずです。

 

じゃあ実際に作りながら紹介されているメソッドなどのコードを書いていくとどうなるか。実際に作っているので動かしながら動作確認をします。そうすると書いたコードがどんな結果になるのかすぐに確認出来ます。

 

アプリを作ろうとしている → とある機能を作ろうとしているという目的があるので、このメソッドはこういうときに使うのか!と使用用途が頭に入って来やすくなります。実際の開発で似たような機能を作成するときにどう作れば良いのか頭に浮かんでくると思います。

 

さらにはインプットしたことをすぐにコードで書いているのでアウトプットもできます。勉強する上でアウトプットというのはとても大事です。

まだありますね。挫折をしにくいという利点もあります。世の中でエンジニアが不足している理由の一つとして挫折する人が多いのが理由に挙げられると思います。実際に私がスクールに通っていたときに同期にメンバーは卒業するときに7割くらい居なくなっていました。
挫折する一つの要因として目的がわかりにくいことがあると思います。目的がわからないから何を持って出来たと言っていいのかわからない。つまりゴールがわからない状態が出来やすいです。

もう野球部のランメニュー状態。グラウンド何周走らすんだよ!!って感じです。意味のわからん英語をひたすら読んでなんになんだよ!!って感じですね。

でも一つアプリを完成させるって目的があったら、このわからん英単語はアプリのこの部分を動かしているんだなってなるとモチベーションも違ってくると思います。モチベーションに比例して捗り方が違ってきます。

 

『作りながら学ぶRuby 第二版』の内容

ここまでで実際に作りながら勉強することのメリットを少しだけでも感じていただけたかなと思います。

では私が大変お世話になりました『作りながら学ぶRuby 第二版』の内容を簡単に紹介いたします。

あんまり具体的な内容に触れると危なそうなのでほんとにふわっと説明いたします。

 

簡単に構成を説明すると簡単なことから徐々にステップアップして最後はちゃんとしたものを作れるみたいな構成になっています。

最初にRubyの概要と環境のお話があって次から実際にアプリケーションを作り始めます。最終的にはRubyだけでwebで動作するアプリケーションを作る事ができます。

ほんとにRubyだけで作ります。Railsではありません。

 

本書を進めて行くにあたってsqlite3やライブラリも触れて行くことになります。「sqlite3やライブラリ」と聞いて気づく方もいらっしゃると思いますが、Railsに標準で入っているものをいじることになります。なのでコレを勉強するとRailsもめちゃくちゃ理解できるっていう付加価値があります。

 

簡単なものから徐々にステップアップしていくので言うまでもなく進めやすいですね。最後にwebアプリケーションを完成させられるのでなんかやる気にもなると思います笑

 

進めていく上で一度で完全に理解する必要は無いと思っています。一度サーッと自分のペースで進めて考えても理解できなかったところはスルー。そのまま進めてまずアプリを作ることを楽しむこと、最後までやりきることが大事です。
一冊終わったときに1割も理解していればそれは大きな成長です!!もっと理解したいと思ったらもう一回やればいいだけの話ですね!

実際1割も理解していたら相当スキルも知識も増えているはずです。

なので軽い気持ちで最後までやること、アプリを完成させることを目標にすることをおすすめします。

 

 

 

 

まとめ

最後まで読んでいただきありがとうございます。

まとめると実際に作りながら勉強するってことは効率が良いだろうということですね。パーフェクトRubyとかドキュメントを読むとかって初心者にはかなりハードルが高いので無理があります。

なので実際に作りながら勉強するっていうやり方が効率的なのではと思います。

 

ではではみなさん
楽しいRubyライフを!!
私ももっとがんばります。

label,

書いた人

銀座の事業会社でエンジニアをやっております。 まだまだぺーぺーです。

コメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です