【プログラマー思考とは】メタ認知のお話

プログラマ思考 プログラミング

はい、どうもこんにちは、ANOくんです。

今回は今日ツイートしたこちらの件について
お話していこうと思います。

プログラマーになってできるようになった思考のお話です。

自分を一つの”プログラム”としてみると
仕事上においてメリットが結構あったよという話で
ぜひプログラマーの方にもそうでない方にも
やってみて欲しいなと思ったので一つの記事にまとめました。

まずはその思考がどんなものなのかを簡単に説明し
その後、その思考を日常生活で用いると得られるメリットについて
お伝えしていこうかなと思います。

プログラマー思考とは

プログラマ思考とは

プログラマー思考と勝手に名付けて読んでいる
こちらの思考方法ですがやり方は至って簡単で
先ほども述べた通り、自分を一つのプログラムとして
認識するだけです。

僕自身エンジニアとして1年半ほど様々な
システム開発に従事してきました。
要求される要望に合わせて作られた設計書を元に
プログラムを延々と開発していると
徐々に思考が上記のように変わっていきました。

自分の脳の中には大量のプログラムがインプットされています。
例えばこれはプログラマの方ならもちろん
非プログラマの方もご存知の方も多いと思うのですが
システム開発の中では「条件分岐」というものが頻出します。

if($honya == true){
 echo ‘hahaha’;
}else{
 echo ‘hyahyahya’;
}

こんな感じでコーディングされる例のアレです。

上記のコードだと
もし変数honyaが真だった場合「hahaha」と出力され
真でない場合「hyahyahya」と出力されます。

人生においてもこういう機会多いですよね。
「もしお腹が空いたら、ご飯を食べる」とか
「もし眠気を感じたら、寝る」とか
「もしやる気が出たら、勉強する」とかと
日々至るところで事象の判定をしながら行動の決定をしています。

僕たちは膨大な量のソースコードを抱えた
一つのプログラムとしてこの世の中を生きています。

「システム開発と同じように、自分をプログラムとして捉えて
必要な実装を必要なだけ行い、不必要な実装は削除すると
ドライに考えられたら、今よりも生きやすいんじゃないかな?」
というシンプルな疑問からこの思考方法は生まれました。

プログラマー思考のメリット

プログラマ思考のメリット

ざっくりとですが、ここまででプログラマー思考とは
なんぞやというところをお話してきました。
ここからは実際にこの思考を実装しておくと
得られる日常生活でのメリットを見ていこうと思います。

主観を排除できる

まずこれ。
主観の排除にめちゃ役に立ちます。

僕たちって基本何も考えていないと
主観メインで生きがちなんですけど
仕事上でずっと主観しかないと弊害もあります。

相手の意見に耳が傾けられないので考え方が偏ったり
自分と他者とを比較して、自分をどう勝たせるかを
冷静に考えられなかったりと
主観だけで生きると不利益を被ることもあります。

まぁ人間なんでどうしても自分が可愛いですし
客観の世界にだけ生きれるほどメンタル強い人ばかりでは
ないのも事実です。

プログラマ思考を持つとなぜ主観排除できるかって
ずっとお伝えしている通りなのですが
自分を一つのプログラムとして見ることができるからなのですね。

よく啓発書では「人と相手を比べるな!」と言われてますが
それは自身の理想をしっかりと持ち
過去の自分と比べてその理想に向かっての進捗に
集中しろという教えで
基本的にその理想の姿って、ある程度競争の世界を勝ち抜いた
後の自分なことが多いと思います。

なので相手と比べること・競争することは
この日本社会に生きていたら避けては通れないところでしょうし
戦況を冷静に分析できた方がそりゃ勝率は上がりますよね。

どうしても自分と相手をそのまま生身の人間として
比較しちゃうとしんどいですし、
毎度毎度それで体力消耗させるのはエネルギーの無駄遣いです。

一方で自分をプログラムとして見て
他のプログラムの挙動も確認しながら
自分に取り入れた方が良さそうなものを実装していく
と考えると、自分を少し離れたところから俯瞰で見られる、
かつ、自分をちゃんとコントロールできている感が生まれます。

要はメタ認知の話です。
これできると結構生きやすくなります。

結果と向き合いやすい

次にここですね。
結果と向き合いやすくなります。

人間誰しも現実の嫌な結果と
向き合うのって辛いですよね。

テストの点数が平均点から大きく下回った時には
「山を外した」とか「ちょっと寝不足だった」とかと
真の原因と冷静に向き合わず逃げがちですし
仕事だと尚更そのムーブが強まるでしょう。

ですが一方でプログラムとして自分を見ると
自分自身を批判するのではなく
プログラムとしてどこの挙動がおかしいかを見れるようになる
というメリットが生まれます。

自分の思考のクセだったり、大体の思考パターンが
しばらく続けていると見えるようになってきます。

その上で自分がありたい姿を定義し、その時の自分は
どんな考え方・行動をしているかを明確にし
それ通りに自分の考え方を変えて行きつつ
現実で自分というプログラムを走らせて結果を見る。

このサイクルを行うことで人間は成長しますし
理想の自分に近づけます。

生身でそこに向き合い続けるのはちょっときついですし
主観が入り過ぎてしまう恐れもありますので
引いた目で冷静に見て、クリティカルな解決策を思い付きやすくなるのも
プログラマー思考のメリットです。

プログラマになって学べることはたくさん

たくさんの学べること

今日はプログラマ思考についてお話してきました。
僕自身プログラミング学習を始めてから、実際にプログラマーになり
プログラムに触れている年数がもう2年近くになりました。
月日が流れるのは早いもので、あっちゅうまに時間が過ぎました。

僕自身このブログの中では
フリーランスエンジニアになることをお勧めしたり
エンジニア転職が今熱いと推していたりして
特に収入面や働き方の面でメリットをお伝えしていたのですが
実際にやってみると、そういった生々しい部分以外にも
メリットがあることがわかりました。

言語を学ぶだけがプログラミングじゃないです。
プログラムって基本的には人間の拡張機能なので(諸説ありますが)
頭のいい人たちがこういう作り方をすると良い
として残された思想は受け継いでしかるべきだなぁと思ってます。

僕の尊敬する方にふろむださんという方がいて

深く考える方法についてこちらの記事で述べられているのですが
こちらで紹介されている思考方法はプログラマになって
やりやすくなったと思います。

自分が成長したな、変化したなって瞬間って
なんだかんだ好ましい出来事で
そういった瞬間を人生の中でたくさん経験したいですよね。

その瞬間に多く遭遇するためにもプログラマ思考が
役に立つだろうなと思って今回の記事は書かせてもらいました。

日常生活でちょっと意識して試してみようという人が
1人でもいると嬉しいです。
ではでは、今日はこの辺りでおいとまします。