こんにちは!むらってぃー(@canon1ky)です。
「プログラミングとかってどういう人が向いているんだろう」って思ったりしませんか?
様々なタイプの人がエンジニアになったりプログラミングを始めたりしますが、実はパズルが好きな人はものすごくエンジニアに向いているんです。
今日はパズルが好きな人がエンジニアやプログラミングに向いている理由と、その人たちが始めた時のメリットを話します。
パズル好きな人がプログラミングに向いている理由
短期的な集中力が必要とされるため
パズルをする時ってひたすら集中力を使いますよね。
それも、「長期間ずっと集中している」というよりは、「短期間がっちり集中して、気づいたら完成してた」みたいな。
プログラミングでも同じような状態に入れると、非常にスムーズに、堅牢な実装ができます。
短いアルゴリズムでも、複雑なロジックがあったりでとにかく集中力が必要なんです。
ただ、それも大抵は20分〜30分間くらいの集中量を使えば解決できるもの。
中途半端な集中力よりも、尖った短期的な集中力であるほど素早くアルゴリズムを組むことができるのです。
僕も、30分くらいでがっちり集中しただけで「気づいたらこんなにコード書いてたのか。。。」みたいなこととかあったりします。
これ、エンジニア界隈ではあるあるの話ですよね…笑
そのため、パズルを完成させたりするのに「めっちゃ集中して、ちょっと休んで、まためっちゃ集中して」みたいな人とかは結構エンジニアに向いてます。
アルゴリズムを実装する過程とピースをはめる過程が似ている
プログラミングでは、「最終的にこういう風に動かしたい」というゴールがある上でアルゴリズムを組み立て、実装をします。
パズルは「最終的な完成イメージ」があって、そこに向かってピースを当てはめていきますよね。
実は、この過程がものすごく似ているんですよね。
どのピースを当てはめれば完成に導けるか。1つのピースでも、どこに置くかで完成するかしないかも左右されます。
アルゴリズムも同じで、コード内に書く処理の内容が同じでも、処理を書く場所だったり、各処理の順番の前後で挙動が全く変わってきます。
僕も、目標地点に向かってアルゴリズムを実装し動作確認を行って、想定していた挙動が起きた時には、パズルを完成させた時と同じような感覚、快感があります。
そして目指していた機能に向けてアルゴリズムの実装が終わった時には、嬉しくてたまらないですよね!
そのためパズルが完成した時の快感が好きな人は、プログラミングでも絶対に最高な快感を味わうことができます。
また、実装したシステムが動いた時の快感から、またさらなる実装のモチベーションも生まれてきたりすることも非常に多いです。
問題に対する最適解を見つける必要があるため
パズルでは、「ピースの形や色は似ているけど、ぴったりはまる場所は異なる」というケースが多々ありますよね。
プログラミングでも、処理の中身は一見似ているけど、実はぴったりハマっていない時があったりします。
それはアルゴリズムを組んだ時に「一見完成したように見えるけど処理時間が遅い」とか、「完成したように見えるけど、コードが入り組んでいてバグが潜んでいる」とかです。
これに対して、パズルでぴったりハマるようなピースである「実装の最適解」を見つけてあげる必要があります。
「どのピースがぴったりハマるか」を考え、最終的にピースがハマったら、その時も最高の快感でたまらないですよね!
そのため、パズルを解く時のピースを探すのが好きで、ハマった時の快感も好きな人はプログラミングに結構向いており、最適解を探すための技術のキャッチアップも進んでできたりします。
ちなみに、ウボンゴというパズルボードゲームがあって最近めちゃめちゃハマってます。
4人とかでやるとめちゃめちゃ白熱します。(全然関係ない)

さいごに
パズル好きの人がプログラミングに向いている理由とメリットを話しました。
プログラミングは人によって挫折しやすかったり、全く挫折しなかったりもします。
そういう意味で、パズル好きの人はかなりプログラミングに向いていたりも。
もしパズルを解くことが好きでプログラミングに興味を持っていたら、是非チャレンジしてみてください!