基本情報技術者試験を受けてきた

結果

先週日曜(2017/04/16)、基本情報技術者試験というのを初めて受けてきた。

同日中に解答が公式に配布されて、翌日さっそく自己採点したところ、たぶん今回は駄目だった。
(正式な合格発表は5/17)

同試験は午前と午後の部があって、それぞれ60点以上とれば合格なのだけど、午前は77点ちょいでパスしたものの、午後がたぶん53点ぐらい。
だから午後の方でアウトになってる。

ちなみに、午前は厳密に配点が公開されてるのだけど(1問につき1.25点)、午後は大問ごとの配点のみ明示されていて、その中の小問というか、枝問の配点まではわからないので、上記は大体の目安。
とはいえ、少し厳し目に算出したものの、さすがに7点ずれてるということはないだろうから、駄目なものは駄目だと思う。

今年の1月末にITパスポートという、やはり国家試験ながらコレ系では一番カンタン(というか一般人向け)、みたいのを受けて(それは受かった)、そのための勉強を始めたのが昨年末ぐらいだったので、それも含めると約3ヶ月、とはいえ2月は別件であまり時間が取れなかったので正味1〜2ヶ月程度の学習期間だったのだけど、それにしてはまあ、頑張った方だと思う。

というか、元々今回は記念受験というか、とりあえず受けるだけ受ければそのために否が応でも勉強するだろうし、それを土台にして秋の合格を目標に据えて頑張ろう、とか思っていたのだけど、だんだん過去問の結果がいい感じになってきて、「あれ、これもしかして結構ギリギリのところまで行けるのでは……」みたいに思ってたら本当にギリギリ(アウト)だったという感じ。

当初の目標は低めに設定していたとしても、当然のことながら合格できるならしてしまいたかったわけで、やっぱり無念ではある。

と同時に、しかし実際には、午前はともかく午後の方はだいぶお手上げな感じで、午後試験が始まってから1時間ぐらいで、「うわー、今回は駄目だ、まったく駄目! 過去問はそこそこできてたのに、全然歯が立たないじゃん。秋までサヨウナラ〜だな!」と、会場で完全パニック&気持ちが180度折れるぐらいわからなかったので、それにしては拮抗したじゃん、というか当てずっぽうの回答が当たりすぎただけでは、という気すらする。

まあ、60点という基準点がそれだけ低めの設定なのかな……とも思うのだけど。
簿記は70点が基準点で、前回2級に落ちたときは60点で落ちたので、まあ60点が基準点というのはけっこう懐が深い感じなのかもしれない。

上では記念受験と書いたけど、それに近い感じで今回の最大の目標というのは、何しろこの基本情報技術者試験、午前が9時半からのスタートで、かつぼくの家から会場までが1時間ぐらいの距離だったので、とにかく「時間に間に合う」というのが最大の目標になっていた。

ようは試験の開始時刻にちゃんと間に合って、かつベストの体調で最後まで受けきり、持ってる実力を発揮する、ということ。

実力を発揮した上で落ちるなら、まあしょうがないのだけど、体調不良とか寝不足とか、あるいは準備するもの(受験票とか)の不備とか、寝坊とか無自覚な違反行為とか、そういうのが理由で落ちたら悔やんでも悔やみきれないので、そういうことを最大限避けて受験する、というのが目標だった。

で、それは達成できて、しかしその結果としては上記のように、問題が自分には難しかったり、(おそらくはその影響もあって)とにかく時間が全然足りなかったので、次に受けるときはもうちょっと余裕を持って、少なくとも問題の内容を理解しながら最後まで答えきる、というのを新たな目標として設定したい。

とくに、必須問題である第8問のアルゴリズム問題。これは擬似言語というのを使って、プログラムの中身をトレースしていくような問題なんだけど、これが本当に最後の最後まで苦手で、結局まともな得点を取れないまま本番が終わってしまった。
次回はとくにこの問題で、ちゃんと自信を持って回答できるようにしたいという気持ちが強い。

今回はこれだけの短期間で、仕事もしながら(他にもいろいろ忙しかったのだけど)、ここまで来たのだから、その調子でいけばもう少し向上できるはず。たぶん。

参考書

学習経緯としては、以下に簡単なログというかメモを残してある。中途半端だけど。
基本情報技術者試験の受験勉強の記録 - note103

