勉強して受ける応用情報の午後選択(4)努力派の最後の頼みの綱 データベース

DBはうっかりしているとSQLの知識不足で落とすことはある。しかし,そもそもの知識量はそんなに多くない。10回に1回ぐらいくる変な(ER図もSQLもないという意味)問題以外は,問題はほぼ一定傾向である。

満点を取れと言われると大変。しかし,練習によって半分をコンスタントは万人向けではないかと思う。

勝負に使うにせよしのぎに使うにせよ,努力派なら使うことをぜひ考えたい分野である。

要約

  • 数学向いてないとかプログラミングとか文系だからとかで先入観を持って選択しないのは損
  • ER図とキーは問題数が少ない代わりに取りやすい難易度にしてくれてる
  • SQLは努力のためのツールが多くある
  • ER図+埋めやすいSQL+もう1題何かがんばるで5割

向き不向きも激しいと言われるが

学校数学ができないからデータベースができないとは限らない

数学苦手だと厳しいとか論理思考苦手だと厳しいとかは言われるところである。しかし,これも先入観で避けているという可能性もないこともない。データベースに学校数学特有の面倒な処理などはない。

高校数学文脈でいうと,ただ単に数1や数2っぽいただひたすら計算は苦手だが,なぜか確率や数列だけはできる人がいる,といったのと似たことが起こってもおかしくはない。

論理といっても,昔の午後1のバリバリの正規化理論をやるわけでもないのであまり関係ない。

SQLとプログラミング能力も違う

たとえ事務職だとしてもSQLはできる可能性を探るのは十分にありだと言われている。以下に書くようにツールもあるので,やりこんでみたら実は向いてました,となってたら超幸運である。

臨機応変力が少なくて済むありがたさ

コンスタントに点数を計算するために一番ありがたいこととして,この分野は問題文の読み書きとか臨機応変に対応するとかがわりと少なくて済むのである。少なくとも12点取るぐらいなら大丈夫だと思う。このメリットは,学力自信ない派・努力カバーからすると非常に大きい。

SQLを白紙から書くのが厳しいと敬遠してしまうかもしれない(実は昔の私もそう思ってた。これはプログラミングも同じ。)。しかし,解答を一度ざらっと見て欲しい。全文を空で書けと言ってるわけではない。1フレーズや2フレーズである。問題文の日本語から丹念にひねり出すのに比べれば,(頭にある前提で)頭からこれをひねりだすのは,格段に楽である。私は基本情報より簡単だと思ってる(変な選択肢から選ぶよりよほど素直)。

SQLは努力のための教材が多くある

SQLはトレーニングのための良い教材が山ほどある。これは努力派にとっては決定的にありがたいことでする。

まず,ここも高度の教材を使うという選択肢がある。三好先生の本はうまくできてると思う。というか,そういう使い方のためにも使えると明言している。

初心者の基礎積み上げ教材もたくさんある。

SQL書き方ドリルみたいな本とかProgateとか初心者が,ドリルのように学ぶ教材も多くある。基本情報向けの教材もかなりある。

自分は暗記4択は苦手だが,そういうのが好きな人は,例えばOracle(標準SQLとは微妙に違うらしいが)とかOSS-DBとか,何か他の積み上げ系4択資格をペースメーカーに使うのもありえる。

他の問題に比べると,努力系選択肢は充実している。その意味でも,時間をかける・地道な努力をすることを苦と感じない人にはお勧めである。

SQLの書きの比率が高いことは,短時間・実務関係ない派からは普通は嫌われる(いちいち覚えてられるかと)。しかし,地道系・努力の人はこの裏返しで,(訓練をベースにして)覚えていればOK,非常にありがたいとなる。

(11/21追記)

考えていたら,SQLのトレーニングでSQL問題が解けるとは限らないことに気付いた。きっかけは瀬戸先生のデータベーススペシャリスト本の前書きの「データベースの理論や仕組みと組み合わせて文法を理解する」を読んだこと。はっとさせられて,直感的にも正しそうな主張だとも納得して,ちょっと例を探してみるかと考えてて気付いた。

例えば,joinの条件考えるためには,問題文の要件とかER図とか表の出力結果数行をイメージする必要があることがある。これは文法ドリルで身に付かない。データベース設計のトレーニングの結果としてできるようになることである。

自分は読み取りが得意なのと訓練で設計問題ができる側になってたので,結合条件のとこぐらい書けば取れるだろうと思ってた。しかし,冷静に考えると違った。初心者の頃は,確かにどことどこjoinするかを問題文から読むのは大変だった。

文法の練習で行けるところとそうでないところは,問題を分析して仕分けして考えてみないとならなくて,それはそのうち行う。

ただ,仮に設計もそれなりに必要という結論が出たとしても,設計問題側も努力で訓練可能なので,努力でなんとかなるという結論はあまり変わらないとは現時点では思っている。

ER図は努力でなんとかなるレベル

ER図と外部キーの習熟には習熟に時間がかかる。絶対安定をさせるには,絶対に常識で軽々と判断して線を引かない,という訓練を一回はする必要はある(適当でもだいたい合うが,それは得点源とは言わない)。それにもかかわらず4~6点しかないのはやってられるか(問題数から配点を推定)と思わないでもない。

しかし,そういう位置づけの問題なので,勉強さえしておけば4点~6点取れる親切な難易度で止めてくれている感がある。ということは,努力すれば解ける道が見えている。

努力で勝負をかけるならSELECT系以外もしっかり

R2のように,いきなり参照制約が出てきたりもする。いきなりGRANTとかも出てきた回もある。こういうところも,事前にしっかり押さえておく。押さえておきさえすれば点になるのだから,努力派からするとありがたいと思う。

