シャーロック・ホームズの名言に学ぶ

メルマガバックナンバー 第18回

こんにちは、プログラミング書籍の館の江畑です。

先日授業内でソードフィッシュという映画を上映したら、やけにエロ過ぎて気まずくなりました。
ネットでプログラマ向けの映画と紹介されてたので、油断して内容を確認せずに見たら大変な事になっちゃったです。

そんな話はさておき、今回のテーマはシャーロック・ホームズの名言に学ぶです。

かの有名な名探偵シャーロック・ホームズのセリフから、プログラミングの極意を紐解きましょう

ホームズは実に論理的で、筋道を立てて、問題を解き明かします。
その過程はプログラミングによく似ています。

もし彼が現代に生きていたら、優れたプログラマになれた事でしょう。
(変人なので周囲は大変でしょうが)

今回はそんなホームズの名言を3つ紹介したいと思います。

シャーロック・ホームズの名言に学ぶ

不眠は働くよりも遊ぶよりも人の神経を悩ますものだ

「黄色い顔」より

まず一つ目。現代人の心に突き刺さるやつです。

つまり睡眠はしっかり取りましょう!
当たり前の基本ですが、ホームズもそう言ってます。

私の経験でも、寝不足になると頭が回らないのは、揺るぎない事実です。
忙しいからと言って睡眠時間を削ると、かえって効率が下がり本末転倒になります。

むかし終電帰りがデフォのデスマーチに迷い込んだ事がありますが、ある日突然新聞が読めなくなって焦りました…

睡眠が足りずに、脳が働かなくなったんですね。ヤバイヤバイ。
そして案の定体調を崩し、その会社を辞めましたとさ。

まあでもホームズは退屈凌ぎにコカインを使うような人ですから、あまり健康じゃなさそうですが…

自分の仕事に役立ちそうな全ての知識を身に付けるのは、それほど不可能なことじゃない。だから、ぼくはそうするために努力してきたんだ 

「オレンジの種五つ」より

なんか凄いこと言ってますね。。。
さすがに「それは無理だろ」と突っ込みたくなります。

ただもう少しスケールダウンして考えれば、有用なアドバイスになります。

それは自分が開発している環境をよく知るという事です。
森羅万象は無理でも、いま目の前にある環境について詳しくなる努力をしましょう。

ハード、OS、フレームワーク、プログラミング言語がどう動いているかを、調査して身に付けるわけです。

その為の一番の方法はマニュアルやドキュメントを読む、これに尽きます。
困っていたバグの原因が、実は公式マニュアルに書いてあった…
なんて事はよくあるんです。

だから熟読しましょう。必要ならプリントして目を通しましょう。
そこには必ず意外な発見があります。

ちなみにシャーロック・ホームズは、よく新聞を熟読して事件解決のヒントを得ています。

私は以前あるメソッドがiPhoneで上手く動作せず「なぜだ!」となった時、マニュアルを見たら
 iPhoneでは動きません
と思いっきり書かれていました(でもせめてコンパイルエラーにして欲しかった…)。

ただプログラミング関係の資料は、英語が多いので困りますね。

そんな時は、Google翻訳の力を借りましょう。
最近は翻訳精度も上がり、私はかなり助けられてます。

あとみらい翻訳もオススメです。
時々Googleよりも賢い結果を出してくれます。
他にはDeepL翻訳もかなり優秀です。

明白な事実ほどあてにならないものはない 

「ボスコム渓谷の惨劇」より

これは「思い込み」を排除せよという教訓です。

「ここは必ず正しい!」と信じて、チェックを怠った経験ありませんか?
私はあります。

先日もスマホアプリ開発で、エミュレータでは動くのにスマホ本体で動かない状況に出くわしました。

丸一日あーだこーだ悶絶した結果
(パソコンとスマホを繋ぐ)USBケーブルが断線してただけでした…

当然ながらケーブルを変えたらあっさり動きました。
ケーブルは必ず動く!という「思い込み」があったわけです。おのれヨドバシ。

こんな風に、人間はついつい頭の中にブラックボックスを作りがちです。

シャーロック・ホームズですら前述の「黄色い顔」では、思い込みに反省しています。
だから我々も気を付けねばなりません。

・ハードは故障していない
→いつかは壊れます

・前に同じ事やったから大丈夫
→状況が違うかも

