Code and Passion Take Me Anywhere

rebuild.fm 91のafter showのエモい話を聞いて

time 2015/05/14

rebuild.fm 91のafter showのエモい話を聞いて

概要

またついつい長くなってしまいましたが、rebuild.fm 91回目のafter showでnaoya 氏が話してたエモい話に大変共感したので、自分なりに感じたことをまとめてみようと思います。(音声は12:00辺りから)

エモい話の概要

エモい話の冒頭で紹介されていたのが、DjangoのコミッターのJacob Kaplan-Moss氏のポスト(の翻訳)カンファレンスでの基調講演
この中で、プログラマのスキルは正規分布していて、プログラミングが出来る人はみなスーパーハッカーだと思われていることがあるがそれは間違いだと指摘されていました。
つまりたいていのプログラマは平均的なスキルを持っているので、実はほとんどの場合スーパーハッカーなどはめったにおらず、極端な実力差も劣等感も感じる必要はないという主張。
また新参者がプログラミング界隈に入ってこれるようにするためには、まずそういう先入観を捨てねばならないということも述べていました。

自分の思ったことの要点

これに対し自分が思ったのは

  1. 『スーパープログラマ』でプログラミングを楽しんでいない人はいない
  2. プログラミングを続けてもらうためには頼れるメンターが不可欠
  3. このことはプログラミングに限らず教育全般でも同じこと言えるんじゃないか

ということです。以下詳細。

そこそこのプログラミングが楽しくできて初めて職業プログラマになれる

まずこのエピソード聞いて、自分がインターンしていたときにメンターのエンジニアさんから言われたある言葉を思い出しました。
彼はいつも自分に「プログラマは職人だから自分の技術には責任を持たなくてはいけない」と言い聞かせていました。
なので僕も彼の影響を受けて、常にきれいなコードや可読性、コミットメッセージなんかを意識していました。

ただその言葉が心に響くには、まず「楽しくプログラミングできる」ことが大前提だと思うのです。
「責任を持てる」かはその次の話なんですよ。
僕はプログラミングが好きで、誰に言われなくてもコードを書くくらいだったから、彼の言うことにも共感できたのです。

でも同じことを、プログラミング覚えて間もない、そんなに興味もない学生さんに伝えてもたぶんウザがられるだけでしょう。
だって普段の食事に気も使わない人に美味しいレシピの料理方法教えても料理はうまくならないし、食べることに関心があるから料理も楽しくなるしレシピも覚えられるわけじゃないですか。
僕の周りにはプログラミングの楽しさや有益性に気づけず、辛そうにつまらなさそうにコードを書いている学生さんがそこそこいます。
プログラミングを教える授業はどこの大学でもあって高校や中学から教えているところもあります。
それに最近は学校の外でもプログラミングを教えるイベントも増えていますね。
しかし一方で、教わる人がプログラミングの醍醐味に気づき続けられるようになる機会は本当に増えているのでしょうか?
「職業プログラマ」になってもらうためには、まず「そこそこ楽しくできる」ことが必要ではないでしょうか。
じゃぁプログラミングの楽しさに気づいてもらうにはどうすればよいのでしょう。

良きメンターに教わり自らも良きメンターとなれ

そこで2つ目ですが、プログラミングコミュニティが広がるかは頼れるメンターやスターエンジニア的な人の存在にかかっていると思ってます。
自分がプログラミング習いたてのころも、優しく教えてくれた上級生や憧れのエンジニアの方がいたから続けようと思うことができたのであって、もし「そんなことは自分でググって調べろ」とか言われてたらたぶん一瞬で冷めてやめてましたよ(笑)
その後の経験からも「なんかカッコいいからプログラミングする」とか「気軽に聞ける人がいるから続けられる」って言ってる人が一定の割合いると確信しています。
ちょうどスポーツでも憧れの選手やコーチ、仲間、ライバルがいると練習を続けられるのと同じ効果ですね。
逆にファンサービスもしないしヒーローインタビューも答えないプロ野球選手なんかは、確実に野球好きの人口を減らすだけです。