データベースも10点の意味でお勧め

ER図・簡単目なSQLの穴埋めでまずは8点ぐらいを確保

ER図とSQLの簡単目な穴埋めでだいたい6~8点ぐらいは埋まる。

後は運を天に任せる(といっても任せ度はマネジメントほどではないが)

ER図+簡単に埋めれるSQLに加えて,だいたい8点ぐらいである。

あともう一個がんばって穴埋めをするか,考察問題の部分点でなんとかするか。それで5割ぐらいまで行きそうである。

その場国語はやれば確実に取れるとは言えない。ただ,SQLかその場国語かどっちかが取れれば良いで割り切きりは聞く。そして,その他の国語も他の分野の国語よりよほど楽な国語。

ボギー寄りのパーでとどめるとしても

ここもボギー寄りのパーでとどめるとしても,,選択問題を1個捨てれるオプションができたと認識できる。この効果は前のエントリで書いた通り。

押さえとして置いたとしても14点取れて良かったもありえる。まあ,それは押さえとした場合は期待値としては計算しない。

14点勝負の期待値に使う場合は,めったにでないトピックも含めてしっかりとやっていく。

それでも勘違いで14点になるのは仕方がないとしておくのが精神衛生に良い。

雑記 心理的なもの

何回やっても落ちてるとか取れないなると,できないできないの疑心暗鬼になる。

こういうのを解消するには,何かで自信をつけるのが速い。

ここで考えたSQLのように,それだけを徹底的にやることで努力で習熟まで行ける素材は,そういう自信をつける素材として使いやすい。

自信というのは非常に大きい。ある分野がこれで仕上がるなら,もしかしたら他の分野もこれで仕上げていけるのではという展望が開けてくる。あるいは,本番で「これだけやってこれだけ知ってて,でそれでできませんなら,問題が悪い,というか誰もできない,絶対ぐらいの開き直りもできる。

他の分野だったら午後は毎回バラバラなトピックで出てくる感じがあるので,勉強してもできるようになった,という実感を得にくい。疑心暗鬼にもなる。しかし,SQL(とER図)はほぼ毎回出題なので,このできた,という実感を得やすい。そういった自信回復の意味で,データベースはお勧めの分野でもある。

勉強して受ける応用情報の午後選択(3) パー寄りのボギーで安定できる問題の価値

前回,選択をする予定にするにも関わらず,2点程度の失点を許容する分野を作る,と書いた。多くの人は,5~6割では選択をすることの意味がないと考える。しかし,(少ない労力で)ボギー寄りのパーで1題が消化できたと考えれば,それなりのメリットはある。

特に,どんな問題がきても5割~6割というのが1~2題あれば,かなり気楽になる。

こういう問題については,少ない負荷で1題の問題が消化できると考えるのである。それによって,

  1. くじをシンプルにすることによる認知負荷の減少
  2. 不慣れな問題を解くことによる消耗の減少
  3. 1, 2.で得た時間・集中力を勝負すべきところに集中投入

ということを狙って利益を得ると考える。特に10点で良いと割り切れば,時間・集中力は大幅に節約できる。そうすると,投入すべきとこに時間と集中力をより注げるようになる。

これは,言い換えると,確実に10点が取れる問題によって2点の失点を払い,その対価としてガチャの不確実度を減らして様々な余裕を買おうということである。そして,その買った余裕で他の部分で良い点数を取ろういとう作戦である。 (この考え方って業界人以外不自然なのかな。。。。)

以上で自明な人には自明なのだが,以下でいちおうだらだらとは説明してみる。

1. くじをシンプルにする

くじを引くといっても,10題から4題引けと言われると,選択するだけで大変である。しかし,選択する問題数を減らせば何を選択するという問題はシンプルになり,かつ消耗も防げる。

例えば,選択問題が8題から2題のくじであったとしよう。これは得意分野以外についてはくじを引くという多くの人の発想だと思う。この状態と,追加で1題確実に10点取れる問題がある,という状態を比較する。すると,

  1. 8→2で,合計24点を取る。
  2. 7→1で,合計14点を取る。

の比較となる。私は後者の方が楽なくじだと主張しているのである。

問題選択の認知リソース

言うまでもないことだが,問題は読まないと選択できない。だいたい,(勉強していない分野の)くじ引きなど,読むことそれ自体でエネルギーを大きく消耗する。

14点取れそうな問題が時間をかけずに3題ぐらい発見できるなら良い。しかし,これはなかなか難しい。実際は,14点取れそうな問題を1題見つけた上で,12点ぐらい取れる問題をもう1題みつけることになる。この2つ目の発見が相当てこずると思う。

実際は,残りの得点状況も見ながら,得点の期待値と分散の両方を考えての選択になる。例えば,得意分野で取れてそうなら,基礎票が取れそうな問題を選ぶし,そうでなければリスクは高いが高得点が取れそうな問題を選ぶ,などという要素が絡むということである。こんな面倒な選択を試験中に2題もやってられるか,という話である。

また,1題選択と2題選択では読む量が違う。1題選択なら,まあいいや,でだいたい良さそうなところで探索を打ち切ることなどもできるので読む量は知れているが,2題の場合はそうはしにくい。

2. 不慣れな分野を解くことによる消耗を減らす

わかっていない分野は,たとえ点数が取れる良いくじが引けたとしても解く段階で非常に消耗する。結局,問題文からその場で学習しているようなものなので,そうなりがちである。

1題ぐらいはそういうことをやっても大丈夫だが,2題3題とやっていると色々と影響が出てきそうである。他の基本問題の精度が甘くなるとかがあってもおかしくはない。

