高度情報処理技術者試験の勉強法

# はじめに
新人プログラマ応援イベントに自分もなにか貢献できないかと思い、情報処理技術者試験のことを書こうと思います。
資格というと、プログラマには関係ないものだと思う人もいますし、職場でも資格は要らないと言われることもあります。
しかし、システム開発は知識が必要な仕事である以上、何かしらの体系が存在します。それら体系的な知識を勉強し、試すのにちょうど良い機会が情報処理技術者試験（IPA試験）だと思います。
実際に、高度情報処理技術者試験に合格することで、少しずつですが業務で扱うシステムを俯瞰して見られるようになってきたと思います。
各高度情報処理技術者試験に共通する勉強法をまとめて、新人プログラマの方の参考になればと思います。

https://qiita.com/official-events/3f21c92121aa125807b4

# 保有資格

- 基本情報技術者
- 応用情報技術者
- データベーススペシャリスト
- システムアーキテクト
- プロジェクトマネジメント
- ITストラテジスト

※2022年4月に記事を書いてから、下3つに合格しました。やってきたこととしては、この記事の通りです。

# 大事なこと

大きく2つあります。日頃の情報収集とモチベーション管理です。

1. 日頃の情報収集
 試験対策ももちろん重要なのですが、やはりシステムやテクノロジーのことに興味を持つことが大事だと思います。実際に2022年度のシステムアーキテクト試験問題(午後Ⅱ)は次のようなものでした。
 「近年, IoT, ビッグデータ, AIなどに代表される新技術が登場しており, 業務効率化や品質向上を目的として, 今まで使用したことがない技術を適用することが多くなっている。...」
 今どき、紙と鉛筆で試験をさせる人たちでも、新技術の適用に関する問題が出題しています。更に、わざわざ試験会場に集めて試験をしているのにも関わらず、同試験の午後Ⅰではリモートワークをテーマにした出題でした。
 つまり、環境の変化や新技術に興味がないとIPA試験も難しいものになっています。
 特別なことは要らないと思いますが、ネットニュースやQiitaなどで、技術や働き方、サービスに関心をもち、気になることを調べることが大事だと思います。あとは、ネット記事だけでなく、技術書なんかも読むとよりよいと思います。
2. モチベーション管理
 資格試験なので、基本的に勉強すればできるようになっています。なので、勉強習慣をつければ合格することになります。
 モチベーションについては、かなりいろいろ書籍やネットで探せば出てくるので、モチベーション維持できない人は、調べるところから始めるといいと思います。
 私が気にしていたのは、次の2点です。
 
   1. 継続できる勉強法
   1. 自分にあった参考書を使う　

 毎日少しでも勉強するために、自分ができる勉強法を考えました。科目別に、次章以降で記載します。また、同様に自分にあった参考書も大事です。おすすめや定番の本はありますが、持っている知識がバラバラである以上、合う合わないがあります。自分に合わないな、問題ができるようにならないなとおもったら、別の本を試すのも良いと思います。
 私も定番の本だと、午後Ⅰの解説がしっくりこず、別の参考書を使ったら、解けるようになっていきました。

# 午前Ⅰ・午前Ⅱの勉強法

基本情報技術者試験や応用情報技術者試験と同じような勉強になります。応用情報技術者試験を持っていれば、過去問で十分だと思います。おすすめなのが、アプリを使って勉強することです。電車の中やCMなどの隙間時間でもできるので、とにかく継続するにもってこいです。また、アプリなら、間違えた問題や苦手な問題の管理もできるので、大事な復習も仕組み化できています。
また、過去問と同じ問題も出題されるので、過去問を理解した上で、繰り返し解いて、すぐに解けるようになっておくことが大事です。
過去問が解けない人は、基本情報技術者試験に立ち返っても良いかと思います。計算機科学やネットワークは基本的な用語や知識を知らないと過去問を暗記するだけになってしまうからです。1から勉強するというよりは、復習してわからないところを調べる（＝ググる）勉強法でいいと思います。
情報収集に関連しますが、ストラテジ系の問題はビジネス書を読んでいれば概ね解ける問題が多いのではないかと思います。