進捗記録の最初(一番下に記載)が3/18だけど、手元のログを見ても過去問に着手したのが3/11とかなので、本格的な問題練習はその頃から、という感じか。

そのリンク先には参考にした本なども記載しているけど、その後に購入したものを含めて、とくに参考になったものを列記&簡単にコメントも付しておく。

(PDF・スマホ単語帳付) かんたん合格 基本情報技術者 過去問題集 平成28年度(2016年度)秋期

(PDF・スマホ単語帳付) かんたん合格 基本情報技術者 過去問題集 平成28年度(2016年度)秋期

  • たぶん一番読み返した&使った。単なる過去問集ではなく、解説も丁寧で充実していた。多謝。

平成29年度 ITパスポート合格教本 (情報処理技術者試験)

平成29年度 ITパスポート合格教本 (情報処理技術者試験)

  • 作者:岡嶋 裕史
  • 出版社/メーカー: 技術評論社
  • 発売日: 2016/12/01
  • メディア: 単行本(ソフトカバー)

  • 後述。

ゼロからはじめる基本情報技術者の教科書

ゼロからはじめる基本情報技術者の教科書

  • 作者:滝口直樹
  • 出版社/メーカー: とりい書房
  • 発売日: 2014/11/26
  • メディア: 単行本

改訂第3版 すらすらと手が動くようになる SQL書き方ドリル (WEB+DB PRESS plus)

改訂第3版 すらすらと手が動くようになる SQL書き方ドリル (WEB+DB PRESS plus)

  • すでに古典(?)な本書。受験用ではなく少し前に買ったのだけど、データベース問題対策として非常に有用だった。挿絵(イラスト)も最高。

(全文PDF・単語帳アプリ付) 徹底攻略 応用情報技術者教科書 平成29年度(2017年度)

(全文PDF・単語帳アプリ付) 徹底攻略 応用情報技術者教科書 平成29年度(2017年度)

  • 今回の受験とは対象が違うけど、念のためと思って買っておいたらビンゴ。「基本」用の教科書では省略されてしまった重要トピックについても図入りで詳細に解説されているケースが結構あって、助かった。平明な動画講義も何度も見返した。瀬戸先生の教え方は単に詳しいだけでなく、どのポイントが重要なのかという見極め、それから知識のための知識ではなく、その技術が実社会でどう活用されているのか、みたいなことに意識を繋げながら教えてくれる、という印象があった。

情報処理教科書 基本情報技術者試験のアルゴリズム問題がちゃんと解ける本 第2版

情報処理教科書 基本情報技術者試験のアルゴリズム問題がちゃんと解ける本 第2版

  • 作者:矢沢久雄
  • 出版社/メーカー: 翔泳社
  • 発売日: 2016/12/15
  • メディア: Kindle版

  • 勝手に馴染みを覚えている矢沢久雄さんによるアルゴリズム本。アルゴリズム問題に絞って書かれているというだけでもツボだったけど、基本から応用まで幅広く解説されていて良かった。結果的には成果は出なかったけど、取っ掛かりとしては有効だったと思う。

改訂3版 基本情報技術者試験 C言語の切り札 (情報処理技術者試験)

改訂3版 基本情報技術者試験 C言語の切り札 (情報処理技術者試験)

  • 作者:宮坂 俊成
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/09
  • メディア: 単行本(ソフトカバー)

  • 過去問のプログラムが1行ずつ丁寧にトレース&解説されていてとても参考になった。終盤ではアルゴリズム問題も扱ってくれていて、上記の問題集や矢沢さんの本と突き合わせながら読むことで奥深いところまで検証できた。多謝。

そして2番目に挙げた岡嶋裕史さんの本、ITパスポート用と銘打たれているのだけど、内容的にはすごく詳しく幅広く、どう考えてもこれ、ITパスポート試験でここまでの知識いらないだろ(笑)というぐらいの充実度で、会場まで持っていく厳選参考書の中にこれも含めたぐらい良かった。

電子版も出ていて、紙版と合わせて買ったけど、すごく面白かったし今後も折々読むと思う。

岡嶋裕史さんは元々、「スラスラわかるC言語」という本を読んで「面白い著者だなあ」と思っていたので、岡嶋さんが書いた基本情報技術者の本がないかなあ、とわざわざ探していたら、それに一番近いのがこれだったので&サンプルを読んで良さそうだったので買った、という感じだった。