3. 節約した集中力・時間を集中投入

くじ引きの2つの側面

勉強をそれなりにしていった場合,問題くじには2つの側面がある。もう1つは勉強していった分野の予想より高得点のくじ。これは勉強をしてなかったら引けなかったくじである。

もう1つは,純粋に残り1題の良い問題を選ぶためのくじ引きの大会への参加である。これが世間で言われているところのくじ引きである。このくじ引きをいくつもしてたら,それこそ運になる。

1問を合格ラインマイナス2点で確実に消化することで,この両方のくじの難易度を下げようとしているのである。

1題に時間と集中力を注ぐなら点数はそれなりに取れることもある

得意分野のくじについては,言うまでもない。時間と集中力かあれば勝率は自然と高まる。高得点くじもそうだし,基本問題を落とさない方向に時間を投入して点数を高めることもできる。

一方の問題くじについていえば,時間を投入することで取れる分野を選ぶということができる。

例えば国語系問題は節約した時間を投入すれば点が取りやすい。また,システムアーキテクチャや組み込みは,問題によっては時間を湯水のように投入すれば解きやすく,かつ,14点ぐらい取れる可能性はないこともない。システムアーキテクチャや組み込みの計算問題は,10分ぐらいかけて5回ぐらい検算するとか,色々な角度から検算するとかをするかで,正答に至る確率は大きく変わることがある。組み込みも時間をかけているうちに流れがつかめてくる,というのは十分にありえる。

アルゴリズムも同様のことが言えるが,これは外した場合の0リスクがあるので私はお勧めしない。余裕がものすごくあるときと追い詰められたときだけは別。)

勉強して受ける応用情報の午後選択(2) 分野をどうするか(オーソドックス理系風)

結局,高度3つで出る分野を勉強していくというオーソドックスな結論しか導けなかった・・・・

オーソドックス理系風の科目選択のみここでは論じる。重症文系編(国語も嫌・数学もやってられるか・ただしまあ努力だけはして良い)は,そもそも午前対策と関連させながら書いていかないとならないので,そこは別に起こすことにした。

前回触れたように,セキュリティを勝負とすると,残りは

  • 勝負 : 2題
  • 押さえ : 2題

になる。これをどうするかである。

以下,わりと普通の人・勉強する人を前提とした議論。だいたい,別にその場で組み込みを解けるレベルの人は,こんな面倒な問題を真剣に考える必要はない。

ネットワークの扱い

正直やっかいである。20点取れるかといわれれば微妙。範囲が広いので安定させるという目的だけでも勉強時間が膨大に必要である。

確かに20点は取れない。しかし,10点の安定度では捨てがたい。必須解答のセキュリティとも密接に関連する。対策ツールもある(高度系)。よって,ここではネットワークは勝負をすると考える。

これを外すとマネジメント3題という恐怖のコースがたいていの場合は待っている。そんなものは怖すぎる。

残りの分野の考察を考えたとき,ここは勝負にせざるを得ない。

データベースの扱い

これば守備か勝負のどちらかはには持ってこないと仕方がない。残りとの関係でどうしてもそうなる。これについては別にエントリを起こす。

アルゴリズム

これは,使える人は10点で止めておく守備科目として使う。別にエントリを起こすが,守備科目と考えたら,それなりに取れるケースのある人も出てくる。

データベースと両方得意な人は,ネットワークをやらずにデータベース・アルゴリズムを勝負にしたくなるかもしれない。ただ,0-100を勝負に2つ使うのは危険なので,1つは守備として考える。アルゴリズムは守備と考えておいて,くじを引いたらおまけ,という計画が良い。

残り

問題はここからである。システムアーキテクチャははまれば16点ぐらい取れるが,問題の幅が広いとか計算間違ったら壊滅とかそういのがあって,得意でも,最初から計算してやっていく勝負には使いにくい。

かといって,勝負をマネジメント(こういった場合,面倒なので経営戦略も含む)に持ってくるのは危険である。

  • 対策ツールがない・出題がばらつく
  • 科目の特定上,平均はとりやすいが突き抜けることはない

といった性質があるからである。

これらを楽勝だと言ってる人,毎回それはコンスタントに万人ができる再現性の高いことですか?

オーソドックスな場合

結局,オーソドックスな選択は

  • 勝負 : セキュリティ・ネットワーク・データベース
  • 守備 : プログラミング・システムアーキテクチャ・くじ引き

とならざるを得ない。多少の理系能力がある場合は,このスタンダードな構成が一番安全ということになってしまう。

ここで,プログラミング・システムアーキテクチャを守備として持ってくる発想が,あまり多くの人が言ってなかったところだと思う。

なお,守備に回した2題もそこそこは勉強していく前提である。勉強したうえで,まあ失点許容,といったスタンスである。

これに対して,失点覚悟の分野を最初から作るって意味なくない?という意見もあると思う。次回,これについて議論する。

勉強して受ける応用情報の午後選択(1) 高得点ガチャに期待せず10・12・14点を地道に組み合わせる

最近のマネジメント推しの問題選択ばかりの記事にいらっときてるので,反対の記事を書いてみたくなった。

非常手段としてマネジメントはわかる。自分もそうやって受かった。よって,非常手段として推すのは良い。ただ,最近メインストリーム理系風の人までそういうのお勧めといってる感じも出てきて,いやそれは理系として恥ずかしくないの?と思ったりしたので。

設問単位で難易度を考えよう!

色々な問題選択記事で,簡単・難しいという表現が出てくる。このとき,この簡単・難しいが「何点を取ろうとする立場から簡単で何点を取ろうとする立場から難しいか」ということを意味してるのかで議論は全く変わってくる。

