基本情報技術者試験対策 2週間目の記録


こちらの記事を書いてから1週間経過しました。
現在も基本情報技術者試験に向けて勉強中です。


勉強の方針1 問題集を軸に進める

全体の方針としては、問題集をまず解き始めて、わからない部分にあたったときに各部分を調べる、という手順で継続しています。

教科書を1から読むのに比べて、知識に抜けが出る可能性はあるものの、必要に応じて知識を入れていくことで定着率を上げる考え方です。

使っている問題集は455ページあり、現在位置は200ページです。
だいたい半分くらいの進捗ですね。
試験本番まであと1ヶ月以上ありますから、悪くない進捗となっています。

勉強の方針2 暗記カードアプリを使う

基本情報技術者試験において、語句の意味を問う問題が一定数あります。また、基礎的な単語の意味がわからないと問題の理解が難しいケースもあるでしょう。
そのため、単語の暗記も必要です。

使っているのは、iOSアプリ「WordHolic」です。

  • 無料から使える暗記カード

  • csvファイルから一括でインポートできる

  • 月額120円で広告OFFにできる

  • 忘却曲線に対応した復習サイクルで通知が来る

以上のように「かゆいところに手が届く」暗記カードアプリです。
特に、一度覚えたものを数日後に再度リマインドしてくれる機能が優秀で、記憶を適切なタイミングで強化していくことができます。

問題集や教科書の付録として、単語カードが付いていたり、Webで単語カードのような教材を提供している教科書や問題集が多いようなのですが、それを一度このアプリにインポートしてしまえば、科学的に最適な方法で記憶に定着を図ることができそうです。

勉強の方針3 科目B対策

基本情報技術者試験の「科目B」はアルゴリズムの問題です。

アルゴリズムの問題は、「基礎知識が必要な部分」や「基礎知識があった方が早く解ける問題」というものがあります。
が、それよりも「独特の記述方法で書かれた文章をいかに早く理解するか」という点も重要になると感じています。

そこで、現在取り組んでいるのが"paiza"です。

paizaをやってみている

プログラマのためのeラーニングサイトと転職サイトを兼ねたようなサービスで、実力を測るスキルチェック・実力を伸ばす問題集などがあります。

現在、僕のスキルランクはCランクだそうです。
半年プログラミングスクールに通ってCかよ。と思わなくもないですが、実は原因はハッキリしていて、
「わからないものはその場で調べて実装する」スタイルで課題を進め、オリジナルアプリを作ってきたので、しっかりと暗記する学習スタイルをとってこなかったことが原因です。

スタンスとしては「わからないことはどんどん調べて対応する」ことは重要だと考えていますが、とは言え「調べればわかるのだから、知らなくても良い」とは思っていません。
例えば「東京ドーム」を知らない人は、「東京ドームまでの行き方」を調べることはできません。
知っていることには一定の価値があります。生成AIやインターネット検索がいくら発達しても、「人間が調べられるのは、その存在を知っていることだけ」なのです。

別の角度から言えば、例えば「自転車しかない星から来た人」が千葉駅らへんに住んだとして、「千葉駅から東京ドーム」への行き方を調べたとしましょう。
すると、地図を見て「だいたい42kmか…3時間くらいだな」みたいなことを大真面目に検討することになります。
いやいや、電車使えよ。1時間くらいやぞ。 ということを思いつくためには、”電車”という手段を知っている必要があるわけです。

if文しか知らないプログラマは、すべての問題をif文で解決しようとするでしょう。生成AIにも、「この問題を解決するためのif文を書いて」と質問することになってしまいます。これではきっと使い物になりませんね。

例え話が長くなりました。要するにpaizaは「自分の知っている範囲で書けるコードを増やす」、もっと正しく言えば「自分の知っている範囲の技術で解決できる問題を増やす」ことがきちんと達成できるつくりになっています。
それは単に技術を知っているだけでなく、知っている技術をどのように組み合わせて「問題を解決するか」というアイデアを出すところから模擬的に取り組むことができるわけです。

問題を読むことで読解力がつく

で、それが基本情報技術者の科目Bとどのように関係するのか?についてです。
ズバリ、「読解力が身に付く」ことだと思います。

paizaの問題文の書き方には、独特の癖があります。
厳密には癖というより正しく書かれているので、慣れないうちは読みにくさがあるということです。イメージは以下のような感じです。

クラス内でじゃんけんトーナメントを行います。クラスの人数Nと、じゃんけんの回数Kが与えられます。
じゃんけんの手のグー・チョキ・パーはそれぞれG, C, Pで表現され、a_1 a_2のように半角スペース区切りで出力されます。
手の直後には、参加した生徒の番号の入力が半角スペース区切りで与えられ、1行の入力はa_1 a_2 a_3 a_4となります。
入力はK回与えられ、最後に整数Lが与えられます。整数Lの番号をもつ生徒が勝った回数を1行で出力してください。
# 入力例
N K
a_1 a_2 a_3 a_4
...
i_1 i_2 i_3 i_4
L

イメージなので適当な問題ですが、要は変数がモリモリ出てくるような、慣れるまで何を言っているのかまったくわからない問題がpaizaにはたくさん出てきます。むしろたくさん出るというかこれが普通なので、全部この調子です。

で、この問題に慣れると、基本情報技術者試験の科目Bで出題されるような日本語の問題文がめちゃめちゃ読めるようになります。(個人の感想です)
実際にpaizaを始めてから、科目Bの問題を解くのがだいぶ早くなりました。

科目Bは読解力がモノを言う部分でもあるので、ずらずら書かれた文章を自分の脳内で理解しながらロジックを組み立てていくことが重要と思います。その点でpaizaでのトレーニングは優れていると感じます。
(もちろん、「先に回答選択肢を見てアタリをつける」のような試験対策テクもありますけれど)

paizaランクをBランクにあげるという目標もあるので取り組みやすいですし。一度ページを開くとゲーム感覚でずっとやっちゃいます。とても楽しい。

2週目のまとめ:進捗良好。課題発見

ということで、基本情報技術者試験を9月に控えたプログラミング初心者の勉強報告でした。
ルーズリーフは最初の100枚を使い切り、次の袋を開けたところです。

問題集の進捗は良好で、暗記アプリもいい感じで必要知識をインストールできています。
一方で、paizaランクはC ということでまだまだ実力不足なので、当面はBランクを目指してコーディングの練習も進めていく
という新たな課題ができました。(ついでに科目B対策にもなる!)

日々、できなかったことができるようになっていくのは楽しいです。
引き続き精進します。

今日はここまで。
最後までお読みいただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?