「プログラマが知るべき、たったひとつの大事なことがら」それは、学び続ける姿勢

プログラマが知るべき97のこと 18-学び続ける姿勢 がベースになったお話。

今回@t_wadaさんは、どんな内容のセッションにするか悩まれたそうだ。色々と人に相談する上で、「自分の話をすればいい。自分が感じてきたこと、考えてきたこと。それを話せばいい。」とまとまったという。

僕は、自分の遥か前を走ってエンジニアの人々が、どういう考えで生きてきたのか、今どういうことを考えているかに非常に興味があった。@t_wadaさんの話をベースに、自分が感じたこと、考えたことを残してみる。

3つの時代〜読む、書く、話す〜

読む時代

アウトプットせずにひたすらインプットを続けた時期。

  • やってみせること

原体験 ホームステイ先で、子供相手にマリオの無限UPをやってみせた。 人の心を掴む上で、やってみせることの重要性。

  • 完璧主義の呪い

「現実の問題を解決されるとめの絶対的に正しいモデルが存在しているはず。その綺麗な実装が思いつくまで実装してはいけない。」という呪縛に捕われる。

  • 師匠との出会い

テスト嫌いからテスト厨になるなかで、ある講演の先頭に座っている人に手当り次第に質問したという。まず、その行動力がすごい。そこで、自分の師匠となる人に出会ったという。この読む時代には、ひたすら技術書、Webサイト、ブログを読み漁り、また、技術書の写経をした。

  • 技術書の写経

技術書の「写経」の方法 1. ローカルで使える SCM を用意 2. 「ほんたった」などで対象の本を固定 3. ひたすらサンプルコードを写して実行 4. 実行するたびにコミット(コミットログにページ番号を含める) 5. 疑問点があったらコミットログや本に書き込む 6. 章ごとにタグを打つ

書く

「チームかくた」に所属すると同時にはてなダイアリー開設。ブログからTDD記事への足がかりに繋がる。 TDDの解説動画全20回もこの時期。

アウトプットが増えるとインプットが増える。さらなるアウトプットへ繋がる。

アウトプットの重要性。自分も最近実感する。

話す

原体験「やってみせる」が原点。自分の考えを伝えるためにはやってみること。TDDBootCampで渦が作れるようになってきた。TDDブートキャンプ名古屋で、自分も渦に巻き込まれて来た。

楽しい悔しいTDDBC名古屋 - ギークを夢見るじょーぶん男子

もらうばかりじゃなくて、いつかは、誰かにあげられるようになりたい

今もまだまだもらうばっかり。今の自分に出来ることは、「書く」こと。自分が体験した楽しさを他の誰かに伝えること。

学び続けるコツ

身の回りのものをプログラミングすること

  • 仕事のコード・・・技術的な冒険ができない。
  • 本業じゃないこと・・・○○を触りたいから使っている

他の文化を学ぶこと

毎年一つ新しい言語を勉強することによって、今まで使っていた言語に還元できる。

一生プログラマーでいられるかどうかは年下から学べるか否か

尊敬できる人に歳なんて関係ない。

毎年初心者に戻って、知識、技術のの棚卸しを行うべき。でも、毎年初心者に戻るといってもゼロになることは決して無い。

学びは「らせん」である。

同じところに帰って来たと思ってても、絶対に「差分」がある。この差分が暗黙知として蓄積されている。また、新しい技術でも、既存の技術と同じようなものもある。そのような場合も、1周回って来た後には、必ず何か新しいことが含まれている。その新しいことを認識できるかが大切。

まとめ・感想

@t_wadaさんでも、最初からプログラマーとして優れているわけではなかった。デスマの中、帰りの深夜バスの中で、TDDの写経を行っていたっていうエピソードを聞いて、なんだか自分が恥ずかしくなった。プログラミングに対して、特に時間を費やしてないのに、「わからない」、「難しい」なんていってる自分がいたからだ。

やることもやってないのに、プログラミング難しいって言ってる。一朝一夕では、技術は身に付かない。逆に、ここまでやって初めて技術が身に付くって言えるんだなと実感した。

今年のデブサミでも、いろんなものをもらった気がする。昨年は特に、@papandaさんから、今年は@t_wadaさんから。こういう話を聞くと、やっぱり自分がエンジニアの道を選んでよかったなって思える。昨年参加したデブサミ2010の感想デブサミの衝撃 - ギークを夢見るじょーぶん男子

渦に入ること。そして、渦を作ること。次はあなたの番です。

今まで勉強会で受け取ったものを自分も少しずつでも返していけるといいな。

参考

参考図書