こんにちは、教育系エンジニアのひらまつ(@hiramatsuu)です。
書籍「ゼロからわかる Linuxコマンド200本ノック(技術評論社)」の著者。Udemy受講者8万人。
プログラミング教育をメインに活動するエンジニアとして、動画教材の作成・技術書の執筆・学習アプリの開発などを行なっています(詳しくはこちら)。
先日、こちらの記事で応用情報技術者試験(AP)の戦略的勉強法について書きました。
初心者エンジニアの方はぜひ、応用情報技術者試験の受験をムダにしないために、こちらの記事の勉強法を参考にしていただきたいのですが、今回はこの記事で解説した勉強法を実践するための、おすすめ教材について書いていきたいと思います。
本記事で紹介している書籍・教材はすべて、僕が実際に購入し読んだことのある本です。
ここで紹介している以外にもたくさん読んでいますが、自信をもっておすすめできるものだけに厳選して紹介しています。
使う書籍で迷う時間はとてももったいないので、まずはここで紹介している本を使って勉強を開始してしまうのがおすすめです。どれも買って損はしません。
それではさっそく、ジャンル別に見ていきましょうー。
全般系
応用情報技術者試験では、とても幅広い分野から出題されます。
出題される分野が広すぎるため、「応用情報技術者試験の対策はこれ一冊でOK!」みたいな本が存在しません。応用情報技術者試験の出題範囲を網羅しようとすると、どうしてもひとつひとつを丁寧に解説することができず、読んでもよくわからない本になってしまいます。
そういった本の代表例が、合格教本です。
この本をおすすめしている記事も多々ありますが、正直この解説で理解するのは凡人には不可能です。この解説を読んで「試験に合格する」ことは理解力にすぐれた方であれば可能かもしれませんが、学んだ知識を「実務に活かす」ことはまず無理でしょう。この記事でも書いたように、僕たちエンジニアの目標は資格を取ることではありません。
なので基本的には、各分野に特化した本で学ぶのがおすすめです。とはいえ、試験範囲全体をカバーした「全般系」の本も、いくつか持っておく必要があるでしょう。
全般系の本は、下記2冊を持っておけば間違いありません。
キタミ式はもはや僕が説明不要なほど、試験対策として読まれている本です。ロングセラーで、これを買っておけばまず間違いありません。応用情報技術者試験の出題範囲のすべてを、ゆるいイラストでわかりやすく学ぶことができます。
基本的な学習の進め方として、本書をまずインプットして、説明が足りていない箇所や、より深く知りたい分野については、以下で紹介するような分野特化本でさらに学ぶ、という流れかなと思います。
より詳しい学習方法は、こちらの記事でご確認ください。
つづいて緑の「午後問題の重点対策」ですが、こちらも午後試験対策のスタンダードになっています。試験当日の昼休みには、ほとんどの人がこの本を読んでいて驚いた記憶があります。
各分野5,6問の過去問と詳しい解説がついているので、午後試験の問題形式に慣れていきながら、これまで学んだ知識の復習ができます。
また、これら2冊は毎年改訂されるので、中古本を安く買うのもおすすめです。古すぎはダメですが、基本的に内容は毎年さほど変わらないので。(僕は3年落ちのやつを買いました。)
ただやはり、最新版は試験傾向の変化に対応してくれていますので、最新を買っておいたら安心は安心です。これはご自身の判断でいいと思います。
もし迷うなら、その時間がもったいないので最新版を買いましょう。
アルゴリズムとデータ構造
アルゴリズムとデータ構造は、自分で実装する機会はほとんどないと思いますが、さまざまなところで概念が登場します。なので、自力で実装できるようになる必要はないですが、キタミ式に登場するものについては、どのようなアルゴリズムなのか?という、アルゴリズムごとの特徴を理解できていた方が良いと思います。
ただ、キタミ式の説明を読んだだけでは、このレベルの深い理解には至らないと思うので、「問題解決力を鍛える!アルゴリズムとデータ構造」を追加で読むのがおすすめです。
ただこの本は、ある程度わかっている人が読むと、さらに理解を深めてくれる良書なのですが、この本からアルゴリズム・データ構造を学ぶのはもしかすると難しいかもしれません。
その場合は、手前味噌ですが、以下のUdemyコースがおすすめです。
アルゴリズムとデータ構造の超基本を、ていねいに解説しました。Pythonを用いて、アルゴリズムとデータ構造の基礎の基礎を学べます。本コースを受講したあとだと、「問題解決力を鍛える!アルゴリズムとデータ構造」もかなり読みやすくなると思います。
やはり動画は、自分で読み進める必要がないので、学習の最初の一歩に最適です。
また、近年は時代を反映して、機械学習アルゴリズムの出題も多くなってきています。
なので、そこまで含めてしっかりと対策したかったり、機械学習に興味がある方は「見て試してわかる機械学習アルゴリズムの仕組み 機械学習図鑑」を読んでみるのもおすすめです。
本書は、数学の知識がさほどなくても、基本の機械学習アルゴリズムを、視覚的に図解で理解できる良書です。AutoMLを使う上でも、この本があれば基本的なアルゴリズムごとの性質の違いは理解できるので、かなり役立つと思います。
データベース・SQL
データベース・SQLの知識は、試験とか関係なく、エンジニアであればとても重要度の高い知識なので、まだ勉強したことのない方は、受験を利用してしっかり身につけましょう。
おすすめの書籍は、ミックさんの以下2冊です。
これらの本を理解すれば、試験合格レベルには余裕で到達しますし、エンジニアが最低限押さえておくべき基本も身につけることができます。
もし、これらの本がわかりづらかったり、インプットのハードルを下げたいと言う方は、これまた手前味噌ですが、以下のUdemyコースがおすすめです。
どちらもありがたいことに、企業の研修などでも使われている、初心者におすすめのコースです。
これらのコースを受講した後だと、上記2冊がスラスラ頭に入ってくるようになると思います。
ネットワーク・Web
ネットワークの知識は、インフラについての全体感がないと、なんのために学んでいるのかわからないと思いますので、まずはWebアプリケーションの一般的なインフラ構成を知るのがおすすめです。
Webの基本について知るには、「プロになるためのWeb技術入門」がおすすめです。
刊行年が少し古いのが玉にきずですが、Webの基本をわかりやすく学べます。
特にLESSON5の「Webアプリケーションの構成要素」は、3層アーキテクチャなどのインフラの基本を、まだわかっていないという方にとてもおすすめできる内容です。
本書で、Webアプリケーションの基本的なインフラ構成が理解できてから、ネットワークについて学んでいきましょう。
ネットワークに関しても、キタミ式だけだと説明不足・知識不足だと思うので、別の書籍で学んでいく必要があります。
ネットワーク全般を学ぶには、以下の2冊がおすすめです。
特におすすめなのが、1冊目の「ネットワークがよくわかる教科書」です。
とっつきづらいネットワークの知識を、とてもわかりやすく学ぶことができます。
現状のネットワーク本のスタンダードは、2冊目の「マスタリングTCP/IP」だと思っているのですが、今後は「ネットワークがよくわかる教科書」に移っていくんじゃないか、と思わされるくらい出来のいい本でした。
L2スイッチがどう、とか文字だけで書かれてもわかりづらいですが、L2スイッチの具体的な画像とともに紹介されていたりするなど、「ネットワークを理解してもらいたい!」という著者の気持ちが伝わってくる良書です。
また、類書と比べて刊行年が新しいのも評価できるポイントです。
また現在では、インフラの構築にはAWSのような、IaaS(Infrastructure as a Service)を用いることが一般的です。なので、応用情報技術者試験で問われるようなネットワークの知識を、AWSと絡めて理解しておくと実務で役立つでしょう。
そのためには、以下の書籍がおすすめです。
AWSを使ってWordPressを動かすところまで、ハンズオンで学習できます。また、本書でもインフラ構成の全体感を学ぶことができるでしょう。
実務では、応用情報技術者試験で問われるような「L2スイッチがどうこう」とかよりも、AWSについて考えることの方がはるかに多いので、AWSの基本をネットワークと絡めて、本書で押さえてしまうのがおすすめです。
セキュリティ
セキュリティに関しても、キタミ式だけでは足りないので、追加で勉強が必要だと思います。
セキュリティの話は、上で紹介したネットワーク本の中にも書かれていますので、そちらも読みましょう。
それに追加で、以下の書籍をみておくと安心です。
イラスト図解式のシリーズは、見開き1ページに情報がまとめられているので、非常に読みやすいんですよね。図解も豊富なので、Ankiを使った学習にも役立ちまくります。
ただ、セキュリティの深い知識はこの本だけでは得られないので、必要に応じて徳丸本なども利用すると良いでしょう。
ソフトウェアテスト
ソフトウェアテストも、エンジニアであれば必要になってくる知識なので、この機会に学んでおくのがいいと思います。
その上、ソフトウェアテストについては特に、応用情報技術者試験のテキストで学んだところで実務には役立たないので、実務を意識した学習をすることを強くおすすめします。
具体的には、ユニットテストとソフトウェアテスト技法は、開発者なら身につけておくべき知識だと思います。
ユニットテストとソフトウェアテスト技法については、以下の3冊がおすすめです。
これらの本も、ソフトウェアテストの知識ゼロからだとわかりづらい可能性が高いので、これまた手前味噌ですが、Udemyの以下のコースがおすすめです。
特に、エンジニアにとってユニットテストの知識は必須です。ユニットテストは、開発者のためのテストということで、デベロッパーテストと呼ばれることもあるくらい、開発者にとって重要な知識です。
上記のUdemyコースは、KotlinでJUnitを使っていますが、それら独自の要素はほとんど扱っていないので、他の言語やテスティングフレームワークを使う方にも役立つ内容になっています。
なので、「自分が使っている言語と違うから」と言わずに、ぜひ観てみてくださいー。
オブジェクト指向
オブジェクト指向もまた、応用情報技術者試験で学んだからといってすぐに開発で使えるようになるものでもありません。
なぜなら、オブジェクト指向はソフトウェア開発の総合技術で、一朝一夕に身に付くようなものではないからです。
なので、応用情報技術者試験を利用して、オブジェクト指向とはなにか?オブジェクト指向がなんで役立つのか?、くらいはわかるようになるのを目指すのがいいと思います。
おすすめの本は、かの有名な「オブジェクト指向でなぜつくるのか」です。
本書を理解できれば、ひとまず上記の目標は達成できるのではないでしょうか。
ただ、本書はコードによる解説は少なく、「わかったような気がするけど、わかっていないような気もする」となってしまいがちです。
そんな方には、おなじみの手前味噌ですが、以下のUdemyコースがおすすめ。
本コースは、Pythonを使って、具体的なコードをみながらオブジェクト指向とはなにか?を理解していくコースです。
個人的にとても自信作のコースで、いままでバラバラに見えていたオブジェクト指向の各概念が、バチっと繋がり出す快感を得られるコースになっていると思います。
僕も最初オブジェクト指向の理解には苦しんだのですが、そんな当時の僕が喉から手が出るほど欲しかったコースです。
ハードウェア・OS
OSやハードウェアについて、キタミ式の内容よりも詳しく学びたい方には、「ふつうのLinuxプログラミング」が超おすすめです。
キタミ式の説明もとてもわかりやすいものの、やはり簡素な説明のため実務に役立つレベルの深い理解にはいたりません。
その点本書を読めば、コンピュータがどのように動くのかを、実務で役立つレベルに、しっかりとイメージできるようになるでしょう。応用情報技術者試験の対策本を調べても、他の記事でまったく登場しないのが不思議なくらいの良書です。
C言語が解説に使われているので、とっつきづらく感じるかもですが、C言語未経験者でも理解できる内容になっています。「キタミ式のChapter5〜10の内容をもっと理解したい!」という方は絶対に読んで損しません。
本書を読むにはLinuxの基礎知識が必要なので、以下のコースなどでLinuxの基本もこの機会におさえておくと良いでしょう。
※このLinuxの動画が書籍化しました。より詳しくはこちらをご覧ください。
応用情報技術者試験の出題範囲ではありませんが、Linuxコマンドもエンジニアにとっては必須の知識なので、まだ学んでいないという方は、この機会に身につけておくことをおすすめします。
基礎理論(コンピュータ全般、確率・統計、グラフ理論、情報理論)
最後に、その他の応用情報技術者試験の範囲になっていて、かつ学ぶメリットが大きい・人によっては必要な知識について見ていきます。
まずはコンピュータの仕組みを面白く学べる、「思考する機械コンピュータ」です。
本書を読めば、今までよくわからないものだったコンピュータの仕組みを、かなり実際に近い形でイメージできるようになるでしょう。
また、試験対策になるだけでなく、単純に読み物としても非常に面白いです。
僕がこの本を読んだ時は、青春18きっぷでの9時間かけての移動中だったのですが、本書が面白すぎて8時間くらいに感じました。
冗談はさておき、「コンピュータは半導体でなくてもいい、水とパイプでも作れる」みたいな話を初めて知った時には、なるほどと思ったものです。
続いては、確率・統計の知識です。
この知識は、エンジニアだけでなく「人類全員が身につけるべき知識」だと僕は思っています。
人間は「飛行機は事故が怖いから、自動車を運転して東京から博多まで行く」みたいな不合理な意思決定をしてしまいがちなので、確率・統計の知識はそういった人間のバグ(仕様とも言う)を乗り越えるための知識だと思います。
おすすめ本は以下2冊です。
おすすめ本と言ったのですが、正直僕自身は、いろんな本をつまみ読みしながら確率統計の基本を身につけたので、これら2冊をやったら身に付くわけでもないと思います。
なので、いろんな本を読んでいく必要がある、ということを前提として、この2冊を読んだら役立つ部分が必ずある、くらいの認識でいてください。
最後は、グラフ理論と情報理論です。
これらは現時点では、使う人しか使わない知識になっていますが、もし興味があるならこの機会に学んでみてもいいと思います。
導入部分を学ぶ上で、おすすめの教材は以下2つです。(本1冊とWebサイト1つ)
Webサイト
最後に、応用情報技術者試験の勉強に役立つ、Webサイトについて見ていきましょう。
まず、ぜったいに使うのが「応用情報技術者試験ドットコム」です。
こちらのサイトの「過去問道場」をやっていれば、午前試験の対策についてはOKでしょう。実際の試験の過去問に、わかりやすい解説つきで取り組むことができます。
また、本などではよくわからなかったと言う場合は、Udemyで気になるコースを探してみるのもいいでしょう。僕が出しているコース以外にも、たくさんのコースを本よりも安い価格で学べます。
おわりに:特化本を読み込んで、「実務で使える」レベルの知識を身につけよう!
この記事でくわしく書きましたが、やはり応用情報技術者試験の資格を保持しているだけでは、ほとんど意味がありません。応用情報技術者試験の試験勉強をする過程で、実務に役立つ知識を身につけることが、エンジニアにとっては何より重要です。
応用情報技術者試験を活用して、エンジニアとして成長していきましょう!それでは、試験頑張ってください!応援しています!
※僕の受験時の点数やモチベーションを上げる話も書いているので、応用情報技術者試験を受験するエンジニアの方は以下の記事も見てみてください。