だいたいの人は,解けた感のある14~20点を取るのが簡単かどうかで問題の議論をしている。しかし,ここに8~10点取るなら簡単,という概念も加えて考えよう,というのがここでの提案である。配点非公表なのであくまで推測だが。(以下全部同じ注意)

難易度についての主観的観測

主観的観測で言えば,

  • 16点時代の昔の問題は中難度の問題がフラットに並んでる
  • 今の問題は簡単な設問はものすごく簡単(下手をすれば午前より)・そのかわり難しい設問もある

といったイメージである。よって,

  • 6点取るのはこれで良いの?な簡単さ(ただし午前の知識プラスぐらいの知識がある前提)
  • 12点ぐらいまでは勉強してればまあ取れる
  • そこから先が異常に伸ばしにくい

といったイメージである。16点取るのは難しいが,8点取るのは簡単,みたいな問題は確かに存在する。

確かに昔の傾向なら,良い問題を引くかどうかは重要だったかもしれない。しかし,今の傾向ではまず壊滅をしない,その上でいくつか少しだけ良い点を狙う,というのが現実的だと思う。

多少似た専門家のお言葉

専門家も少し似たことを書いてる。iTEC午後重点では,最近の問題は得意でも14~16を前提としたいと。なぜなら,最後の1問は難しいので20点近くを計算するのは怖いからと。そして,これに基づいて,7~8割が3分野・5~6割が3分野あれば手堅いと書いてある。ここで書くことは,これをもう少し意識低い系にした感じのことになる。

R1秋 問4のネットワークを例に考える

例えば,R1の秋のHTTP2の問題はHTTP2の知識が全くないから取れないとの声をみた。

確かに,その場力が低い人には高得点は取りにくいと思う。しかし,この問題,半分ぐらいなら無理なく取れるのではないかと思う。

神のような選択肢問題

例えば選択肢問題を見ると

  • b: HTTPSは443番ポート(実質的な選択肢は25, 110, 443)
  • c,d,e : SYN → SYN/ACK→ACK

という問題がある。この問題など,試験開始5分もたたないうちに,労力0で4つ解答が埋まったも同然である。高度だったら書けと言われても(SYN/ACKを書く午後穴埋めが昔あったと思う)文句は言えない問題である。

b,c,d,eの予想配点はわからない。全部1点とか,c,d,eは完答2とかで配点されるとかして,これで全部で4点とか言われると厳しい。ただ,全体の設問数を考えると6~8点ぐらいはくれると期待しても良いのではないか。仮に8点という神のようなケース(まあ普通は予備校は2*4を予想すると思うが),マネジメントでやっとの思いで問題読んで8点取るより,よほど楽に8点が取れる。

中難度の問題とはいえどれか1問~2問は

そして,

  • その直下の設問3の図から読み取る問題も,わりと簡単。
  • 1aのソケットの4択は,ちょっと古い感じの用語でLinux慣れとかしていないと出ないかもしれない(IPA試験とかでは聞かない。)。プロセスもありえると少し私は迷ったが(でもより汎用的で妥当そうなのはソケットだろうと選ぶ感じ。残りのIPアドレス・ポートはさすがに消せる。)。
  • 最後の設問も,基本的なフローがわかってれば楽。
記述は面倒かもだがそれはHTTP2だからでなくHTTPが普通にわかってるか

残りの2つ,25字説明・ 20字説明は,確かに読み取り力・少しの知識・記述力がないと完全解答は書けないと思う。知識は,あくまでHTTP2を知ってるかではなくHTTPの基本がわかってるの知識だが。まあ,それでもできる人からすると普通と言われればそうだが,そういう人は読者対象ではない。

変な傾斜がかかってないとすると

2つの記述問題がそれぞれ配点4で合計8点とか,そのレベルの傾斜配点がかかっていないとする。すると,b,c,d,eの穴埋め + ソケット・図の読み取り・フローの読み取りどれか1題~2題。これで4割~5割は期待して良いと思う。これならあまり労力をかけずに取れるのではないかと思う。

教訓

この問題から得るべき教訓は

  1. 初見に見える問題こそ基礎部分でサービス問題を用意していくれている
  2. 初見問題は基礎+問題文読み取り能力を試している問題
  3. 大稼ぎを期待していくのは厳しい

である。1., 2.は高度では常識だと思うが,応用情報だとそういう話はあまりかと。

テクノロジ問題は高得点問題でなく時間節約・安定問題として考える

従来,テクノロジ問題は勉強に時間はかかるが高得点で安定する,ということが良く言われていた。確かに16点時代の問題はそうである。しかし,そのメリットは少し消えた感がある。12点から先を伸ばすのは少し難しくなってると思う。

勉強しないで取れるマネジメントならともかく、勉強しないと土俵にすら立てないテクノロジに厳しい点数の上限制約がかかるのはひどい話だと思う。そして、マネジメントの方が下手したら取り切れるので良い,という回もあることは否定できない。この状況では,世間のマネジメント推しに対しては全く反論はできない。

しかし,それに乗って,だからマネジメントに逃げましょう,にするのか。そう考えないから記事を書いてるのである。

一言でいうと,テクノロジを取る限りは凡人は14点上限を受け入れましょうと。その代わり,神経ゼロで8点ぐらいは取って,マネジメントと比べて消耗させずに10~14点を取る対象にしましょうという考えである。あとは,10回やって10回その点数を取れる安定感・安心感も買いましょうと。

