← メディア一覧

脳内実行をやめてトレース表を書く

3分55秒 | 試験制度FE

基本情報技術者試験の頻出テーマを解説した音声コンテンツです。

トランスクリプト(字幕テキスト)

プログラムのコードを読んでると、こうループ処理の5周目あたりとかで 「あれ?今この変数の値っていくらだっけ?」って頭が真っ白になることありません? あ、それ凄くよく分かります。 やっぱりありますか。ええ。今回はまさにその混乱から抜け出すための ある強力な技術について深掘りしていきたいなと。 提供いただいた「聞く基本情報」という資料が元ネタですね。 そうなんです。資料にもありますが、それって実は人間の脳がコンピューターみたいに振る舞おうとして 限界に達してるサインなんですよね。限界のサイン。はい。 コンピューターってただもう愚直に1個ずつ命令を実行してるだけじゃないですか。 確かにそうですね。その動きを人間が紙の上でそっくり真似て追跡する。 これが今回の革新、「トレース」という技術なんです。 なるほど。コンピューターの真似をする、ですか。でも資料に出てくる 学習者の人みたいに、全部書き出すなんて正直面倒くさいって感じるのが まあ本音だと思うんですよ。ええ。RPGのHP管理みたいだっていう例えは面白いですけど ゲームは自動でやってくれますからね。この面倒くささ、乗り越える価値って本当にあるんですかね。 いや、良い質問ですね。まさにその面倒くささの先にこそ本質があるんです。 ほう。例えば変数iとtotalの値を記録するトレース表っていうのを用意するんです。 はいはい、トレース表。で、ループが1回回るたびにiが1増えて2になる。 その時のtotalは5になる、みたいに1個ずつ淡々と値を上書きしていく。 地味な作業ですね。ええ、でもこの地味な作業が 脳のワーキングメモリーっていう、あの限られたリソースを解放してくれるんです。 あーなるほど。もっと創造的な部分、つまり このプログラム全体で何をしたいのかっていう大局を理解するために 脳のリソースを使えるようになるわけです。脳の負担を減らすための、なんていうか外部記憶装置みたいなものですね。 まさにそうです。でも例えばですよ、1から10まで足すだけみたいな簡単なループでも 絶対に紙に書くべきなんですか?どこからが危険水域というか。 あーそこが本当に重要なポイントで。最初はこんな簡単なものまでって思うかもしれない。 思いますね、正直。でもこれ単なる試験テクニックじゃないんです。 実際にプロの現場、例えば大規模な金融システムで1円でも計算がずれたりとか。 うわー。そういうバグのデバッグの原点にあるのが、この地味なトレース思考なんですよ。 へぇー、プロの現場でも。私も若い頃、自分の記憶力を過信してこれをサボって 何時間もバグを探したあげく、ループのカウンターを1つ見間違えてただけ なんて苦い経験がもう何度もありますよ。それはきついです。 なるほど、資料が「書いたもん勝ちだ」って断言してる理由が今ので腑に落ちました。 そうなんですよ。では今まさにアルゴリズムで苦しんでる方が 今日からすぐに実践すべきことを3つに絞るとしたら何になりますか? そうですね、まず1つ目はどんなに簡単な処理でも脳内だけで実行するのは絶対にやめること。 脳内実行は禁止。はい、必ずミスをします。 で、2つ目は指でコードを1個ずつ追いながら声に出して実行すること。 指差しと声出し。ええ、これで追跡の精度が格段に上がります。 そして3つ目が変数のためのトレース表を必ず書くこと。これが唯一にして最大の近道です。 なるほど。脳内実行の禁止、指差しと声出し、そしてトレース表の作成。 非常に具体的で分かりやすいです。ええ、そして最後に1つだけ。 このトレースという技術って、他人の書いた複雑なコードとか、巨大なシステムを理解するときの まあ最も確実な地図になるんです。はい。脳をトレースする?そうですね。 どこで自分の論理が飛躍して、どこで前提を間違えたのか。 きっと客観的に見えてくるはずですよ。

このコンテンツは Web society で視聴・学習できます。