「三手の読み」でプログラミング(というかデバッグ)する方法
ガジェット通信 / 2013年10月15日 14時0分
今回はメカAGさんのブログからご寄稿いただきました。
■「三手の読み」でプログラミング(というかデバッグ)する方法
「羽生善治氏が説く、「三手の読み」で未来を切り開く方法」 2013年09月25日 『logmi [ログミー]』
http://logmi.jp/2560
三手先を読めばいいんだから簡単ではないか、という話ではあるのですけれども、これがですね、意外なところに死角があるという風に思っています。
それがですね、二点目のところなんですね。つまり自分がこうする、自分がこうしたいというところは自分の意思で決まるわけですけれども、当然その相手とかあるいはいろんな物事の対象というものがあるので、それを予想しなくてはいけないということがあります。
なんかプログラミングと似てるね。初心者プログラマと上級者の違いは、バグを予測するという点だと思うのだよね。「やりたいこと」をコーディングするのは比較的簡単。上級者は常に並行して「その時、バグが入り込むとしたらどこか?」を考えながらコーディングする。
たとえば割り算をしてる時、割る数がゼロになるケースはないのか?を必ず考えるように。あるいは、「改行までの文字列を比較する」場合に、もし改行がなかったら?とか。
プログラミングの初心者はこれができない。上級者は予想外のことが起きたらどうするか?を考えながらプログラミングをしていく。
* * *
例えばですけれども、この会場に来るためには、地図を広げて渋谷近辺にあるだろうということがわかればですね、遠回りをしたり寄り道をしたりしなくてすむわけですけれども、それと同じように大ざっぱにつかむというのが鳥瞰する俯瞰するということなんです。
これは難しいのだが、それでもプログラミングでも「感覚」というのはある。なんとなくこの構造はバグりそうだ、バグってそうだ、という予感(笑)。こういう構造だと、たぶんバグりやすいというのが経験的にあって、それが他人のプログラムを読んでいる上級プログラマの脳内で警鐘をならす。
なんとなく上級プログラマは初級プログラマとは全然別の物を見ている。たとえるならサーモグラフィーの映像のような。コードのバグりそうな箇所が「色」がついて見える(笑)。もちろん「バグりそう」な箇所であって、実際にはバグがないこともあるけど、上級プログラマが初級プログラマよりも速くバグを発見できるのはこの感覚のせい。
で、「なんかこのプログラムがバグってて、なんとかしてください」とプログラムを見た時、サーモグラフィーが真っ赤かだと「うわっ」となる。上級プログラマなら無意識に避けるであろう方法を何の躊躇もなく使いまくってるプログラムって、もうね…。
* * *
その鳥瞰する俯瞰する方法を使って、この場面でこの選択肢を選んでしまうとジリ貧に陥ってしまうということが判ればですね、たとえリスクが高くてもほかの選択肢を選ぶということもできるというふうに思うんです。
初心者が書きそうなプログラムってあるんだよね。素直にあまり考えずに書くと、こうなるであろう、という。上級者は苦い経験をしているので、多少手間がかかっても、こういう作りにしないとバグりやすい、とわかるのだが。
一方で何度設計しなおしてもうまくまとまらないという場合、自分の思考パターンを崩すということもしないと、良い設計ができないことがある。ようするに自分のこれまでの経験的なパターンをすべてためしても、うまくいかないなら、自分が普段考えないようなパターンにあえて踏み込まないと。
これも自分の思考パターンを知っている(自覚している)からこそ、あえてそれを崩すことができるわけで。砂場に宝が埋まっているとして、思いつきで行き当たりばったり、あちこちを掘り返しても、見落としがあるんだよね。碁盤の目のように区切って、こことここはすでに探した、みたいにマッピングして始めて、まだ探してない盲点がわかる。
執筆: この記事はメカAGさんのブログからご寄稿いただきました。
寄稿いただいた記事は2013年10月10日時点のものです。
外部リンク
この記事に関連するニュース
-
~やる気スイッチグループ 夏休みに関する親子アンケート~ 今年の夏、小学生の約3人に1人は「独り夏」(※1)を過ごす 保護者の心配は「生活習慣の乱れ」
PR TIMES / 2024年7月26日 17時45分
-
未経験からソフトウェアエンジニアのインターン獲得を目指す「Waffle College」第3期テックキャリアコース募集スタート
PR TIMES / 2024年7月16日 18時15分
-
FXの勝敗の9割を左右する!…相場のトレンドの〈見極め力〉を上げるために、必ず頭に入れておきたい〈王道の理論〉【FXで借金完済を果たした敏腕トレーダーが助言】
THE GOLD ONLINE(ゴールドオンライン) / 2024年7月14日 10時15分
-
「調理中でも洗い物はどんどんやれ」→その理由とは…… 料理を“あるもの”にたとえた説明が「刺さる人には刺さる」と260万表示
ねとらぼ / 2024年7月8日 20時0分
-
日本最大の小学生向けプログラミングコンテスト「Tech Kids Grand Prix 2024」応募受付開始
PR TIMES / 2024年7月1日 18時15分
ランキング
-
1アイドルグループメンバー、彼氏とのツーショット“誤爆”を謝罪 運営は「彼氏と一定の距離」など処分
ねとらぼ / 2024年7月28日 11時0分
-
2フリーズ、通知音etc. 困った時に役立つ5つの操作|今さら聞けないMacの便利テク
&GP / 2024年7月28日 19時0分
-
3本当に存在したか疑った! RPGの伝説級“激レア”アイテム
マグミクス / 2024年7月28日 21時25分
-
4「こんなになるなんて……」 猛暑でフライパンに生卵を放置→“とんでもない”結末に 「やばい」ネット騒然
ねとらぼ / 2024年7月28日 12時0分
-
514年前に発売されたiPhoneでモデルを撮影すると…… まさかのエモすぎる仕上がりに「まってiPhone 4欲しすぎ」「え、すごくね」
ねとらぼ / 2024年7月28日 10時0分
記事ミッション中・・・
記事にリアクションする
![](/pc/img/mission/mission_close_icon.png)
記事ミッション中・・・
記事にリアクションする
![](/pc/img/mission/point-loading.png)
エラーが発生しました
ページを再読み込みして
ください
![](/pc/img/mission/mission_close_icon.png)