そして,1題ぐらいは皆と同じガチャに参加しても良いでしょうと。そのガチャについては,省エネ・安定で残した余力で全力で問題を選択して,全力で問題を解き切りましょうと。よって,テクノロジを使うことと,(マネジメントで)良い問題を引く,という戦略は実は矛盾していない。

以上を踏まえた得点戦略

以上を具体化すると,

  • 攻撃の分野(ものすごく勉強していく) : 12+14+14
  • 守備の分野(ちょっと見るだけ勉強・その日のフィーリング) : 10+10

といった得点計画になる。

なお,こういう考え方にすると,守備にも1題テクノロジを使うという考え方ができるようになる。なお,勉強することは当然前提なので,そこは注意しておく。何もせずに運で受かる記事は世間で色々あるので,わざわざここには書かない。

2分野まで10点は取れる

多くの場合,わかる問題で14~16点ぐらいを3題引いて,残りで6~8点ずつぐらいのイメージで書かれてる。しかし,ここまでで触れたように14点から先は難しいのである。人間なのでミスも勘定に入れておかないとならない。

そこで,守備の分野で省エネで確実に8~10を取ることが重要になってくる。練習のときも,攻めない分野は8~10を取れてるかだけを考えて演習する。全分野14点(すなわち20点近く取るつもりでの14点計算)をやっていたら,それはさすがに破綻する。

必答セキュリティは12~14点で安定の分野に入れる

これは必答なので必然である。

あとは,セキュリティは努力に成果を比例させやすいということもある。

残りの分野

問題は残り4問をどう2問・2問にわけるかである。(予備はないとして)

守備の分野の2題のうち,1題は当日の問題ガチャとやっても良いが,さすがに2題は問題ガチャをやりたくない。

そのあたりを踏まえて,どう選択するかを考えて行きたい。

(付録)主観としてマネジメント推しの気持ちはわかる

ここ数回の問題と昔の問題を比べているが,やはりテクノロジが取りにくくなった印象しかないのも事実である。え,これ高度の本で勉強しただろ?があったり。

テクノロジはどんどん範囲が拡大していくし(そしてテキストは当然追えず),難しくもなっていくのに比べて,マネジメントはそんなに変わらない。不平等感は否めない。

仮にテクノロジとマネジメントの平均点を合わせるつもりの作問をされてて,この傾向によってテクノロジが優秀層しかいなり,そしてさらに難易度上昇が加速,とかだったらやってられないなとは思っている。

時間をかける応用情報のセキュリティ対策(8)記事を書いた理由 世間の人たちはあまりに賢すぎるので

記事中,自分の主観を何度も入れて書きたくなったが,それは全部カットした。それらのいくつかをここに回した。

自分は(要領の良さを通り越した)ノー勉→後からちゃんと勉強した人(専門外・実務未経験)

最後に少し書くが,自分は勉強ゼロ(午前はノー勉かiTECの午前問題集をぱら見したか・午後は申込時に眺めたかどうかぐらいで1問も事前に解いてない)で応用情報を受かった。さすがにこれはまずいと思って,ネットワークスペシャリストを勉強したが,そのときに,やっと応用情報レベルの勉強がわかった実感が得られた感じ。(どんな勉強をしたかはそのうちまた書く)

ネットワークスペシャリスト用の勉強をしていてわかったことは,ちゃんとページ数のある本(字と説明がぎっしりとは言っていない)を普通に読む方がわかりやすいという常識的な事実である。そういう本を読んでいると,基本情報・応用情報の問題をふわっと解いてたときに意味不明なことについて,いや最初からその説明があれば普通のことですよ,それ,と思うことが多々あった。それが,こういう記事を書いている原点である。

応用情報勉強しなかったのも,元々の勉強嫌いもあるが,基本情報・応用情報の教科書のような単語と事実が羅列された本が読めなかったから,というのはある。後にキタミ式が出てずいぶんましになったと思うが(自分も教えるときにお世話になった)。

そして,教えるようになって全部基本的なところから見直して,少し目配りもできるようになったので,自分の受験経験と教育経験を足して二で割ってこういう記事を書いてる感じ。

教科書と過去問を素直に流してできるのは元々の素質を使っているからでは

結局,何か他の力がないととオーソドックスな勉強は成立しないと思うんですよね・・・

常識力を他人に求めるのは抑制したい

できる人は,常識は体験とか経験とか過去問で身に付くものでしょう,といった感じのことを言う。しかし,それはプールから突き落とせば泳げるようになるでしょう理論だと思う。世間の記事のそういう冷たさは嫌だなと常に思ってる。

だいたい,そういう常識力のある人は,他のところで手厚い教育とか文化資本とかによって常識が身に付いてるのである。完全自力と努力で身に付けた保証などない。自力だとしても,その自力ができるだけの遺伝的何かとか外生要因ゼロであるとは言い切れない。

そういった立場で,常識力弱い人にそれぐらい常識で身に着けろよ,というのは,恵まれた人の上から目線的な言動だと思う。よって,自分は意識して控えるようにしている。

大学受験

物理の予備校講師の人がtwitterで,大学受験物理の問題集作ってて,結局は,国語力だと書いてあったのをみて,いやそれは国語ではなく,理科そのもので身に付けるべきメタスキルなんですよ,と思った。

難しめの理科の入試問題と応用情報は本質的に非常にテイストが似てるので,こういう訓練を経た人は,この試験の問は国語に見えがちになるのも当然だと思う。そして,この手の合格体験記はそういう訓練を経た人がし書いてることが多いとも思う。

後は,関連して,大学受験は問題集がしっかりしてるからつまづきにくいので,もあった。それもその通り。そういう質の高い教材でメタスキルを身に付けた人は,勉強すればそれぐらい身に付くだろうとあるが,じゃあ,そういう高速道路のない世界で育った人に,この試験の質量の教材で同じことができるかというとそうでもない。