# 午後Ⅰ

読解力が試されます。午前Ⅱがある程度できるようになれば、知識は十分です。そのうえで、業務概要やシステム概要、要望を読んで、回答していくため、国語の試験に近いです。
過去問を解く→解答・解説を読んで、解答プロセスを理解する練習を繰り返します。解答のプロセス＝本文のどこに解答の根拠が隠れているかを探すことです。まず、設問を読んで、本文から探すように読んでいきます。
結構な長文なので、速読を意識する必要があります。
私は、読むことに苦手意識はなかったのですが、根拠を探す読み方ができていませんでした。なので、過去問を丁寧に解くよりも、解答の根拠を探す練習、つまり根拠と思う場所に線を引くだけにして、先に解説を読むようにしました。問題文を解こうとすると気が重いのですが、最初は線を引くだけに絞ることで慣れることを優先させました。線を引ければ、文字数は意外になんとかなるよう作られている気がします。
（制限文字数が設問によりバラバラなので、本文の根拠を抑えると大体それぐらいの文字数になるように作られている気がします。）

# 午後Ⅱ

記述力が試されます。2時間で2000～3000字近くの論文を手書きで書きます。かなり大変です。ネタの準備方法や論文構成方法などは、参考書に丁寧に書いてあるので、それで十分かと思います。参考書に書いていないことで大事なのは、次の2つです。
1. フィクションを織り交ぜる
ネタの準備をしても、当日完全にぴったりなテーマが出題されるかはわかりません。なので、ネタを準備しつつ、アドリブでフィクションを織り交ぜます。やりやすいのは、本当は実現したかったけど、工数、予算の問題で実現できなかった機能を入れるのがいいと思います。実現できなかったということは、システムで解決しきれず、負の状態が残っていることなので現状を伝えやすいです。また、その機能によって、負が改善されたということも書きやすいと思います。他にも、スクラッチで作ったけど汎用的なものだったのでパッケージということにする、システム導入前の状況を現実よりもひどくするなど、このあたりは過去問を通して練習するとイイと思います。
1. 分割してでも、書く練習をする
正直、仕事後に午後Ⅱの過去問を解く気になる人はそういません。なので、できる単位に分割することをオススメします。私は1本目の論文は、4日にわけました。1日目に論文骨子とメモ、2日目に設問ア、3日目に設問イ、4日目に設問ウと解説の確認という形にしました。本文の記述はメモを見ながらであれば、30分程度です。このぐらいであれば、なんとかできるので、とにかく継続して紙に書く練習をしました。意外にも、シャーペンを使って、長文を書くことに慣れるまでに時間がかかります。とにかく慣れも必要なので、分割することで継続した練習にすると良いです。

# まとめ

各論に踏み込めていない抽象的な勉強方法のコラムになってしまいました。
伝えたいことは、自分ができる勉強法を見つけることです。そのためには、日頃から情報収集してゼロスタートにならないこと、そして試験日まで諦めないためのモチベーション管理ができるといいと思います。
モチベーションを保ち、勉強を続けるために私が実践した、アプリを使うことや過去問を分割する方法を紹介しました。なにか勉強法の参考になれば幸いです。

# 後記

なんてことないコラムですが、自分で書いた記事の中で一番読まれてました。大変ありがたいです。
情報処理技術者試験（IPA試験）は慣れの部分も大きいかなと思っています。論文試験に苦手意識があったのですが、システムアーキテクト試験に合格したあと、連続でプロジェクトマネジメント試験にも合格できました。論文の型みたいなものが自分の中にできたと思います。その過程で、人に説明する文章も得意になってきたと思います。
たかが試験ですが、それをきっかけにスキルを高めていきたいと思います。

# 2024/07/04追記

令和6年度春試験で念願のITストラテジストにも合格しました。
次は、情報処理安全確保支援士を目指してみようかなと思っています。