IT未経験30代サラリーマンが基本情報技術者試験に一発合格するまでにやったこと
基本情報技術者試験に合格しました。うれし〜〜〜〜
今年の2月にプログラミングスクールでプログラミングを学びはじめて、8月に卒業し、同年の9月に基本情報技術者試験に合格となりました。
合格点は60%で、科目Aが76.5%, 科目Bが89%でした。
ということで、ここまでに何をやってきたか振り返ってみます。
※出題範囲・出題傾向などについての言及は禁止となっています。本記事の記述はすべて「試験本番でその分野の問題が出たかどうか」に言及するものではありません。
簿記3級を取る
はい。いきなりIT関係なさそうな(に見える)領域ですが、
地味に効果があったのは、2年前にふと思いつきで取った簿記3級です。
商業高校の学生は早い段階でこれを取るらしいですが、それくらいポピュラーな資格です。
で、この簿記3級で学ぶ基本的な知識(PL/BSとか)が、基本情報技術者試験においても出題範囲になっています。
簿記3級を最近取っていたおかげで、その範囲の学習をほぼまるまるスキップできたのは大きいです。
プログラミングを学ぶ
科目Bの試験においては、プログラミングの知識というか「感覚・作法」のようなものがとても役に立ちます。
たとえば、
x = x + 1
上記のような記述を見た時に、完全未経験だと「は?」「んな訳あるかい」と思うでしょう。
ですが、プログラミングを学べば普遍的な記述であることがわかります。
この段階をすっ飛ばして、いきなり科目Bの学習から入るのは相当厳しいでしょう。
他には whileとかifとか、変数の概念とか、基本的なプログラミングの知識をつけておけたことで、科目Bはあまり苦労しませんでした。
受験日を言いふらす
社会人の勉強で、陥りがちなミスは「万年勉強中」「万年準備中」というやつです。
基本情報技術者試験は一斉開催ではなく、CBTといって個別に試験を予約し、試験センターでひとりで試験を受けるスタイルです。
で、数日前まで日程変更が可能です。
そう、日程変更ができてしまいます。
1週間前になると、若干不安になってきます。
「まだ勉強が足りない気がする」と。
で、日程変更の申込を検討し始めるわけです。
こうなると、なかなか物事が進みません。
だから、事前に受験日を言いふらしておきます。
僕の場合はこのnoteに何度も書いてきました。
知り合いにも言いふらしてきました。
そうして後に引けない状態を作って、腹をくくって受験するわけです。
受験日を後ろ倒しにすべきでない理由
受験が近づくと、かならず不安になるものです。
不安になるたびに、期日を延ばそうとしていたら、いつまで経っても受験ができません。
なぜなら、どれだけ勉強していても不安になるからです。以下のプログラムで動いているようなものです。
勉強量に関係なく、1週間前に不安になる
自分の中で「不安になる→期日を延ばす」というプログラムがある
さて、どうなるか見てみましょう。
mind = "頑張るぞ"
if 試験予定日が1週間以内
mind = "不安"
end
if mind = "自信がある"
return "受験する"
else
retuen "期日を延ばす"
end
せっかく「頑張るぞ」と意気込んで準備しているのに、試験が1週間後に迫ったら不安になり、不安状態であれば受験しない。ということになりますね。
このプログラムは永遠に受験するゴールに辿り着きません。つまりこれは「受験をする」という目的を考えたときに、正しくないアルゴリズムである、ということです。
受験ルートに行くためには、どこかで「不安だけど、受験する」という分岐を選択しなければなりません。
では、何回目のループでその選択肢を選びますか?
僕は初回が良いと思います。
漫画『呪術廻戦』で、主人公がこんな感じのことを言うシーンがあります。
(悪い奴であっても)それでも殺したくはないな
一度人を殺したら「殺す」って選択肢が俺の生活に入り込むと思うんだ
転じて、「一度期日を延ばしたら、期日を延ばすって選択肢が入り込んでくる」わけです。だから、延期は0回が良いと思っています。
「自分との約束守りグセ」をつける
人間、自分ひとりで決めた約束は簡単に破ることができてしまうものです。
たとえば「今日こそはデザートを我慢する」と決意したのに、その夜にはいつも通りアイスを食べていたり、「30分前に会社に着くぞ」と意気込んでも、当日朝になると結局いつもの電車に乗っていたり。
社会人は、自分との約束を反故にしがちです。
ところが、やっぱり何かに挑戦して成果を得るには、そこは変えていかないといけません。
そして「試験の日付」というものは「自分との約束を守る」という行動を具現化する、絶好のチャンスなわけです。
そもそも、基本情報技術者試験というものは取得することがゴールではなく、そこからITキャリアがスタートするようなものです。
ということは、仮に合格したとして「自分との約束が守れないITエンジニア」になるのか「自分との約束が守れるITエンジニア」になるのかという、IT知識・技術とは別の次元のパラメータに関連する活動であると言えます。
どうせ合格目指すなら、その過程で自分自身もレベルアップしといた方がお得です。
ということで、「受験日を言いふらすことで退路を断ち、結果的に自分との約束も守るし、期日が決まっている状態でベストを尽くす」のが大事だった。という話でした。
まず問題を解く
ちょっと具体的な話をします。
知らない領域を学ぶとき、皆さんはどういうアプローチで入っていきますか?
入門書を読むとか、YouTubeやUdemyで動画を見るとか、いろいろあると思います。
僕は、「まず問題を解く」ところから入るのが良いと思います。
最初なんもわからん、でもそれが大事
まず問題を解く とは言っても、勉強していない分野の問題をいきなり解けるはずがありません。でもそれでいいのです。
「全然わからん問題がいくつもある」という状態からはじめます。
理由を説明します。
問題があるから、解決策が見つかる
以下の2つの文章を読んでみてください。
ミカンは200円、
ぶどうは500円、
パイナップルは600円、
リンゴは300円です。
太郎くんはぶどうを買います。
太郎くんはお金を何円持っていけば良いでしょうか。
太郎くんはリンゴを買いに行きます。
ミカンは200円、
ぶどうは500円、
パイナップルは600円、
リンゴは300円です。
太郎くんはお金を何円持っていけば良いでしょうか。
どうでしょうか。言いたいことは伝わりますでしょうか。
つまり、最初に「これ知りたいなー」と思って情報を頭に入れるのと、
「なんかわからんが沢山の情報が来た、どれが必要な情報かわからんけど全部覚えないといけませんかねコレ・・・?」という状況では、脳の負荷も情報処理の効率も段違いだということです。
当事者意識を持つと覚えられることが増える
別の理由として、「自分に関係あることであれば頭に入る」というものもあります。「自己関連づけ効果」とも言われるようです。
例えば、「家族が病気になったので、その病気について詳しくなる」とか、「会社で大きなトラブルがあって、関連する法律に興味を持つ」とか、そういうことってありますよね。
もっと俗っぽい例で言えば、「もっと良いリュックが欲しいと思っているときは、街ゆく人のリュックがめっちゃ目に入る」とか、「最近覚えた新しい言葉を、たまたまテレビでよく聞くようになった」とかも近い例です。
これは脳幹網様体賦活系(RAS)という脳の機能で、自分にとって必要な情報であるかどうかを脳が判断して拾い上げる機能と言われています。
今まで、素敵なリュックを背負った人々も、テレビの言葉も、そこにあったのです。単に、脳がそれを認識し始めた。ということです。
これを読んでいる方全員に脳があるわけですから、この脳がもつパワーを使わない手はありません。
具体的には「先に問題を見る」ということです。問題を見て、わからないことを把握した上で、その問題を解けるように新しいことを覚えていくわけです。
苗木を植えるときには、先に穴を掘るのです。
問題集を2周する
さて、先に問題を見て、何もわからん状態から勉強をスタートします。
まずは問題集1周です。
1周目は「問題」→「答え」→「周辺知識」をつかむ
このとき、わかる問題は自力で解き、わからないものは解法を見たり、教科書で調べたりします。Udemyで関連講座を見るのも良かったです。(1300円セールやってたので)
この時期は、毎日2時間ほどの勉強時間だとして
科目Aで4〜5日、
科目Bで2〜3日をかけて、
1回分の過去問題や模擬試験を進めました。
1問ごとに「わからない」→「教科書で調べる」→「わかる」というプロセスを繰り返すので、じっくり進めていくわけです。
例え話が渋滞していて恐縮ですが、「世界地図を覚えよう」というタスクを想像するとわかりやすいと思います。
世界地図を覚えないといけない。しかも、国名だけでなく都市名も。
まずは世界地図を買ってきて、全部眺めてみよう。
(5分後)・・・全然頭に入らない!!
世界地図を覚えないといけない。しかも都市名まで覚えないといけない。
まず過去問の問題を見よう。サンフランシスコ?
地図で探してみよう・・・アメリカのカリフォルニア州だな。
おっ、ロサンゼルスって聞いたことあるな。ここもカリフォルニア州なんだ。え?同じ州なのにサンフランシスコからロサンゼルスまで車で8時間もかかるの?
飛行機でも1時間半くらいかかる?
アメリカって広いなー!
どうでしょうか。後者のほうが楽しそうですよね。
・・・という話ではなく、基本情報技術者試験の1周目の問題はこんなノリで取り組んでいました。何を伝えたかったかというと、
わからない問題について調べる
ついでに、その知識の周辺の情報もフワッと見る
関連する情報があれば、繋げて覚える
みたいなことをやっていました、ということです。
こんな感じで1ヶ月くらいかけて、問題集を1周しました。
2周目は「自力で解く」
さぁ、いよいよ2周目です。
2周目はいわゆる「問題集」として一般的に想像される使い方をします。つまり、問題を自力で解いていきます。
そこで、解けた問題はスルーして、間違った問題の箇所に付箋で目印をつけながら、何を間違えたのかメモしていきます。
いよいよ明日試験なので追い込み
— tom_プログラミング勉強中 (@ntom_tech) September 14, 2024
問題集2周目が終わり、苦手分野がはっきりしたので
付箋を貼ってそこだけ復習するなど
克服したところも一応残しているため、付箋だらけ pic.twitter.com/EEudh3LMTp
これはプログラムのトレース適当にやって判断したせいで誤答となった当時の自分からの
— tom_プログラミング勉強中 (@ntom_tech) September 14, 2024
怒りの戒めメッセージ pic.twitter.com/cennwt9LVA
2周目が終わったら、間違えた部分に付箋がたくさん付いた状態の問題集が出来上がります。
あとは、「間違った問題」の周辺知識を含めて、教科書やUdemyで勉強していく感じで進めました。
特に、問題集を2周しても間違えるような問題は、根本的に自分の中でイメージが追いついていない分野(ネットワークとか、ポートがどう、サブネットが何、公開鍵暗号方式だのなんだの)だったので、そのへんは動画教材でフォローを入れるのが効果的でした。
直前1週間は付箋ゾーンを繰り返す
問題集に付箋がついているところが示すのは、「一度間違えた」という事実だけでなく、自分の弱点となる分野・領域を指し示していることになります。
僕の場合はネットワーク関連とセキュリティ関連が苦手だったので、それらの問題にいっぱい付箋がついていました。
試験1週間前は、本番を想定して問題を長時間、全体的に解く練習を重ねながら、付箋のついている部分は教科書や動画教材、グーグル検索なども駆使しながら、とにかく理解を進めるようにします。
このころになると、最初のころは数日かけて解いていた模擬テスト1回分が40分とかで解き切れるようになってきて、1周目には1ヶ月かかった問題集も、1週間で2周目が終わったりします。
付箋以外のところは「考えたら解ける」という前提で、苦手なところをとにかく埋めるようにしました。
まとめ
まとめると、以下です。
簿記3級は地味に役立ったよ
受験日は一度決めたら変えないつもりで行っとけ
問題を先に見て玉砕してから学ぶと早いよ
問題集を2周して苦手を炙り出すと良いよ
大詰めの時期は体力づくりと苦手領域に集中しよう
特に「受験日を変えない」というのは結構重要なマインドの話かなと思っています。
僕も途中、体調不良で1週間ダウンしたり、転職活動の面接で連日夜にZoom面接だったりで学習が滞ることがありましたが、「9/15の受験だけは変えない」という前提で巻き返したことで、本記事のような工夫やら何やらを凝らし、無事に合格できたってワケ、でございます。
最後に参考文献(?)を紹介させてください。
脳幹網様体賦活系については、樺沢紫苑先生の『学びを結果に変えるアウトプット大全』
自分に関係のあることは覚えやすい、という「自己関連付け効果」については、安川 康介先生の『科学的根拠に基づく最高の勉強法』
虎杖くんの名言は『呪術廻戦 3巻』
期日を決めてパフォーマンスを上げる点については、クリストファー・コックス氏の『締め切りを作れ。それも早いほどいい。』
使った問題集は『かんたん合格 基本情報技術者過去問題集』
使った教科書は『令和06年 イメージ&クレバー方式でよくわかる かやのき先生の基本情報技術者教室』
※教科書と問題集は合計2冊買ってよかったです。片方だとカバーしきれない説明や、理解しきれない用語などが出てきます。
おおむね上記の本から得た着想を活用して、今回の勉強法を自分なりに編んで実行してみました。それなりに結果が出せたので良かったです。
今日は以上となります。
最後までお読みいただきありがとうございました。