あとどうしても研修や授業では、大人数・一方的・機械的な教え方になりやすいのも事実。
聞きたいことが出てきたときも心理的・物理的なハードルから聞くのをためらってしまうことって初心者には多いんです。
そういうのが積もっていってしまうと「言ってることが分からないからもう俺には無理」ってなってしまう。
でも気軽に聞けるメンターがいれば早くそういうモヤモヤを消化できるからストレスもたまらないんです。
僕も最近では「何もしてくれなくても、隣にいてくれるだけでプログラミングができるようになった気がする」と言われることさえあります(笑)

だからもしあなたがプログラミング始めたならなるべく早く頼れるエンジニアを見つけてほしいっていうのが僕の正直な願いです。
まぁそれが難しいんですけどねぇ…
やたらむやみに「聞く前にググれks」とか言う人とかにはなるべく近寄らないほうがいいよって話(笑)
逆にギークを自負する人は、プログラミングやろうとしてる人がいたら良きメンターになるように務めること
前を走ってる初心者マークの車がスピード遅くても、寛大な心で見守りむやみにクラクションを鳴らさない。

肩書きや就職のための勉強では好奇心も興味も育たない

最後にこれが、自分がずっと考えている「勉強の目的」の話とも繋がるという話です。
というのも、今の子どもや後輩の学生を見てると「別に勉強はしたくないけど、学歴は必要だし大学は行ったほうがいいから来てる」って人が多いなぁと感じるんです。
これも先程のプログラミングコミュニティの問題と、原因は同じなんじゃないかと思ったんですよ。

例えば『君東大卒なんだ、スゴイね!!』とか『早稲田の政経出身だからやっぱり賢いだよなぁ』なんて軽く口にしてしまう風潮こそ、純粋な好奇心や興味に基づく学びというものを子供から奪っているんじゃないかと。
別に成績が悪く立って、本人が楽しく勉強できてればそれでいいんじゃないですか。
それに勉強が楽しくなれば自然と成績は上がってくるもの
もっと点数ではなく本人が楽しんで取組めたかで評価してみてはどうなんでしょうか??
解き方も答えも、別にはじめからきれいだったり正解だったりする必要はないんですよ。

余談ですが、自分は自己紹介の時大学名は言わずに『何を勉強しているか』を話すようにしています。
流れで大学の話になっても、僕自身は同じ(または全く異なる)出身や分野の人にシンパシー(好奇心)を感じてるんです。
「どうして、どこに興味を持ってその分野を勉強しているか」が大事なんであって「学力的偏差値がいくらであるか」は本来問題じゃないはず。

もっと学力上げて世界的に競争しろとかいう人もいますけど、まずは自分なりの動機と方法で勉強を楽しくやってもらうことが先決じゃないですか??
教育は投資なのですぐに結果なんか出ません
だからやっぱりメンターである先生や親には辛抱強く間違えてしまっても咎めずにチャンスを与え優しく教え続ける姿勢が必要なんだと思っています。

まとめ:自分ができるベストな行動は『きっかけを与える』こと

残念ながらエンジニアコミュニティの仕組みとか教育の環境とか日本人の価値観というのはすぐには変えられません
もちろんUdacityのようなオンライン大学とかLITALICOのような新しい教育事業者みたいに、既成の価値観をぶっ壊そうとしている人とかもいますけどね。
だから僕は単純に『きっかけを与える』ことに専念しようと思います。

縁あって今は自分の大学だけでなく、中高生にもプログラミングを教える機会が増えました。
そこでは必ず「楽しそうならば一緒にやってみよう」とアドバイスしてます。
他に「やりたいこと」がある人はそっちを全力でやる方が良いし、僕はそれがない人に「1つのきっかけ」としてプログラミングを知ってもらうことが重要だと思うからです。
(若者の『やりたいことがない問題』はまた別のポストで書こうかなと思います。)

だから僕は、分かりにくい概念や横文字もたくさんある中でどんなふうに話せば相手が興味を持って知ってもらえるか、正しくはなくても何かのきっかけとしてプログラミングを知ってもらえるかを、自分なりに日々考えているわけです。
あなたのお母さんに、怒らず焦らず相手のペースでスマホやパソコンの使い方を教えられますか?
ぜひ試しにやってみてください、良いメンターになることは有益なことですが、同時にとても難しいことでもあります
それでも、たとえ僅かでもプログラミングを知らない人や初心者に楽しく興味を持ってもらうことは『一般人から見たスーパーハッカー』の役割だと思います。


UA-44092231-5
Bitnami