パズル好きこそプログラマに向いている
Twitter で
先日、某講演を聞きに言った時に某大の講師の方が「世の中にはパズルが得意な人とレゴが得意な人がいる。パズルが得意な人は完成形にまでしか仕上げられない事が多い。我々はレゴが得意な人が欲しい。」と言ってて分かりやすい例えだなと思った。プログラマにも言えそう。
— mattn@有益情報 (@mattn_jp) July 25, 2019
という tweet を見かけたので脊髄反射してみる。
私はレゴが嫌いである。
ブロック玩具が嫌いなわけではない。 ナノブロックとかビンボー人に優しいし面白いと思う。 でもレゴはダメだ! あれは「資本主義」の象徴である。 「持たざるもの」はスタートラインにすら立てないし,持っていてもその優劣は持っているレゴの「量」で決まるからだ。 ビンボー人のルサンチマンを煽る玩具。 それがレゴである。
Tweet された方や「某大の講師の方」がどのようなつもりで言ったのかは知らないが,パズルの本当の面白さはパズルを「解く」ことではなく「作る」ことにある。 これは12ピースのジグソーパズルから難解な数理パズルまで一貫して言えることだ。
私(の実家)はビンボーでジグソーパズルもめったに買ってもらえなかったが,パズル雑誌は少ない小遣いの中から自力で買って楽しんでいた。 私が学生時代の1980年代にめちゃめちゃ流行ったパズル雑誌に「ニコリ」というのがある(いや,今もあるけど)。 当時の「ニコリ」が他のパズル雑誌と一線を画していたのは読者が「問題」を投稿できることだった(現在はどうなっているか知らない)。
特に「数独(数字は独身に限る)」は本当に面白かった。 商標の関係で日本では「ナンバープレイス」の本名のほうが有名だが,海外では “sudoku” という単語があり,数学論文のネタにさえなっている。
与えられたルールに沿って問題を作ること,あるいはルールそのものを作ること,これはまさに「プログラミング」である。 「問題を解く」なんてのは,ただプログラムを実行しているだけに過ぎない1。
というわけで私は
と声高に主張しよう(笑)
余談だが…
私は(設計を除く)プログラミング作業の中で「デバッグ」が一番好きだ。 特に他人の書いたコードのデバッグは極上の数理パズルである。 他人のコードを読むのは勉強になるしね。
デバッグに比べればコーディングなんて脳内のコードを書き写すだけの「写経」に過ぎない。 最も退屈で苦痛な時間。
ブックマーク
参考図書
- STARTSIDE 数独 すうどく 脳トレ 卓上 ボード ゲーム 9ブロックパズル (ブラック)
- STARTSIDE
- おもちゃ&ホビー
- B077PDFQ4S (ASIN), 4562440102073 (EAN)
- 評価
「数独」がボードゲームに(笑)
- イミテーション・ゲーム/エニグマと天才数学者の秘密(字幕版)
- ベネディクト・カンバーバッチ (出演), キーラ・ナイトレイ (出演), マシュー・グード (出演), ロリー・キニア (出演), モルテン・ティルドゥム (監督), グラハム・ムーア (Writer)
- (Release 2015-10-02)
- Prime Video
- B015SAFU42 (ASIN)
- 評価
主人公であるアラン・チューリングは今もなお「天才」と称される数学者であり,「コンピュータの父」と呼ばれるほどの偉人である。そしてチューリングの偉業のひとつが,旧ナチス・ドイツの暗号機械「エニグマ」の解読である。作品はそのエニグマの解読を主軸に物語を展開していく。感想はこちら。
-
ちなみに数独を自動で解くプログラムは既に存在している。解くことができるということは作ることもできるということだ。でも機械が作った「問題」って 美しくない んだよなぁ(笑) ↩︎