かっこいいプログラマが欲しいなあ

定期的にもやもやする

なんか定期的にプログラミングの話が出てきて、そのたびになにやらもやもやします。
今回はそのモヤモヤを解消してくれそうな感じの記事があったので、その紹介と思うことをば。

プログラミングはそれ自体が目的であっていいって話。

とても理解できます。
プログラマって、もっと適当で良いと思うんですよね。
「理論的に」じゃなくて、もっと「感情的に」伝えたほうが面白いと思うんですよ。
ということで個人的には最初の方にあった以下の部分を広げて欲しいなぁ、とか思います。

僕がプログラミングをはじめたとき、何を思ってプログラミングをはじめたか思い出してみようとしたけど、よく思い出せなかった。
ただ漠然と感じていたのは、プログラミングは個人が現実的にこの世界に直接手を加えることができる手段の1つであり、それをやらないのは勿体無い、といったことだったと思う。たぶん。

どうも、プログラマを目指す人に書いてある記事って、「書いてある内容を読む」ために求められる前提の知識に非常に高い専門性が要求されすぎてしまっていて、どちらかと言うとこの話は「既にプログラムをガンガン組んでいる人に向けての言葉」という気がします。
プログラムに興味がある人が読むには、あまりに難しいんですよね。
「興味があったら調べてみてね」って言われても、それ調べたら多分わけわかんない言葉沢山でてきてプログラマ諦めるんじゃないか、みたいな。

プログラマの世界は、どんどん専門家が進んでしまった結果、「浅い部分は素人でもできるし、深い部分は職人にしかできない」二極化が進んでますよね。
鍛治職人みたいなもんで、職人はひたすら自分の技術の高みを目指していて、その技術が分かる人からすれば大金を積んででも欲しいものを作り出す、みたいな一つの「芸術家」です。
で、浅い部分は機械化が進みまくった結果、誰でも適当に作れて、今や包丁なんて100均でも売ってるじゃないですか。

職人の世界の商品は「その重要性を理解してくれる人」がいなければ、不要になってしまいます。
特にこだわりが無ければ、その辺で安く売っている包丁を買う、と言うのと同じですね。

最近、プログラマ以外がプログラマに対して職人であることを要求していない気がする

100均で売っている包丁でも、最低限の料理は事足りますよね。
切りにくいし、カボチャどころかたまにニンジンすら切るのが危うかったりするんですけど。
でも、まぁ、ある程度料理できるわけで。

そういう人たちにとって「包丁」って魅力的なものじゃないし、「刀鍛治」にいたっては存在意義が分からないわけです。
「なんであんなあっついとこでカンカンやってるわけ? マシンで適当にできんじゃん」みたいな。
もちろん、過去の刀鍛治の不断の努力の上に100均包丁が成り立っているのですが、100円で包丁を買うときにそんなことを考えている人は、「包丁」に魅力を感じる人たちだけです。
もちろん、日本刀がカッコイイ! とか刃物カッコイイ!って人も結構いますよね。
私たちの大半は包丁を作ることはできませんが、良い包丁に感動する感受性を持っている人は一定数いるわけです。(あ、良い包丁を持つと奇声をあげて喜ぶような人はお帰りください。)

刃物とプログラムの違いで一番大きいのが、「良いプログラム」にあこがれる人は、「プログラムを作る人」だということなんですよね。

多くの場合、「完成品を使うユーザー」が「プログラム」ってものに魅力を感じていないから、酷いプログラムでも気にしないんです。
綺麗なコーディングに「美しさ」を感じることができないし、もっと言えばプログラマ、と言う生き様に「かっこよさ」を感じ取ることができない。

一番最初の記事(プログラミング勉強したいんだけど、どこから手を付けたらいいの?)だって、この人の目的は「アプリを作ること」だからプログラマになる必要なんか無くて、アプリ作れるツールであったり、そもそも設計する部分だったりが必要ですよね。
「家を建てたいんだけど大工技術の勉強はどこでできるん?」って言うのと同じで、別にこの人プログラミングができるようになりたいってわけじゃないじゃないですか。

プログラマって、結局その程度の扱いをされてしまってるんですよね。

ユーザーは「かっこよさ」にこそお金を払いたい

プログラマとしては「プログラムを面白いと思うんだったら組めよ」ってスタンスを取る事が多いじゃないですか。
なので、私たちは後輩に対して「プログラマを目指す貴方への技術論」をついついぶちまけちゃう。
でもそれって、門外漢を排除するだけにしかならないんですね。いや、「それに興味を持ってくれないような人は要らない」ってのも分かるんですけど。
難解な横文字とアルファベット略語の地獄を読んで「面白そう」って思えます? 「うおおかっこいい!」って思えます?

刃物の例を引っ張りますけど、日本刀の話をするときに物理学の観点から延々と「何故堅いのか」とかそういう話をしてるのと同じで、そんなん聞いても楽しくないじゃないですか。
だからこそ、日本刀の学問の話は、必ず最後に「この原理が解明される前から、刀鍛治職人は、肌でそれを理解していたのだ」みたいなフォローを入れてるんですよ。
この一言があるおかげで、「うおおお刀鍛治職人かっこいい!!学問の壁を越えた!」って思うワケでしょ。
理論に裏打ちされていても、その理論を度外視して、単純に「かっこいい」感じに作られているんですよ。