とにかくサービス精神が半端ない人で、時々自虐ネタをやりすぎる感じはあるんだけど、トータル的には得るものしかない感じで楽しんだ。

そう言えば、今書きながら思い出したけど、岡嶋さんの以下も電子版で買って読んだのだった。

擬人化でまなぼ! ネットワークのしくみ

擬人化でまなぼ! ネットワークのしくみ

  • 作者:岡嶋 裕史
  • 出版社/メーカー: 翔泳社
  • 発売日: 2016/02/19
  • メディア: 単行本(ソフトカバー)
擬人化でまなぼ!  ITインフラのしくみ

擬人化でまなぼ! ITインフラのしくみ

  • 作者:岡嶋 裕史
  • 出版社/メーカー: 翔泳社
  • 発売日: 2016/10/18
  • メディア: 単行本(ソフトカバー)

これもいずれもすごく面白い(とくにネットワークの方)のだけど、どちらもちょっと二次元系エロ要素とも言えるものが少なくなくて、あんまり大きな声でこれを「読みました!」とか「オススメです!」とかは言いづらいのがなんというか……。
内容的には本当に丁寧&幅広い解説で良いんだけど、そういうある種の趣味的要素にウッとなってしまう向きにはあまり勧められないというか。
(実際、ここで紹介するかも一瞬迷ったけど、やっぱりすごく参考にはなったので紹介した)

ちなみに、インフラ編の方は前著(ネットワーク編)が好評で作られたのかな、と思ったけど、ネットワーク編に比べるとちょっとキャラクター同士の会話が冗長な感じで、もう少し時間をかけて作ってほしかったかなあ……と、もはや誰目線なのかわからないが思ったので合わせて記しておく。

経緯

さて、そもそもなんで基本情報技術者試験? という話なんだけど、資格試験としては上にもちらっと書いたように、以前に日商簿記を受けたことがあって、ある意味ではその延長というか、ヴァリエーションみたいなものとして、「そういう資格があれば今後の人生、多少なり生きやすくなるのでは」みたいなこともあったのだけど、とはいえ、その選択肢にどうして基本情報技術者試験が入ったのか? ということで言うと、直接的にはまず以下の @songmu さんのツイートを見たということがあって。


へえ、面白いな、いずれやってみたいな。とか思って、でもしばらく忘れていたんだけど、その後にちょまどさんの以下のインタビューを読んだら、

https://codeiq.jp/magazine/2016/03/39334/codeiq.jp

 どれもこれも、最初は、何が書いてあるのかサッパリわからない。そしてその先には途方もなく広い、全くの未知の世界がある。その不思議な魅力にどんどん引き込まれました。右も左も分からない当時の私には、体系立った教材が必要で、その教材として、基本情報技術者試験を選びました。書店で教科書が買えるので。
 そして本当にたくさん勉強して、合格しました。理系の情報系の人たちにちょっとだけ追いつけたみたいで、とても嬉しかったです。その次は、応用情報技術者試験も合格することができました。
(※太字引用者)

ひえ〜、すげえ。応用も受かっちゃったのかよ。と、ここでかなり刺激を受けたのが大きかったと思う。

と言っても、前者の @songmu さんのツイートは2014年で、ちょまどさんのインタビューも去年の3月とかなので、その後もすぐには行動に移したりしていなかったのだけど、去年はなんというか、だんだん自分の今やっている仕事について、「いつまでもこの心地よいルーティンを繰り返していていいのかな……良くないよな……むしろ不安……」みたいな思いが徐々に強まってきて、それで大きめの作業が収まった年末から一念発起的にとりあえずITパスポートの勉強から始めた、という次第だった。

勉強した感想

勉強の結果としては冒頭に書いたとおりなんだけど、短期間ながらいろいろ勉強してとくに実感したのは、以下の2点。

  • ぼくは算数ができない
  • ぼくは長文が読めない

ぼくは算数ができない

まず算数について。ぼくは5才から13才ぐらいまで公文式に通っていて、13才のときにたしか高1ぐらいの数学をやっていたので、そこまでの学力は結構あったのだけど、そこで公文式をやめてしまって、かつ高校の数学の先生が非常に自分と合わない人だったのもあって、高校からの数学っていうのがまったくわからないまま年をとってしまった。

