明けましておめでとうございます(もう 6 日ですが)。私は明日から正式に仕事初めです。
最近思うこと
私は 2014 年に最初の会社に入社して社会人になったので,今年で社会人 5 周年ということになります。ソフトウェアエンジニアとして働いたこの 5 年間は,優秀な上司,刺激的な同僚に恵まれたこともあり,充実の毎日でした。5 年という節目もあり,私の現時点の考えをブログに記録しておこうと思います。
良いプログラマになるために
Web の技術は現在も急速に発展を続けています。私にとっては勉強と驚きの毎日です。その一方で,「勉強しなければ周りについていけないのでは」という,一種の強迫観念を抱く人も多いのではないかと感じます。
私の好きな記事を紹介します。Andre Staltz 氏のブログ記事です。
André Staltz - The single tip that made me a better programmer
良いプログラマになるためと唯一の Tip とは
Gain a deeper understanding of the system.
「より深い理解を得ること」なのです。
私は不調な時期に焦りを感じるときがあります。特に,難しい概念を理解しようとして何日も何ヶ月も奮闘しているときは一日の終わりに「今日もなんの成果も得られなかった」という虚無と焦りを感じることがありました。そんな時はこれを思い出すようにしています。自分が理解できるのでなければ楽しくないのです。楽しく働くためには「完全に理解」することです。
手を汚して理解する
自分の手を動かすことの重要性はいくら強調してもしすぎることはないでしょう。一見自明と思えることでさえも,実際に自分の手で動かしてみると新たな発見や洞察を得たりするものです。
年末休みの課題図書に伊藤 清氏のエッセイ集を読みました。
大学院で確率過程を学んでいたこともあってこの本を手にとって読んでみた次第です。私は数学に関しては浅学なので,ところどころ素人理解なまま読み終えました。その中で印象的だったエッセイがあったのでその内容を紹介します。(※ 抜粋ではなく私なりの解釈を含みます)
純粋数学と応用数学。純粋数学が先にあり,その後に続いて応用数学があるように聞こえるが,そうではない。諸科学に接する部分は応用数学であり,そこでの考察を経て新しい概念の発生が純粋数学へと繋がるのです。
私はこれを読んだときに,ソフトウェアにも似たようなことが言えるのではないかと思いました。美しいアーキテクチャや理論は,実装や運用上の問題に対する理解が先にあるべきです。設計の話ばかりで実際に手を動かさないでいる時は要注意です。
教育と成長
私くらいの年齢になると,後輩エンジニアの教育をする機会も増えてきます。すでに知られているように,「後輩の成長」は「自分自身の成長」です。自分の知見を惜しみなく伝えること,疑問や課題を発見し議論すること,新たな視点を得ること,その全てが成長に必要だと思っています。
私が教育する立場にあるときに意識しているたったひとつのことは「モチベーションを低下させない」です。後輩たちは押し並べて優秀です。私が彼らに与えられるものはモチベーションだと思っています。
後輩のモチベーションを低下させる教育者の行動アンチパターンを挙げるとすると
- イライラしている。
- 与えた課題を取り組む前から「簡単」という。
- 作業内容をチェックしない。
などです。
楽しくないなら意味がない
楽しくなければ意味がないと思っています。楽しむための努力を惜しまないべきです。良いものをつくるためにはそうだと思います。
今年もよろしくお願いします。