suba-lab

エモい考えをまとめるとこ。

「プログラミング的思考」をテーマに話したら割りと好評だった。

はじめに

 新年の目標として、ブログを定期的に書いてアウトプットするぞ!と思ったのも束の間。気づけばもう2月は半ばも過ぎて、なんだかんだでブログすら開設せずまったくやる気がなくなってました。そんな折に、転職活動*1でなんやかんやあったりして。やっぱアウトプット大事だな〜と思うことが多くなってきたので、思い立ってこんなブログを始めてみました。

 若造ではあるんですが、一応、ITエンジニアの端くれではあるので、技術ネタも織り交ぜつつ、ゆるくやっていこうかなと思ってます。

「プログラミング的思考」をテーマに話をしました

 よく同年代の異業種サークル的なゆるい集まりに参加しているんですが、その中で「プログラミング的思考」をテーマにちょいとばかしお話をする機会を設けていただきました。

 僕はコードガリガリ書くタイプのエンジニアではないんですが*2、最近RubyPythonに触れる機会が多くなって、やっぱプログラミング楽しいな〜、なんて悦に浸っていたところ、ふと別業種の人にこの楽しさをどう伝えたらいいんだろう、という疑問が湧いてきました。今年の目標として、アウトプット増やすぞ!アウトプット!!と意気込んでたので(2回目)、じゃあこれネタにサークルでしゃべりたいんだけどだれか興味ある?ってゆるい感じで募集してみたところ、意外と食いつきがよかったので、とんとん拍子に日程が決定しました。

 話をする対象者は、非エンジニアの一般企業で働いている人。何話そうって考えたんだけど、時間的にも技能的にもプログラミングを教えるのは時間的にも難しそう。そもそも、ITエンジニア、プログラマーってPCの前でカタカタ…ってやってるイメージがあって、実際にどんなことを考えながら仕事してるのかって他の業種の人は知らないんじゃないのかなーと、ふと思い、ちょうどプログラミング教育義務化で話題になっていた「プログラミング的思考」をテーマに選択して、プログラミングする人の思考・哲学を紹介しようということにしてみました。

 僕はというと、調べ調べの探り探りだったんですが。どうやら「プログラミング的思考」が何なのか、って言う部分についてははっきりと定義がされているわけではないっぽい、ということがわかりました。そこで、Googleが提案しているComputetional Thinkingがちょうどいい題材だったので、これをベースにいわゆるプログラミング哲学とか、格言とかをいくつかまとめて発表してみたところ、概ね好評なご意見を聞けたので自分としては大満足してます!

プログラマーの三大美徳

 まあそれはさておき、本題*3。中でも好評だったのが、これですね。「プログラマーの三大美徳」と言われているPerlの産みの親であるLally Wall氏が定義したものです。

プログラマーには、次の美徳が絶対に必要です。 この美徳の一つでも欠く人は、プログラマーとなってはいけません。また、これらの美徳を欠いているにも関わらずプログラマーという職業に就いてしまった人は、今すぐ転職を考えましょう。それくらい重要な美徳です。

  • 怠慢(Laziness)
    • 全体の労力を減らすために手間を惜しまない気質。 この気質の持ち主は、役立つプログラムを書いてみんなの苦労を減らしたり、 同じ質問に何度も答えなくてもいいように文書を書いたりする。 よって、プログラマーの第一の美徳である。
  • 短気(Impatience)
    • コンピューターが怠慢な時に感じる怒り。 この怒りの持ち主は、今ある問題に対応するプログラムにとどまらず、 今後起こりうる問題を想定したプログラムを書く。 少なくともそうしようとする。 よって、プログラマーの第二の美徳である。
  • 傲慢(Hubris)
    • 神罰が下るほどの過剰な自尊心。 または人様に対して恥ずかしくないプログラムを書き、 また保守しようとする気質。 よって、プログラマーの第三の美徳である。

 知ってる人も多いこの格言、シャレがきいている上に、本当にその通りだなぁと思うことしか言っていなくて、すばらしい格言だなと思っていますさすがMatzが尊敬する人だな。この格言になるほど!と思っていただけるように、導入部分をがんばったと言っても過言ではありません笑

 プログラマにとって(というか人間にとって?)労働というのは本質的には「やりたくないこと」なんじゃないかなと僕は思っています。生きているだけでは、毎日食って寝て排出するだけしかできないのが人間です。そんな人間が、常に価値を生み出し続けるという「労働」が、果たして本当に「持続可能な」環境なのかというのが、疑問なんです。

 こんな考えに対して、これはユーモアを持たせた上に、働きたくないなら少しでも楽にしようぜ!という気質を見事に表現した格言なんだなぁと思います。こんな考え方の人が少しでも多くなれば、僕のような生きにくいと思う人も減っていくんじゃないかなとも思うんですがどうなんでしょう。この格言が生まれた年代はわかりませんが、いまやコンピュータは、それがなければ仕事ができないほどに普及しています。だれでも、プログラマーの美徳は追求できる環境があると思うんです。

プログラマー哲学こそ全人類が持つべき労働哲学である、と僕は思ってます。

人前で話をするということ

 そんなに大きくないコミュニティでも、人前で話をするっていうことはとても緊張する。でもその分、めっちゃ調べるし、何より身についている感じと達成感がとても心地よく感じます。もちろん適当なことをいうと、マサカリ投げられるし*4、そこにいる人の時間全部を無駄にしちゃいますし。せっかく話をさせてもらえるのなら、少しでも人の行動が変わるような何かを身につけてもらいたいという思いもあります。そういう意味で、今回は本当にやってよかったな、と思える内容だったので大満足してます。

さいごに

これからもアウトプットの場をどんどん増やして、身になる知識・技術を身に着けていきたいものだなぁ(希望的観測)

*1:これは今度詳しく書くつもり

*2:技術領域はインフラエンジニア

*3:前置きが長いとよく言われる

*4:業界用語。技術的指摘を受けること