ただ,個人的には下手なベンダー試験よりかは100倍問題と教材の質が良いので,この試験の学習効果は相当高いと思う。ただ,その前提はある程度のメタスキルを持ってることを前提にしている。それがない人が,ただ暗記して無理です,となるのは浪費だよな,と思うのである。

ま,そこ言い切ってしまうと救いがないので,教材の使い方とか意識の使い方次第でもう少しましになるんじゃないの?と思ってこういう記事を書いてるとも言える。

努力ができるという能力を持つのに努力しない側を取るのは割が悪いような

毎日コツコツ業務後とか週末に応用情報の勉強をしてるとか,そういうのを見ると,それ自体が能力だと思う。

それにもかかわらず,難しいとか落ちたとか,もう何して良いかわからないとかいうのを読むと,ううんとなるのである。それだけ湯水のように時間を投入できるのに,なぜきちんと固めに行かないのかと。そういう状況で,時間投入が厳しい人のギャンブルと同じことをするのは何なんだろうかと。

自分からすると,そういう努力ができる人はうらやましくて仕方がない。自分は,こういう記事書くとか,そのための調査をするとか,過去問の研究だったら長時間机に向かえる。しかし,参考書を読む地道な勉強とか無理である。昔はそれすら面倒で,ごろ寝で本読むぐらいが唯一できることだった。そういう人からすると,いや単調な勉強に対する時間制約がないなんて,なんてイージーモードなんだと思うぐらい。

基礎重視のためにも基礎能力が必要という矛盾

瀬戸先生は,一問一答系で丸暗記で行くことに対して警戒感を抱いてて,もう少し考える方向の勉強をしましょうね,ということで色々書いている。方向はかなり正しいと思う。

ただ,その地道な基礎を積み重ねるにも基礎がいるといった感じ。勉強に対するスタンスとか思考の癖を,既に他の何かで身に付けてないと厳しいと思う。だいたい,あの文字数の本を読むということすら怪しい人もけっこういる。

色々考えて,私の中では絶望しかないことに気付いたけど。今の大学入試(中学入試)以外で,普通の人がこういうスキルをちゃんと訓練できる環境って皆無に等しいと思ってるので。

さすがにそれは救いがなさすぎるので,まあ,もう少しこの基礎を固めるの具体例をだめもとでいくつか書いてみますか?という記事を書いていっているとも言える。

世間の中途半端な短時間勉強で受かりました派に頭にきてる

だいたい,世間の大多数の記事はこうである。

その勉強時間で受かるということは,それまでの暗黙のIT経験とか社会に対するアンテナとか大学受験・大学の専門の勉強・研究で身に付けたメタスキルや勉強のやり方とか,あるいは実務経験や社会人経験によって暗黙に身に付いたこととか,そういうのが組み合わさって受かっているはずである。それを全部捨象して,短時間で受かりましたは違う。その持ってるメタスキル,身に付けるのにどれだけ訓練しましたか?

そういうメタスキルを問う試験が悪いといってるわけではない。そういう能力を自然と身に付けて受かったのも悪いのではない。応用情報はそれも込みで問う試験である。単純お勉強を意図した試験ではない。よって,単純お勉強では身に付けてないスキルを身に付けている人有利なのは当然。

ただ,そういうスキルを1週間の参考書によるお勉強とかドットコムで午前問繰り返したら身に付きました,みたいな感じで書いてることに反発しているだけである。そういうメタスキルがない人に向かって,少し勉強すればできますよ,みたいに変に希望を持たせる感じで書くのは違うと。いっそのこと,ノー勉楽勝,ぐらい潔くやれば勘違いがなくて良いとすら思う。

だいたい,勉強法記事とか体験記をまとめて書いて,それをインターネットに公開して,かつ検索エンジンにひっかかって他人に読んでもらえるレベルの時点で,かなりの(この試験に求められる)能力があるだろ,と言いたい。

自分はもっとひどいことをやってる

だいたい,自分は,世間のノー勉楽勝記事よりもっとひどいことをやってAP・DB・SCは受かってる。APなど,生きてたらいつのまにかAPの午前の問題が解けるようになってたことにふと気付いたので,これはありがたいと受けに行って取った。学部のときに情報系以外の周囲の理系が,基本情報をばたばた落ちる(or 勉強を途中であきらめる)のを見ていたので,ノー勉で基本情報より良いのとれるなんてラッキー!ぐらいの感覚。

自分は,別に何か特別に情報を勉強したことでできるようになったのではなくて,いつの間にか知ってた,という感じ。別に何かアプリ作れるわけでもない。さすがにNWのときは少し勉強したが。

よって,(文系未経験で・これも客観的事実)ノー勉言動とか少しの勉強で受かりました,はできないでもない。しかし,あえてしないのである。(スペックは低いが)それでもスペックで叩き込んだ自覚はあるので。

そんな感じなので,少し勉強して受かりました派には「本当のノー勉で受かってから言え」とついつい心の中で反発してしまうのである。

このシリーズはいったんこれで終わりにする。引き続き過去問研究をしているので,それはまた別のシリーズで書いていく。

なお,手元には選択問題について書いているのがあり,次はそのシリーズになると思う。

あと,書き溜めたものがありすぎて,長すぎるので,blogという形式になじまなくなってきたように思うので,そのうち一連の記事だけどっかサイト風にして切り出すことを検討中。

時間をかける応用情報のセキュリティ対策(7)コンピュータシステム(ハードウェア以外)を押さえる

