これからを生きる理系大学生に読んでほしいおすすめ本

これからを生きる大学生(特に理系)の方に向けて、これからより発展するであろう分野を中心にすすめたい本(やサイト)をまとめました。

分野に分けているので、自分の興味がある分野だけチェックするだけで構いません。

  1. プログラミング(python)
  2. アルゴリズム(プロコン)
  3. 線形代数学
  4. 統計学
  5. 機械学習(理論)

1. プログラミング(python)

プログラミングを学ぶのに本はいりません。ググれば多くの情報に触れることができます。しかし、何をググればいいのかわからないという方には、まず体系的に学ぶ必要があります。本を読むよりも動画教材(本より安い)を利用して、動画を見ながら自分でプログラムを書いてみることをおすすめします。サイトとしてはUdemyがおすすめです。

Udemyはスマホやタブレットにアプリをインストールすれば講座をダウンロードすることができますので、オフラインでも快適に勉強することができます。

もう一つの特徴としては定価がやたら高く設定されています。常日頃から謎のセールをやっており、少なくとも1000円代で購入することができるものが多いので、定価で買わなければ安いです。レイバンのサングラスとUdemyと洋服の青◯は定価に意味があってないようなものですので、自分が納得できる金額なのか考えてみると良いでしょう。

最近は機械学習の流行もあってか、そのような講座が人気ですが、pythonの基本的な文法やコーディングスタイルを学ぶならこちらの講座がおすすめです。本より学習効率がいいと思いますので、積極的に動画教材を活用してみてください。

2. アルゴリズム(プロコン)

より高速なプログラムを書こうと思えば、アルゴリズムを意識するよりありません。プログラミングといいつつ半分数学です。まずはアルゴリズムとは何たるやということから、計算量の計算などを考えるのに手始めとしてこちらの本がおすすめです。

大学生のアルゴリズムの授業レベルの話はしてありますので、この1冊で考え方がわかると思います。ストーリー式で読みやすく、つまづきやすいポイントも抑えてあるので数学ガールシリーズは導入におすすめです。

世の中にはプログラミングコンテストという、いかに問題を解くか、高速で動作するプログラムを書くかというのを競うコンテストがあります。時間制限は90分くらいの短時間のコンテストもありますし、マラソンマッチ形式なら数週間という長期間のコンテストもあります。

プロコンならAtcoderがおすすめです。はじめの方はAtcoder Beginner Contest(ABC)に参加し、コーディング力を高めるのがおすすめです。成績がよければ就職にもかなり有利になります。成績が良いとIT系の企業からスカウトされることが多いです。

もし、このようなコンテストでより上位を目指すなら、データ構造とアルゴリズムをより深く勉強することが必要です。本としては通称蟻本(表紙にアリが描かれてる)と呼ばれる「プログラミングコンテストチャレンジブック」がおすすめです。

3. 線形代数学

線形代数学は力学や立体の伸縮、回転などありとあらゆるところで使われる。高等数学における最も基礎となるものです。これが理解できていないと、難しい本を読んでもさっぱりわからない、ということになりますので、行列の特徴と図形的イメージを把握してもらうために、次の本を読むのがおすすめです。

こちらはプログラミングのためのと銘打ってありますが、プログラミングをしない方にも自信を持っておすすめできます。やたら教科書的な難しい言い回しが少なく、なぜそうなるのか?が理解できるようになるはずです。

線形代数学はこの1冊で主要なことは学べます。

4. 統計学

データを扱う学問である統計学は現在最も注目されている分野の一つです。まずは数学ガールで統計がどのように使われるのか、学んでおくと良いでしょう。数時間でさらっと読めます。ある程度学んだことがある人は読む必要がないかと思います。

確率統計を数式だけ追うのだけではなく、イメージをつかむためには次の本がおすすめです。

この本は優しいレベルから、かなり高度な分析まで学ぶことができます。プログラミングのためのと書かれていますが、誰にでもおすすめできる本です。

また、独学で仮説検定くらいまで学んで、演習もしたい方には次の二冊のどちらか好きな方を選んで読んでみると良いでしょう。

レベルとしては統計学基礎講義の方がやや優しいと思われます。

さらに高度なレベルへ行くには東京大学が出版している次の本が良いと思います。

なお、ここから分野がかなり枝分かれしているので、自分が分析したいデータにあった本を選んで買うと良いでしょう。

5. 機械学習

かなり高度な数学になりますので、線形代数学と統計学は理解してから学ぶと良いでしょう。難解な数式の変形がありますので、できるだけ省略していないものをすすめたいと思います。一言に機械学習と言っても様々な対象(音声、画像、テキスト、株価等)に対して、様々な方法で学習することが可能ですから、自分のやりたい分野に絞って学習するのが良いです。

まずはパターン認識に関して

だいぶ分かりやすく説明されています。

また、ニューラルネットワークの基本的なことや時系列データの学習でしたら次の本がオススメです。

実装されているコードもgithubで拾えます。

名著として次の本を挙げておきますが、やや難解です。

専用の解説本も出版されているようです。

以上、幅広いテーマに関して読んでほしい本を挙げました。