[初学者向け]プログラミングを独学する上で参考になる書籍
以前こんな記事をかいた。
高難度だと言われた。なるほど、初学者には難しいものばかりだ。
先の記事は初学者向けには書いてないので、試しに初学者としたら参考になる本を上げてみようと思う。私はプログラミング教えてる先生だしね。
お求め易いようにアマゾンのリンクも載せておきますね。
さわるようにしくみがわかる コンピュータのひみつ
まずはこれ。プログラミング初学者はプログラミングをする以前にコンピュータとは何か?というのをある程度知っておいた方が良いと思う。アルゴリズム、CPU、メモリ、2進数の基本的なことはここに根本的に書いてある。子供向けの本だとバカにしてはいけない。
書いた人は、Viscuitというビジュアルプログラミングを作った人。Viscuitも是非やってみてほしい。
プログラミングでなにができる?:ゲーム・ロボット・AR・アプリ・Webサイト……新時代のモノづくりを体験
次はプログラミングをやってみよう。まず初めに、テキスト言語をやっちゃいがちなんだけど、私はまずScratchをおススメします。そもそもいきなりテキストのプログラミングは大変です。なので、Scratchである程度、学んでおいて、次に進むのが良いと思います。
はじめてのプログラミング (学研まんが入門シリーズ)
もう一冊紹介します。前の書籍と両方読むことをおススメしますが、時間がない方はこちらのみでも構いません。何度も言いますが、「子供向け」だからといってバカにしないでください。そもそも、「子供向け」のプログラミングすらできない大人はゴマンといます。
正直、1週間程度Scratchを教えた大学生よりも、Scratchにハマっている小学生の方がよほどプログラミングができています。プログラミング初学者の大半は、Scratchにハマる小学生に圧倒的に大差で負けているのです。
Land of Lisp
さて上記の書籍をある程度やってScratchを1~2ヶ月程度やれば、次はテキストのプログラミング言語をやろう。手始めにLispをやってみよう。Lispは素晴らしいプログラミング言語です。ぜひともその美しさに触れてみてください。
この本は素晴らしいのは、しっかりゲームをLispで作れることです。ゆっくり楽しんでみてください。
退屈なことはPythonにやらせよう 第2版 ―ノンプログラマーにもできる自動化処理プログラミング
さて、もう一つテキスト言語をやってみましょう。Pythonです。こちらもより実践的な内容だと思います。こちらも入門書でありながら、後半は実践的な内容となります。Land of Lispよりもこちらを先にしようと思いましたが、第二版が近々出てくるらしく、どうせ読むなら新しい方を出るまで待ってから読んだ方が良いと思います。
Processingをはじめよう 第2版
もうひとつ、先ほどは仕事効率化面の書籍ですが、こちらはより創造的な、グラフィックな感じのプログラミングも体験してみましょう。こちらはプログラミング自体が楽しいってことを再認識にしていただきたいと思っています。プログラミングを仕事にする前に、趣味にしても楽しいよと思います。
ProになるJava
この本は、プログラミングの学習についてよく考えられている本です。基本的に初学者向けの本は、IDEやgitなどのツールは無視されがちですが、そういう初学者の本が抜けがちなところもしっかり書いてくれる良書です。
公式ドキュメントを読もう!
さてここまで来たら、自分で作りたいものを作っていくとよいでしょう。私がここでおススメしたいのが、気になる言語、フレームワーク、ライブラリ、ツール、ゲームエンジン等々を自分で調べて、使いこなすことです。
正直こういった関連は書籍は沢山あるのですが、僕が一番おススメするのがそのツールの公式ReactならReactの公式ページに飛んで、ドキュメントをきちんと読むことです。なぜ書籍をおすすめしないか?と言えば、フレームワークやライブラリはどんどんと更新され、情報が古くなりやすいからです。
また、他の技術ブログを読むのもいいでしょう。しかしながら、技術ブログは玉石混交で、質が良いもの悪いもの、質は良いけど古いもの、情報自体が間違っているもの。様々です。なので、しっかりまずは公式のドキュメントを確認しましょう。(ただし、公式も誇大広告になることもあり、言ってること違うじゃないか!!ってなるときもありまがね)
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
さてある程度、コード書いてきたことでしょう。ここで、コードを書く方法ではなく、コードをきれいにする方法を学んでみましょう。おそらく、プログラミングをある程度書けるようになってくると、次に衝突するのが、すごく長くなってしまったコードに対応することでしょう。まずは、コードの見通しをよくするために読んでみましょう。
ソフトウェア作法
さてここまで来たら、将来ずっと役に立つような根本的な本を読むと良いと思います。頑張って読んでみましょう。
計算理論の基礎 [原著第2版] 1.オートマトンと言語
入門 コンピュータ科学 ITを支える技術と理論の基礎知識 (アスキードワンゴ)
あとは、ちょっと大学の内容でやるような書籍を読むと良いでしょう。これらは教養として身につけておくと本当に役に立ちます。というか、これらの知識を役立たせるのはあなたたち次第でしょう。
あといくつかありそうだなと思いますが思いついたら今度載せます。
ここまで来たら私が以前紹介した書籍を読んでいくといいでしょう。ここまで日本語で全部カバーできるのが素晴らしいですね。
Discussion