瀬戸先生の本で良く言われることとして,一通り全範囲の基礎として応用情報をやってから(基本情報を受けるときは基本情報),次の段階のテキストに取り掛かって欲しい,みたいなことを書かれている。確かに問題を読み込めば読み込むほど言いたいことはわかる。

しかし,そこまでやるための動機は保ちにくい。そこで,自分はネットワークだけは先に,を推奨したけど,もう少し読み込んでるともう2分野~3分野は必要だと思ったので書いてみる。

問題文の構成を読むのに間接的に必要な知識

良く言う,体験がそこそこある人にとってのこれ常識,がこの試験を解くときには散らばってる。

例えば,WebサーバとDBサーバは別々になってて,Webサーバがデータベースを呼び出してデータもらうんでしょ,は常識な人にとっては常識である。教科書で身に付けた常識ではない人がほとんどだと思う。それ教科書の何ページに書いてるのか?と言われると,手が止まる。しかし,知らないと解けない(か相当解きにくい)。知識だと思う。そして,知識であるとすら認識されていない。

しかし,その常識,実は応用情報の午前試験でちゃんと試験範囲なのである。システム構成要素のとこにちゃんと試験範囲で入ってる。

システム構成要素・ソフトウェアは本当にゼロなら問題文も読めない

だいたい,全ての問題はクライアント・サーバシステムである。問題文のシステム構成を読み取るのに,そのあたりの知識が完全ゼロだったらアウトどころの話ではない。大抵の人はこれは知識ですらないと思うが,一方で,じゃあ完全自然状態で小学生が知ってることですか?と言われたら手が止まると思う。

ソフトウェア構成要素は,ミドルウェアは範囲で,そこにWebAPIとかも入ってる。LAMPも用語として範囲で,その用語を一切知らなくて抽象概念で知ってますはやりにくくないですか?いや抽象概念でも解けるけど,しかし色々とイメージできなくないか?

システム構成要素の余事象とか場合分けして足していくことを駆使する確率だけは,無理な人には無理なのだが,そこ以外はがんばればできると思うし,がんばるべきだと思う。

コンピュータ構成要素

これはできれば,って感じかな。範囲はCPU・メモリ・バス・入出力デバイス・入出力装置あたりになる。午前問題が完璧に解けるほど知らないといけないかというとそうでもないのだが,イメージすらないとさすがに解けないだろう?と。ここはシステム構成要素・ソフトウェアより優先度はかなり低いけど,でも午前を先に押さえておく方がよかったりする。

基礎理論は無理といっても良い

これは最近の瀬戸先生の本には書いてないどころか,逆のことを書いてる。

重要だが,最終的に無理な人は無理だし,ソフ開とは違うのだから・・・という見解。

仮に大切なことを認めるとしても,それを理解するために積み重ねていないといけないことが多いし,それがないと情報技術者試験のテキストでは理解できない。コンピュータシステムほど間接的に影響しない。

高度午前2での指定範囲

ネットワークスペシャリストデータベーススペシャリスト

  • コンピュータ構成要素・システム構成要素・開発技術

になってたりする。支援士は

が範囲になっていたりする。まあ,そう考えるとコンピュータ構成要素・システム構成要素ぐらいはやっておくリターンはそれなりにあると思う。

サービスマネジメント・監査は瀬戸先生の支援士のテキストの中にも書かれてるし,まあ,そのときにやるで問題ないと思う。

完璧に知ってる必要があるかは別にして午前対策は必要なので

このあたり,体験か常識化か学習かとか議論する暇があったら,午前対策も兼ねて一通りやってしまうのが速い。どっちみち午前はやらないといけなくなるので。

その範囲のトピックを完璧に知らないといけないか?と言われてもそうでもない。なので,キタミ式+午前対策ぐらいの軽い対策を一度しておくのはありだと思う。

次回,この連載を書いた理由を少し書いて,このシリーズにいったん区切りをつけようと思う。

時間をかける応用情報のセキュリティ対策(6)瀬戸本を使った勉強法の一案

テキストは良いとはいえ,読み流しでいけるとも限らない。以下,独断と偏見による勉強法の一例を示しておく。

最低限の前提知識

いちおう,多少の基礎知識の前提はクリアしておいた方が良い。

  • キタミ式のネットワーク・セキュリティの部分(基本情報・応用情報どっちでも)
  • iTECの応用情報の午前本のネットワーク・セキュリティの部分
  • 基本情報のセキュリティ・ネットワークの問題を新しい方から3セットずつ

ぐらいはやっておくと良いと思う。いずれも完璧でなくてもないが,まあなんとなくはわかってるよね,でやる感じ。あとは,このテキストを読みながら戻ってきて復習などもやると,より定着して良いと思う(あるいはこのテキストを調べながらとか)。

手をつける部分

9章後半のセキュアプログラミングだけは除外して良いと思う。

演習問題は午前のみ。午後は,応用情報午後がそこそこできるようになってきたらやっても良い,ぐらいの感じ。

基礎固めとしての使い方

わかりやすい本を読み流すと頭に入りきらない。しかし,意味不明のものをいきなり演習すると初期学習がしんどすぎる。そのバランスを取りながらやる。

勉強としては,このテキストの特徴を使って,次の2つを毎日繰り返すことを最初の勉強とする。

  1. 説明直下の4択を気合を入れずに解いていく 。そのついでにぱらぱら説明を読んでいく。
  2. 図や目次もぱらぱらと読んでイメージや全体像をつかむ。

これで,頭に地図を作る。このテキストをそこそこの速度で回せる頃には,それなりの実力になっているので,後はどんな勉強法に接続してもどうにでもなる。