でも、「子供の頃は算数ができた」という妙な成功体験だけは残っていたから、今までずっと意識していなかったんだけど、今回つくづく思ったのは、もう数学以前の算数的なことから苦手になってるな……ということで。

とくに割り算。割り算が必要な場面になるたびに結構混乱して、もしかしたらこれ、子供のときからちゃんとわかってなかったんじゃないか? 「雰囲気でやってた」んじゃないか? みたいなぐらい、「え、なんでそれでそれを割ると答えが出るの?」みたいなことだらけで本当に落ち込んだ……。

割り算にかぎらず、情報技術者試験ってとにかく計算が必須になる問題が多くて、単純計算でも何度も計算を重ねないと答えが出ないやつとかがあって、その繰り返しをしているうちにどんどんエネルギーを消費してしまうというか。

もしある程度計算や算数に耐性というか、体力があれば、もう少しスイスイできるんじゃないか、という場面でもぼくはその計算作業で非効率に体力を使ってしまって、リソースを適切に配分できてないなあ……ということを身にしみて思った。

つまり、とにかく算数。計算。その辺の基礎体力をつけて、苦手意識を直さないと、このままこの勉強を続けること自体つらそう……みたいに思ってる。

ぼくは長文が読めない

もう一つ、長文の件。長文なんて、むしろ本職じゃん、いくらでも読んでるし、まさにこのブログがそうであるように自分でも書いてるじゃん、そしてそれを何度も読み返しては何度も直してるじゃん、みたいな感じなんだけど、そういうことではなくて、問題文の長文って、実際には出題者の頭の中にあるイメージというか、「こういう状況をまず前提として設定しておきますね」みたいな話を受験者の頭の中で再現する必要があって、その「出題者の頭の中にあるイメージを自分の頭で再現する」という行為が、非常に自分には難しかったということ。

これがたとえば、村上春樹の小説を読むとかだったら、読者が一人ひとり好きなようにその文章から情景を想像すればいいことなんだけど、問題文の文章っていうのは、受け手によって想像するものが「みんな違って、みんないい」みたいなものじゃ駄目なわけで、一意の像を頭の中で結ぶ必要がある。にもかかわらず、どうもぼくの能力として、その出題者のイメージというか、意図を自分の頭で再現する能力というのが非常に少ないな……と痛感する場面が多かった。

で、その原因はある程度想像できて、それは共通のコンテキストを持ってないというか、前提にしている文脈を共有できてない、というのが主要因だろうと思ってる。
より簡単に言うと、ぼくの持っている知識が少ない。

実際には、まあ出題者の日本語がもう少し上手なら……とかも思わなくもなかったのだけど、結局問題文が同じである以上、他の受験生とも条件は同じなのだから、それはそれとして受け入れるべきだと思ってる。

その上で言うと、「わかりづらい文章」っていうのは、結局「省略しちゃいけないところを省略してる」からわかりづらい。執筆者としては「当然、これはわかってるよね。だから省略しとくよ」みたいに、それはもう無意識レベルも含めて省略してるところであって、でもそれを読んでわからない人っていうのは、その省略されたところが本来それを理解するために必要な要素なのに省略されてしまっているからわからない、ということがままあると思う。

ぼくは職業病なのか、そういう長文の問題文を読んでいても、全体の整合性とかを気にして、「なんでこの部分の説明がないんだろう……隠された意図とかあるのか……?」とか悩んで、すごい時間をかけてその不明部分を妄想で埋めながら問題を解いて、解答と突き合わせると、あたかもそんなことはまったく問題でなかったかのように「当然ここはこうだよね」みたいな、暗黙の了解的にさらっとスルーされていた、みたいなことが多々あって、だから試験の少し前ぐらいになってようやく、「長文問題、そんな厳密に読んじゃ駄目だ。もっと雑に読まなきゃいけない。だって、誰もそんな細かいこと気にしてないんだから」と、方針を立て直したりもした。

その「雑に読む」というのは、単に斜め読みするとかではなくて、あくまで出題者の意図を踏まえながら、ということ。出題者の頭の中には明確なイメージがあって、でも出題者は日本語の文章を通してしかそれをぼくら受験生に対して伝えることができないので、ぼくらもその文章を通じて彼ら出題者が言いたいこと、そのイメージを受け取らなきゃいけない。

