金融工学やデータ分析を学んでいる人・Webサービスを作りたい人にとって、プログラミングを学ぶことが不可欠です。ここではプログラミングを学ぶすべての人が読むべき書籍を紹介していきましょう。
もちろんプログラミングを習得するためにはスクールで学ぶことが一番の近道ですが、それだけでなく自主学習を行うことも重要です。
プログラミングを学ぶ人が読むべき本とは?
まず誤解しないでほしい点は、「プログラミングができることをゴールにしてはいけない」ということです。プログラミングはあくまで技術要素であって、それだけで何かができるわけではありません。
例えば、ファッションサイトのための新規サービスを作る、マーケティング分析のためにAIを活用するなど、「新しいサービス創出のための方法論」を意識してください。
入門書
プログラミングを学ぶ人がまず読むべき本とは、プログラミングを学ぶ全ての人が読むべき入門書です。
プログラミングを学ぶ意義、システムとは何かなど、全体観や基本となる知識を得るための書籍です。
また、プログラミング言語に限らず、プログラムやスクリプトを書くにはお作法というものがあります。そういった非言語的なルールを知ることはプログラミングを学ぶ以前に重要です。
Webサービスを作りたい人が読むべき本
Webサービスを作りたい人が読むべき本とは、システムの構成要素や各要素についての知識・スキルを身につけるための本です。
もちろん、プログラミング言語や関連言語を習得することも重要です。
金融工学やデータ分析を学ぶ人が読むべき本
金融工学やデータ分析を学ぶ人が読むべき本とは、基礎理論とそれをどのようにプログラムで表現することです。
例えば、主成分分析を勉強したとしましょう。数式を理論では理解できても、実際に主成分分析を行うためにはプログラムで実装できることが必要で、理論と実践を並行して学習することが重要なのです。
ここからは各ポイントでおすすめの参考書をあげていきます。
プログラミングを学ぶための入門書
プログラムはなぜ動くのか
「プログラムはなぜ動くのか」という素朴な疑問に答える一冊です。実はこれがわかっていないと、ある程度まで進んだところで確実に詰みます。必ず理解しておいてほしい内容。
プログラムがコンピュータの中でどのように動作するのかを、誰にでもわかるように説明しました。プログラムはメモリーにロードされ、CPUによって解釈・実行されます。その仕組みが多数の図を使って、順序だてて解説されています。
珠玉のプログラミング
アルゴリズムやデータ構造の重要性を説いた一冊。
同じ動作をするプログラムでもエレガントなアルゴリズムを持つものと、そうでないものの間には実行時間や堅牢性、リソースの利用量などに大きな違いが出ることもよくあることで、時には劇的なほどパフォーマンスの差があることも珍しくありません。
一方、そのようなアルゴリズムを創出することがいかに難しいかもよく知られています。現在では時間や効率に重点をおいたプログラミングが優先されることも多いのですが、単純で美しいプログラムを書くことは何よりも重要なことであることは間違いありません。
大学でのアルゴリズム講義の内容は数理的な解析に重点を置かれており、実際のプログラミングに生かしにくいですが、本書では応用や実際のコード化といった面に重点が置かれ説明がされており、実用上も大いに役立つでしょう。
リーダブルコード
表紙を見ると音楽関連の書籍化と思ってしまいますが、れっきとしたプログラミング本です。著者はプログラムやスクリプトとして記されるコードについて以下のように語っています。
「美しいコードを見ると感動する。優れたコードは見た瞬間に何をしているかが伝わってくる。そういうコードは使うのが楽しいし、自分のコードもそうあるべきだと思わせてくれる。本書の目的は、君のコードを良くすることだ」
リーダブルコード「はじめに」 より
優れたコードとは、読みやすくロジックも整然としたコードで、読者にもそのようなコードをいかに書けるようになれるかを紹介しています。
私の周りにも、とても読みにくいコードばかり書く人が非常に多く、本当はそのような人たちにすすめたい本です。多くの実務家・教育者が推す名著であり、自分のコードを見直すよい機会になります。
Webサービスを作るための書籍
Webエンジニアの教科書
Webエンジニアならば知っていて当たり前の技術や知識を各分野ごとにわかりやすく解説しています。
内容としては、Ruby on Rails、PHP、NoSQLデータベース、フロントエンド、ログの取り扱い、可視化、環境構築の自動化といった技術や、便利な外部サービスについて紹介しています。手を動かして実際に動くモノをつくってみることが、スキル習得の早道です。
最新の技術動向についても解説されている点も地味に嬉しいポイント。
いちばんよくわかるWebデザインの基本
こちらはWebデザインについて学ぶための本です。
スクリプトのサンプルは最後にまとめて紹介されていますが、内容はJavaScript、HTML/CSS、jQueryの初歩と、Webデザインへの応用を理解することができます。
使いやすいデザインを理解している人は少ないので、デザインへの感性を養うという意味では意義深い一冊となるでしょう。
スッキリわかるJava入門
現代ではCやJavaを学ぶ必要性について議論されることもありますが、少なくてもエンタープライズではいまだに利用されている言語です。
特にJavaを学ぶことはオブジェクト指向のプログラミングを理解する上で重要です。オブジェクト指向を理解することは現代プログラミングを理解するために必須なのです。
豊富なイラストを交えてわかりやすく丁寧に解説されており、「多発するエラーの対応」「開発環境の準備」といったプログラミング学習のネックになるポイントをサポートしています。
「一度学んでみたけれど途中で挫折してしまった」「Javaを使っているけれどオブジェクト指向の理解はいまひとつ自信がない」という方にもおすすめの一冊です。
金融工学やデータ分析を学ぶための書籍
東京大学のデータサイエンティスト育成講座
データ分析を行なっている方なら知らない人がいないほど、有名な書籍です。
Pythonを使った基本的な統計分析や主成分分析についても開設されています。
この価格でこの内容は、絶対に読んでおきたい一冊です。
Python3ではじめるシステムトレード
Pythonを使ったシステムトレードの解説ですが、無料で取得できるデータの取得元の紹介やサンプルスクリプトが非常に役立ちます。
ランダムウォークや時系列解析について紹介されている本はなかなかないので、一読の価値があります。
データ分析といえば、利用する言語はPython、R、SQLあたりはすべて使えるようになっておきたいので、次に紹介する一冊と合わせて読んでおきましょう。
前処理大全
先の2冊とあわせて必ず読んでおきたい一冊。
データ分析はやもするとデータが正として何も考えずに処理しがちですが、そのような態度は望ましくない結果を導くということで、適切な前処理を行うための解説本。
ある程度読めば、PythonだけでなくRやSQLについても使えるようになるので、サンプルスクリプトも面倒がらずにチェックしておくことが大事です。
プログラミングに関する書籍の紹介としては以上です。少しでもお役に立てると幸いです。
スクールを利用した情報収集
ビッグデータやAIが世界を変えるといわれる現代で注目されているのが「Python」です。Pythonを学ぶ上でネックになるのが身近な経験者がいないという点であり、いかに情報収集できるかが習得のスピードを左右します。
CodeCampでは無料でPythonの体験レッスンを行なっており、躓きがちな最初の一歩や業界動向の情報収集が可能です。
以下の関連記事もご参考にしてみてはいかがでしょうか?