・ツールは正しく動く
→不具合があるかも

・このバージョンは最新だ
→本当に確認しましたか?

・あれから何も変更していない
→腰を据えて記憶をたどろう

・先輩が書いたソースは間違っていない
→先輩も人間です

・データは必ずそこにある
→本当にそうか見てみよう

こういった思い込みの罠に落ちない為にも、まず電源から確認しましょう!

このようにシャーロック・ホームズは100年前の作品ですが、今日のプログラミングにも通ずる教訓が色々得られます。

論理的な思考の具体例とも言え、読むと頭が良くなった気がします(私だけ?)。
私も全部読んだわけではないのでデカイ事は言えませんが、暇潰し&プログラミングのお供にオススメです。

ちなみに私の好きな作品は踊る人形です。
一見すると子供の落書き、しかし実は重大な意味があった…
ド定番ですが、論理的に解き明かす過程が鮮やかです。

あとロバート・ダウニーJr主演の映画版も面白かったです。
ホームズがかなり武闘派で無茶苦茶やってくれます。
それでいて、ちゃんと論理的な推理のシーンも描かれています。

Twitterハイライト

レースゲーム作ってます

ドット絵のレジェンド、スクウェアの渋谷員子さんからレスを頂きました

史上唯一?の政治家ゲー

ソニック・ザ・ヘッジホッグはここから始まった

ヒゲをぬかれるととべなくなる

ろんりが!キャンペーン の答え

さて前回のクイズの答えです。

私が作ったブラウザゲーろんりが!に関する問題でした。

このゲーム、全40面をクリアするとスタッフロールが流れます。

その中で一つだけ「他と色が異なる」単語があります。
さて、その単語とは何でしょうか?

正解はSTUFFでした。
エンディングでは、この単語だけ赤くなっています。

これはデスクリムゾンという(一点の曇りもない)クソゲーが由来です。

このゲーム、エンディングの「STAFF」「STUFF」と誤植しています。
しかしSTUFFは「クズ・がらくた」という意味もあるので、まあまあ正しいと言うのが定説です。

色が赤なのは、このデスクリムゾンの迷台詞
「せっかくだから俺はこの赤の扉を選ぶぜ」
へのリスペクトです。※詳しくは検索

それはさておき、全40面をクリアして正解した方は…
なんと1人いらっしゃいました!

自分で作っておいてなんですが、人類には早すぎるゲームと思っていたので、正直驚いています。

そこまでやり込んで頂き感謝です。ありがとうございました。
3000円分のAmazonギフト券を送信致しましたので、散財して下さいませ。

謎の共通点クイズ

では今回のクイズです。

【問題】
10月31日12月25日の共通点は何でしょうか?

また意味不明な問題ですが、一応プログラマっぽい答えです。
(両方とも平日とかではなく)

分かった方は本メールに返信してご応募下さい。
正解した方の中から抽選で3名様に、Amazonギフト券コード500円を送信致します。
※募集は終了しました

【ヒント】
英語で、10月31日は OCTober 31、12月25日は DECember 25 と書きます

締切は、次回の配信までです。ご応募お待ちしてます!

今回はここまでです。読んでいただきありがとうございました。

プログラミング書籍の館 江畑


Kuniaki Ebata 登録者

大学中退(文系)の専門卒 日本で唯一のプログラミング書籍評論家 プログラマーで現役のスキー国体選手です 頭と体を動かすのが大好きなフレンズなんだね 専門学校で先生もやってます プログラミングは21歳から 貴族じゃない独身 持病:重度うつ病(薬とサポートのおかげで何とか生きてます) 教え子をゲーム業界へどんどん送り込み、世界を面白くする野望を実現中 プログラミングが上達するメルマガやってます ここを見たゲーム業界の卒業生へ 新作が出たら、連絡するか現物を送ってくれると嬉しいです ただし18禁・CERO-Dの場合は、厳重に梱包の上、品名をパソコン部品にて送る事(だいじ) このページが参考になった方へ ぜひSNSやブログでシェアして欲しいです お願いします(少し上にボタンあります) 最近Google先生が中身の無い「いかがでしたか?」サイトを優遇するので困っています助けて下さい(>_<) シェアしてくださった方には 小冊子 プログラミング書籍が10倍わかる読み方(pdf) を差し上げます こちらからご報告頂くか、こっそりDMを送って下さい