自分は試していないが,付録スマホアプリも併用すると良いと思う。

「読む」と「気合」の中間を毎日

こういう勉強は,最初から気合を入れると挫折する。そこは徹底的に注意する。その代わりに,すなわち回数を繰り返すという成果を取る。そして,回数を重ねる中で徐々に塗り方を濃くするイメージで取り組む。

とにかく毎日続くように適度に自分を甘やかす。逆に甘やかしてもそこそこの成果が出るように,基本線を「読む」という単純インプットでなく,「4択」という軽いアウトプットに取っている。また,どんなに甘やかした演習でも,テキストを開く限りにおいては目次と節タイトルぐらいとイラストぐらいは目に入るので,そういう効果も狙っている。

甘やかし方の例としては,以下のようなものが考えられる。

  • 最初から誤答の選択肢も完全に理解しきろうという崇高な考えを持たない
  • 理解がしんどいと思ったら,とりあえずわかるとこだけ理解して次の問題行く
  • 最初は必ず前の日に解いた問題からやる
  • しんどい日は,以前にやった問題の中で楽に解ける問題だけをやる
  • 最初は問題文を全部読み終えて5秒考えて(0は良くない)答えを見る。最初は問題文を読むだけでも大変なので読んだという自分をほめてあげる。

タイマーをかけるのも良いと思う。とりあえず毎日10分タイマーかけて,その時間だけは4択演習をやるとか。(この分数の値は各自の気合力と理解力のバランスで最適値を選択する。勉強プロセスの中で変えていっても良い。最初は10分連続が厳しければ朝5・夕5にわけてみるとか。)。

週末(週1ぐらいは最低)は気合入れ系勉強を

余裕があれば,週末とかの気合の充実したときにちゃんと読むはできればする。あるいは,毎日10分で理解しきれなかった午前問題をきちんと調べるとか(ネットワークは特にそういうとこがありそう)。さすがに気合系勉強ゼロでは完成しないので。この気合系勉強の時間を減らしたり効率を上げたりするために,甘やかしても良いので毎日10分をやるとも言える。(10も一例なので,ここはその人の気合次第。気合が続く範囲で足すのは。減らすのはさすがに。)

紙の本でやることが大事

この演習は紙の本でやることが大事。本で順番に紙をめくりながら演習していくことで,周囲の情報を少しずつ目に刷り込んだり,節タイトルや目次を何度も目にさせて体系を刷り込ませていくという作戦なので。

テキストと過去問は一方向でなく双方向で考えたい

テキストで知識を入れるのは,

  1. 何が重要かということを過去問から自分で分析できる
  2. 過去問を抽象化して次の問題に転用できる形で頭にインプットできる力を身に付ける

というレベルに到達するためである。しかし,この試験の勉強の難しいところは

  1. 教科書的知識がある程度はないと過去問から知識は吸収しきれない
  2. 過去問の演習経験を経ないと教科書の記述を本当の意味で理解できない・頭に入らない

ことだと思う。また,教科書を超完璧にしてから過去問には,最後までいかないという挫折リスクが常に付きまとう。かといって,過去問いきなりだとそもれそれで挫折要因がある。この2つのバランスをどう取るかが難しい。

そこそこのインプットで午後演習に踏み切る

これを踏まえて,教科書が程良く入ったとこで(教科書見ながらで良いので)午後の過去問に手を付けることにする。そして,過去問を解いたら教科書に戻って,また過去問に戻ってを繰り返す。世間ではここを一方向で考えている記事が多いが,両方向で捉える方が良い。

このサイクルに入るのは,4択が軽く回せるようになってきたな,ぐらいからが適度な感じだと思う。ここは人それぞれで,往復をやってて苦しくないなと思う完成度からやれば良い。

過去問と教科書は一方向でなく双方向で

過去問と知識との往復というのは主に2つの工程がある。

  • 毎日午後4択を回し続ける勉強の中で,これ過去問でみたと思いながら頭で関連付けを作る。
  • 過去問を解いたら該当箇所のテキストを確認する

したがって,午後の過去問を解き始めても,毎日4択を回し続ける勉強は継続する。ただし,今度は解くことだけでなく(解くは絶対継続),解くついでの読むとか眺めるにウェイトをかける。午後の過去問解いてると,最初とは違う気付きが出てくるので,それを吸収していく。

章末の午後1ぐらいは余裕次第

章末の午後1は,余裕があればぐらいの感じ。なお,午後1を何問かじっくりと解くと,応用情報の問題がものすごく平和な問題に見えてくる効果もある(経験上)。

(雑記)この本を使った過去問トレーニングは色々研究中

研究すればするほど,この本は支援士用の本でなく応用情報用の本という確信が強くなってきてる。。。。

努力しているのに落ちやすい人というのは,一問一答系を繰り返すだけでは午後問題に活用できない人で,瀬戸先生はそれらの要因の一つに「国語力の不足」を挙げていて,そういう人は多めに過去問とか中・高国語をしましょうとか書いてる。

私は問題認識は似ているのだが,もう少し過去問に即した具体的な方法論があるのではないか?を問題意識として持っている。今,この件を自分を人体実験にして現在研究中で,これはできたらそのうち。

キーワードはメタ認知。開発しようとしている訓練は,この本と過去問を突き合わせて自分でポケスタみたいなのを作る作業をすることで何かができないかと。ポケスタの知識を覚えるのではなく「作る」「作るプロセス」の中での気付きの中で何かを得るアプローチ。この本はそう勉強をするのに鍛えるのにものすごくうまくできてる(常識を言語化してるという言葉で初回に書いた通り)。