非情報系の学生がゼロから機械学習系の研究をするために勉強した書籍紹介(PC・サーバ・インフラ編)

ここ数年、深層学習ブームでこれ関連の研究や製品が多く世の中に広まってきており、この機会に勉強・研究を始めたという人も多くいると思います。 私自身もその1人で、薬学部から情報系の知識0でこの分野に入り最初は何もわからずとても苦労しました。 現在は世間一般の情報学部と同じくらいの知識は身についたと思っていますが、それに至るまでに勉強した書籍をまとめることにしました。

紹介する書籍はいくつかの記事に分ける予定で、

  1. PC・サーバ・インフラ(今回の記事)
  2. プログラミング関連
  3. 人工知能関連

の予定です。

これらの書籍を勉強し、専門分野についての知識を身につけることができれば、0ベースの状態から、まっさらな計算サーバを渡されれば一通り環境をセットアップ・管理をし、研究を遂行することができるまでにはなれるかと思います。 以下に書籍を初心者目線で読んだ方が良い順にコメント付きで列挙していきます。
※僕はMacユーザーのため、一部Macユーザーしか意味のない書籍もありますがご了承ください。ほとんどの書籍はLinuxについてのものなので問題ないかと思います。

目次

これから学ぶmacOSターミナル

まず初めに勉強したのは、Macでのターミナルの使い方でした。 「これから学ぶmacOSターミナル」を一通り読んで適度に試していくと、ある程度ターミナルでできることなどを理解することができ、LinuxでのCUI操作にもすぐ慣れることができると思います。

おうちで学べるシリーズ

以下にはインフラ周りに該当するものだけを記載しますが、「おうちで学べるシリーズ」はどれも初心者であっても読みやすく、良いと思いました。 実際に手を動かしてやれるように例が豊富にあり、理解しながら読み進めることができるかと思います。

絵本シリーズ

おうちで学べるシリーズよりもまずは抽象的に勉強したい場合は、この「絵本シリーズ」が良いと思います。 タイトルの通り(文字の多い)絵本で書かれているので、まずイメージから入りたいって人はこのシリーズの本はおすすめです。

実践Vim

CUIでテキストを編集する際にまず課題になるのが、Vim / Emacsのどちらかを使わないとできないことだと思います。 最低限はvimtutorコマンドでチュートリアルを実施するだけでも十分だと思いますが、それだけだとVimの良さに気づくことはできないと思います。 Vimを使いこなしたいと思ったら「実践Vim」をぱらっと読んでみるといいきっかけになるかもしれません。

新しいLinuxの教科書

実際にLinux(UbuntuやCentOS)で研究を進めていくことになると、そもそもどう操作していいかわからず不安になると思います。 そこで「新しいLinuxの教科書」でざっとした雰囲気と使い方を勉強しておくと、研究の本質ではないところでいちいち不安にならずに作業できるようになると思います。

シス管系女子シリーズ

より実践的な用途になりますが、個人的にはサーバ管理をする上では「シス管系女子シリーズ」はイチ押しの書籍(漫画)です。 おうちで学べるシリーズを読んだ上で、この漫画を読むとインフラ周りの理解度がグッと上がると思います。 最初は僕らと同じレベルだったミントちゃん(主人公)が、読み進めていくうちにどんどん理解度で離されいってしまうのが最初は悲しかったです。 キャラクターが萌え系なので簡単そうに見えますが、内容は結構ガチです。

標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド

現在はすでにCentOS8が出てしまっていますが、まだCentOS7で運用されているサーバも多いと思いますので、「標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド」を勉強するのは無駄にはならないはずです。 正直量が多すぎて全部は読めてませんが、ほぼやりたいこと全て書かれているものになるので、辞書的な使い方ができると思います。 Ubuntuと違う部分も多くありますが、ベースの部分は同じなので「CentOSでのこの作業をUbuntuで」みたいな検索ですぐ対応するものが引っ掛けられます。

わかばちゃんと学ぶGit使い方入門

内容的には初心者向けなのですが、そもそもGitを使う状況というのはかなり後だと思ったので後ろの方に持ってきました。 「わかばちゃんと学ぶGit使い方入門」Gitで最低限必要であろう操作や仕組みについて勉強できます。

プログラマのためのDocker教科書

研究をしていくうちに、Dockerを使った方が便利な時や必要になるケースが出てくると思います。 「プログラマのためのDocker教科書」を読んでおけば最低限のDockerの知識は身につくと思います。

達人に学ぶDB設計徹底指南書

データベースに関してはまだ初心者に毛が生えた程度なのですが、どういう風にあるべきかなどを勉強するために買いました。 ただ「達人に学ぶDB設計徹底指南書」は片手間で勉強するにはとても奥が深く難しいので、ガッツリやりたいという人以外にはあまりお勧めできないですね。。

コンピューター&テクノロジー解体新書

これはタイトルの通り、「コンピューター&テクノロジー解体新書」はコンピュータが関連するものほぼ全ての仕組みを図解してくれている書籍です。 馴染みのあるスマホの仕組みからよくわからないインターネットの回線等、幅広いものに関して取り扱っています。 個人的にはすごい好きな本で、定期的にパラパラと読んでる感じです。

終わりに

以上、書籍としてPC・サーバ・インフラについて勉強したものを紹介しました。 この辺りを理解すれば、あとはGoogle先生に聞いて必要な情報を取捨選択できるようになると思います(重要)。 このご時世、書籍よりもGoogle先生に聞いたほうがはるかに多くの情報が得られますし、何より早く、効率的です(そして教員はそう言う)。 ですがそれができるのは一定以上の知識がある人(教員・研究員)であり、全くの初心者は書籍から入り正しい情報が何なのかを理解し、判断できるようにするのが最初だと思います。 そして研究の本質ではない部分ではありますが、研究ツールを使いこなすためにはある程度自分で勉強するのが必須だと思います。