初心者のためのプログラミング勉強法(勉強編)
プログラミングを学ぼうとした時、大きく分けて
- 本で勉強する
- インターネットで調べて勉強する
の二つの勉強法があると思います。
そこで、それぞれの勉強法における注意を書いていきます。
本で勉強する場合
本の選び方
初心者が本を参照する際にまず確認すべきことは、
- 本のレビュー
- 出版年
この二つです。
プログラミングの経験がない人は、本のレビューが良くて、出版年が新しいものを選べばいいと思います(逆に、本選びであまり時間をとるべきではありません)
レビューはAmazonで調べましょう。あくまで個人の意見ですが、オライリーという出版社の本には良著が多いです。動物の絵が特徴的。
出版年は、学びたい技術にもよりますが、1年前を目安にして選ぶと良いと思います。
なぜ出版年にこだわるかというと、ITの世界では技術の入れかわるペースが速いということもありますが、それよりも、後述するバージョンの問題があるからです。
環境のバージョンを確認する
これ、割と大事です。本の出版には時間がかかるので、バージョンの古い環境で動作テストが行われている可能性があります。というわけで、以下の2点を念頭において学習を進めてください。
- 本と同じバージョンで進める
- 本と異なるバージョンで進める場合、それによって環境の差異が出る可能性を常に意識
マイナーアップデート(例えば、Python3.4 -> Python3.5へのアップデート)などで大きな差が出ることはあまりないですが、メジャーアップデート(Python2 -> Python3へのアップデート)では大きな差ができる可能性があるので、注意して本を選んでください。
読むだけでは力がつかない。写経すべし。
最重要項目です。ここではプログラミングの技術書の読み方を解説します。
初心者は、本の中の文章とコードを読んで何をやっているか把握すると、理解した気になるという罠にハマりがちです(体験談)。読むだけでは、さあ自分で何か書いてみようと思い立っても何も書けないと思います(体験談)。
そこで、本を読む際は「写経」をしましょう(写経について異論は多々ありますが...)。写経とは本来お経を書き写すことですが、専門用語では、掲載されているソースコードをそのまま自分の環境に書き写し、一緒に実行してみることを意味します。
このコードが何をやっているのか理解しながら写経することによって、本の中で何度も出てくる典型的なコードを、体で覚えることができます。
さらに重要なのは、「写経したコードをちょこっと改変してみる」ことです。
写経によってこのコードが何をやっているのか理解し、望む出力が得られたあと、
「では、ここを変えたらどうなるのだろう?」という疑問を持ち、それを実験してください。
コードの理解がより深まると同時に、応用が効くようになります。お試しあれ。
インターネットで調べて勉強する場合
ほとんど本の時と同じですが、いくつか注意点を。
公式サイトを見る
初心者ほど、誰かが日本語でわかりやすく説明してくれているブログなどの情報に飛びつきがちですが、それはオススメしません。
まずは、公式サイトをよく読んでください。
公式サイトを読んでわからないところを他のブログで補うようにしてください。
ブログの著者との環境の違いが思わぬエラーに繋がったり、著者のコードの癖があなたのコードに入ってしまう可能性があります。
非公式情報であれば信憑性を確認
公式サイトを見てもわからない場合は他人の書いたブログを参考にしましょう。
信憑性といっても難しいですが、ブログやQiitaでは、「アウトプットの数」が一つの目安になるかと思います。
バージョンを確認
バージョンを確認しましょう。
「Python3 print関数」や、「Rails5 ajax」など、バージョンを明確にして検索すると求める情報が得やすいと思います。
読むだけでは力がつかない
やっぱり読むだけでは理解できないので、コードを手元の環境に入力 -> 実行 -> ちょこっと改変 -> また実行 のサイクルを繰り返しましょう。
本とインターネット、どちらがオススメ?
初心者の人には本をお勧めします。なぜなら、著者のスキルがある程度保証されていて、説明が一貫しているからです。
さらに、知りたい情報だけでなくそれを理解するための周辺知識も提供してくれるので、基礎がためには適しています。
また、一般的に良い入門書はリファレンスとしても使えるので、初心者を卒業した後も活用できると思います。
Web上のプログラミング学習サービスについて
プログラミング学習サービスの種類
プログラミング学習サービスは、大きく分けて2つに分けられると思います(名前は適当)。
・講義型:
プログラミングのコードに対する説明をしてくれるサービス
・全部入り型
ブラウザ上に開発環境が用意されていてそこで開発を進められるサービス
講義型
全部入り型
まとめ
本記事では、本とインターネットによる学習について述べました。
細かい確認事項は置いといて、本当に大事なのはコードを理解し書けるようになる事です。
サンプルコードを理解しながら実行 -> 挙動に対して疑問を立てる -> その疑問を解決するためにコードを書き換えてもう一度実行する のサイクルを意識して勉強してみることをオススメします!
プログラミング学習、頑張ってください!