おそらくは出題者的にも、「あまり長すぎてもいけない。最小限の文章量で表現しなくては」みたいになってるはずで、だから図や表と組み合わせながらそういう問題ができていると思うのだけど、とにかく今回の学習過程においては長文の問題を読むってこと自体がつらく、「ああ、俺これ、全然向いてないかも……問題がなに言ってるのか、全然わからないもの……」と、何度も絶望したものだった。

C言語から表計算へ

すでにだいぶ長くなってしまったけど、もうひとネタ。

午後試験のクライマックスとも言えるプログラミングの問題で、基本情報技術者試験の場合はJava、C言語、COBOL、アセンブラ、表計算、の中からひとつ選んで回答する、という問題があるのだけど、これをぼくは最初は「C言語」で受けようと思ってた。

というのも、元々C言語は今後プログラミングの勉強をしていく上で、それ自体を書かないとしても新たな言語習得に際してきっと助けになるだろうと思っていて、この機会にC言語学習の必要性というか口実を得られれば、より一生懸命勉強せざるを得ないというか、必然的に知識も経験も積んでいけるだろう、という目論見があったから。

なのだけど、これが何度過去問を解いてもまったく点数を取れない。基礎構文はそこそこ理解というか、把握できているはずなのだけど、問題になるとまったく結果が出ないというか。

今思えば、それは単純に問題練習の数が足りなすぎるというか、その20倍ぐらいやって初めて、玉ねぎの薄皮が剥がれていくように結果が表れたのかも、とも思うのだけど、そのときはすでに試験が近づいていて、そこで比較的簡単と言われている「表計算」の方にシフトするかすごく悩んで、結局方針転換することにした。

表計算、というのはようはExcelで、「いやあExcel、今から勉強したくない……いや、むしろその方が社会的・業務的には役立つだろうってわかるけど、でもなんかそれはそれでExcelの軍門にくだるようでちょっと悔しい……」みたいな心境ではあったのだけど。

でもこのまま、勝負にならない勝負をして悔しい思いをするよりは、と意を決したのが、今手元の記録を見ると3/29。試験のほぼ2週間前だった。

で、結果的にはこれは良い判断で、過去問レベルだったら試験前の段階で基準を超える正解率を出すことも増えてきて、これがC言語のままだったら他をいくら頑張ってもカバーしきれなかったと想像してる。

それにしても、このプログラミング問題、JavaとC言語と表計算まではわかるけど、COBOL、アセンブラが選択肢って……とくにアセンブラ。本当にそれ「基本」なのか? いいのか、それで……? という感じがする。どうなんだろ……。

ぼくがそこそこ馴染んでるPerlとまではいかなくても、Rubyとか、PHPとか、なんかそういう、それこそすぐに仕事で役立つかもしれないものにもう少し寄せられないのか……という気もするんですがどうなんでしょうね……。
それとも結構、使われてるんだろうかアセンブラ……。

謝辞

そろそろ締め。ここまでにとくに触れていなかったんだけど、そして上では「短期間のわりによく頑張った」みたいなことを書いたのだけど、実際にはこの学習期間に得た知識だけではこれだけの得点はできなかったと思っていて、やっぱり2013年から参加しているPerl入学式の経験は非常に大きなアドバンテージになってたよなあ、とすごく思ってる。

もちろん、そこで知ったことがすべてなわけではなくて、それを起点に自分で勝手に調べたり作ったりしてきたいろんなことが全部、これまた玉ねぎの薄皮のように積もり積もって身になってた、ということだと思うけど、それでも最初にあのプログラミング講座がなかったら、自分の努力だけでここまで続けてくることはできなかったと思うので、Perl入学式の運営各位には本当に心から感謝しています。

今後

ということで、結果としては駄目だったもののそれなりに成果は上がってきているので、なんとかこのまま勉強は続けて次はパスしたいなあ、と思ってる。

実際には、次の情報技術者試験はおそらく10月半ば、これって自分の業務が一年を通して最大ピークの時期と思われるので、その頃に本当に学習&受験できるのか、ということはまったく不明なのだけど……。

ともあれ、ひとまず今回の一連のトライのまとめは以上。
俺、おつかれ!