【遠回り】勉強しないで基本情報技術者試験に受かる方法
- 2021.02.27
- IT
勉強しないで基本情報技術者試験(以下基本情報)に受かる方法を説明します。
まず、勉強しない、というのはウソです、はい。
ただ、テストのためのテスト勉強はしない、という意味です。
例えば、「TOEICの点数を上げるためにTOEICの出題形式に慣れる勉強をする」
これって本質的な英語力は上がらないですよね。
それと同様に基本情報のために基本情報の勉強をしても、コードが書けるようにはなりません。
なので、ここでは、情報技術者としての力を本質的に上げつつ試験に合格する方法を説明しようと思います。
(完全遠回りルートなので、近道したい人は過去問を解きまくれば受かると思います)
午前試験編
正直ここは過去問を解くのが早い上に役に立ちます(笑)
というのも、毎年同じような問題が出されるうえに、知識として知っておくべきものではあるからです。
通学時間に「基本情報技術者試験ドットコム」で過去問を解きまくると良いでしょう。
何か分からないなーという場合には、キタミ式イラストIT塾 基本情報技術者 などを見て勉強しましょう。
午後試験編
午後試験の出題範囲に分けて説明していきます。
基本的に手を動かして勉強になる方法をピックアップしています。
情報セキュリティ
この分野では、
①「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか 」
②「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版[固定版] 脆弱性が生まれる原理と対策の実践」
がおすすめです。
①はWeb系の技術の歴史をたどりながら、セキュリティにも言及しています。
歴史的背景を知りつつ、セキュリティについても学ぶことは、役に立つかなと思います。
この分野は攻めつ守りつの、いたちごっこですので。
②の本では、ウェブサイトの脆弱性について手を動かしながら学ぶことができます。
最初は難しいかもしれないので、実際にウェブサイトを作ってからが良いかもしれません。
ソフトウエア・ハードウェア
この分野では、
①「ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミングの王道」
がおすすめです。
エンジニアならLinuxは触るでしょうし、CPUがなぜ動くのかも知っておくべきでしょう。
①の本が良い点は、Linuxで普段よく使うコマンドを自分で作りながら学べる点です。
LinuxはCUIで操作するのですが、特有のコマンドが何を表しているのか、なぜそういう動きになるのかを学べるので有用です。
②の本は、CPUの仕組みを分かりやすく説明しているのですが、2進数の計算がどうして必要なのか分かると思います(笑)
さわりだけでも読んでみると面白いかなぁと思います。
ちなみに、2進数の計算は、Linuxの権限の確認(chmod)と、ネットワークの設定で割と使うかなと思います。(後は組み込み系も)
データベース
この分野では、
②「基礎からのMySQL 第3版 」
とかが良いかなと思います。
①の本は、マンガで本当に分かりやすく書いてあります。
これで基本情報に出てくるDB操作のコマンドが半数以上分かるのではないでしょうか。
ただ、これだけだと自分で操作できるようにはならないので、②の本で実際に手を動かしてみると良いと思います。
最近は上記のRDBMS以外にNoSQLも使われているので、余力があればAWSで遊んでみても良いかもしれません。
ネットワーク
この分野では、
②「Head Firstネットワーク ―頭とからだで覚えるネットワークの基本」
③「ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識」
あたりが良いかなと思います。
①の本は、薄い本なのですが、さわりを全体的に知るには良い本だと思います。
②の本は、人を選ぶ冗長に書かれた本なのですが、ネットワークの低レイヤーのハードウェアから説明してあるので、
見てみる価値はあるかと思います。
③の本は、①、②をより詳しく説明してある本になります。詳しくて分かりやすい良書だと思います。
④を出した理由は、手を動かせるからです。
この本では、ネットワークプログラミングの章で、WWWサーバを作るのですが、各層に分けて実装していくので、
どうしてネットワークがつながるのか、手を動かして学べるかと思います(中級者向け?)。
ソフトウエア設計
ここは私もまだまだな部分ではあるのですが、、
②「スッキリわかるJava入門 第3版 スッキリわかるシリーズ」
⑤「憂鬱なプログラマのためのオブジェクト指向開発講座 (DDJ Selection) 」
あたりが良いと思います。
①の本でさわりを知りながら、②~⑤の好きな言語の本で手を動かせば良いかと思います。
各著者がそれぞれ色々な説明をしているのですが、それを読む比べる方が個人的には役に立ちました。
その上で、普段コードを書く中で、これはオブジェクト指向ならどう書くか、などを考えれば理解度は上がるかと思います。
プロジェクト・サービスマネジメント、システム戦略、経営戦略
ここら辺の問題は、国語の読解力が試されている気がするのですが。。(笑)
経済雑誌や新聞を読んだり、するのが良いのでしょうか。
私の好みで良ければ下記の本は読みやすくて、ためになるかなとは思います。
②「世界標準の経営理論」
データ構造およびアルゴリズム
この分野では
①「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」
②「新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ) 」
あたりが良いかなと思います。
全部C・C++なのですが、他の言語でも実装できるはずなので、ネットで調べながら勉強するのも良いかと思います。
特に①は、コンピュータサイエンス全般の必須知識を実装できるのでとても良い本だと思います。
計算量を考慮したコーディングを意識することができますし。
ソフトウエア開発
この分野は、自分の作りたいものを作りましょう!それが最速かつ楽しいと思います!
テストで出る言語で一応おすすめを挙げておきます。
C言語
②「Head First C ―頭とからだで覚えるCの基本」
④「C言語ポインタ完全制覇 (標準プログラマーズライブラリ) 」
C言語は完全未経験の人は、つらい可能性があります(私は辛かった)。
詳しい人がいる場合におすすめします(本当にありがたかった)
ただ、コンピュータがどのように動いているのか意識できるようになるので、
C言語はとても良い言語だと思います。
私が一からやり直すなら、①から④の順で読むかなと思います。
①で概観を、②で初級、③で中級(実務で有用)④はポインタが分からないなら
という感じです。
ちなみにですが、絵本シリーズは中古で安く買えるのが良い点だと思います(笑)
Java
①「スッキリわかるJava入門 第3版 スッキリわかるシリーズ」
③「Head First Java 第2版 ―頭とからだで覚えるJavaの基本」
私はJavaは普段使わないのですが、この3冊は読んで使ってみてとても分かりやすかったのでおすすめです。
Python
この言語は、とっつきやすい(奥は実は深い)ので、作りたいものを作れば良いと思います。
例えば「退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング」とかは、
仕事で役に立つ自動化プログラムを書けるので良いのではないかと思います。
番外編
文系の私は、数学に苦手意識があったので、そこら辺の知識をここら辺の本で補いました。
また、最近の話題、AIとかを触って楽しむ、という点では、下記の本は面白いしためになると思います。
まとめ
…普通にテスト勉強した方が圧倒的に早い!(笑)
ただ、遠回りするのも、各分野がつながってくるので良いかなぁと思います。
実感を持ってテストを解くことができます。
本の紹介みたいになってしまいましたが、様々な本を読んだ中のおすすめの本達です。
参考にしてみてください。