スキルの高さって言うのは「頭」で理解するんですけど、かっこよさってのは「心」で理解するわけです。
で、「心」で理解したものの方が高尚だ、と言う風潮が非常に強いわけです。
少なくとも、ユーザー側は。

プログラマ、と言うか、理系、と言うか悩むところですが、そういう学問に傾倒している人の一部は、「頭で理解することこそ重要で、心の理解なんてどうでも良い」と言うスタンスの人が多すぎる。
それでは、地位なんか向上できないですし、誰もついてきてくれないんですよ。

かっこよさとは、「門外漢が喜ぶ」もの

ということで、プログラマに憧れている人って、既にある程度プログラミングしている人ばかりなんです。
そして、そういう「ある程度プログラミングができる人」に対してしか語る言葉を持たないし、提示する結果を持ち合わせていない、と言うのが、今のプログラムを取り巻く状況でしょう。
結果的にプログラマの何がすごいかわからないとか言われちゃうし、仕事で消極的にプログラマを選んでいる人なんかゴロゴロいて、その人達を発起させる事ができません。

でも、「門外漢に伝えるプログラムの話」ってとてつもなく難しいんですよね。
情報技術が進歩したためか、「プログラム」というものをユーザーは感じることができません。
プログラムそのものって目に見えない上に、今の時代、「目に見えるようにする程度ならば、プログラミング技術をほとんど必要としない」ですし。

漫画とか、視覚的に、見た瞬間「すげえ!」ってなるじゃないですか。
音楽だってそうで、聴いた瞬間「やべええ!」ってわかるよね。
だから学生は弾き語りしてみたり漫画を描いてみたりしちゃうんです。あばばばばば(思い出したくない過去を思い出した)

もちろん、職業としてプログラマをやっていると、「機能追加依頼があったけどソースがクソすぎて拡張できそうにない」って経験はまぁよくある話でして、その経験があるからこそ、我々はソースコードは美しく書こうとするし、パフォーマンスも考えようとしています。
ところが、多くの場合、これらの問題を体感するには最近のコンピュータは進歩しすぎています。
プログラムを感じる機会ってどんどん減ってるんですよね。

それがゆえに、かっこよさを伝えようにも、結局「技術の話しかできない」ので、どうにも野暮ったい、かっこよくないプログラマが量産されちゃうんです。
だからプログラマの地位が向上できないんですよね。
100均の包丁でも5000円の包丁でも同じじゃん、って言われちゃうんです。

と言うことで、私が「プログラマ」を目指す人たちに言いたいのは、勉強とかそんなもんどうでも良いので、「プログラムを知らない人に評価されるプログラマ」を目指して欲しいと思っています。
つまり、かっこいいプログラマです。

そのために、私たち先輩はできる限り、後輩に「ほら! こんなにできるんだよ! すげー!」って感じで、面白い部分を話すようにしていかないとね、と思うのでした。
教育する時は出来る限りこのあたりの感動を伝えようといろいろ手をつくしているのですが、なかなかうまく行かないですね。

誰かかっこいいプログラマを紹介してください。
むしろ弊社で公演してください。

ちなみに

私がプログラマになったキッカケは、とてもネガティブなものなので、あまり人に言えるもんではなかったりします。

補:すごい沢山反応があってテンパっています

なんか予想をはるかに上回りすぎる反応に、少しどころではなく驚いています。
仕事から帰ってきてパソコン開いてビビったのです。

私は業務系の保守(私は設計担当ですけど)をしているのですが、プログラマのモチベーションを殺すユーザーがあまりに多すぎる上に、プログラマのモチベーションを削ぐプログラマも多すぎる、っていう現場の空気にちょっとぐったりしています。
例えばユーザーからの電話とかを聞くと、「こんなんすぐできるでしょ?」みたいなことを簡単に言ってくるわけですよ。「貴方ほどのレベルがあればすぐに出来るよね」という良い意味ではなくて、「お前程度のスキルでも適当にできるでしょ?」ってトーンで。
その時点で既にローテンションなのに、プログラマ上がりのはずのプロマネも、「そんなん適当にコピーすりゃできんじゃん」みたいな、「なんでできないの?」っていう立場で話してくるんですよ。
もうプログラマのやる気なんか一瞬で地の底ですよ。
ただでさえ数年前に中国人が組んだコメントが「変数代入する時」みたいな意味分かんないif文の説明してるヤツを改修するってことでテンション低いのに。

こんな状況では、プログラマは適当に仕事をこなそうとしちゃうし、周囲はそんな姿を見て「やっぱプログラマなんて所詮一山いくらみたいなもんだな」って思ってしまう。
他のプログラマも、「さっさとプログラマを辞めよう(=SEになろう)」って話になるんですね。

こんな話はネットで良く見る話ですし、その辺の現場でも実際良くあるかと思うのですが、そんな状況ばかりではプログラマが報われないと私は思うので、プログラムを楽しんでいる人を私は助けたいし、そういう人は「楽しさ」を沢山語って欲しいんですよね。
その「楽しさ」がいずれプログラマ以外に伝わるようになれば、プログラマの評価は上がるだろうし、そうすればもっと楽しい仕事になるのになぁ、と考えています。
だから、勉強は横に置いておいて、「プログラマ以外に評価される人」を目指して欲しい、というのが私のスタンスですし、出来る限りそれができるようにはフォローしたいと考えています。