書籍『Clean Coder プロフェッショナルプログラマへの道』 [プログラマー現役続行]
知識への投資 [プログラマー現役続行]
この書籍の18番目にベンジャミン・フランクリンの次の言葉が挙げられています。
知識への投資は、常に最高の利息がついてくる。これは、「ソフトウェアエンジニアの心得」の教育や講演で紹介している言葉です。そして、本書では著者の次の言葉掲載されています。政治家/ベンジャミン・フランクリン
典型的な一日を思い浮かべてみて。英語に関して言えば、やはり、どこかでコツコツ続けて、今まで歩いていた高原より、さらに高い高原を歩いていることに気付く日が来るのかもしれません。
その君の一日の中で、勉強にあてられている時間は、どれくらいある?
たとえば、典型的な一日の中に、英語の勉強が入っていない人は、
一生、英語をモノにできないんだよ。
毎日、少しずつなにかを進めることができるスキルほど、
重要なことはないよ。
英語ができる人が評価されるのは、
それが、コツコツやるっていうスキルの証明だからだよ。酒井 穣、『君を成長させる言葉』(p.49)
技術者として、業務に関連しないけど興味がある技術を自分の時間を使って学ぶことは、決して無駄になることはありません。そこで学んだことがどこかで役立つ日が来ます。
土曜日の勉強会 [プログラマー現役続行]
技術の勉強会としては、普段は平日の早朝に毎週行っているのが中心なのですが、土曜日に勉強会を開催したり、参加したりしています。
毎月土曜日に月1回、朝9時から5時まで開催したことがあるのが、『Understand Linux Kernel』を英語で読む勉強会でした。これは、途中で翻訳が出版されたので、日本語版を持ってくるのもOKということで続けて、結局読み終えるまでに3年を要しました。
第13期「プログラミング言語Java」コースは、私にとっては勉強会ではありませんが、土曜日に開催しました。
2010年8月か9月から月1回、午後だけなのが、プログラミング言語Goの勉強会です。プログラミング言語Goは、正式バージョンであるVersion 1がもうすぐリリースされる言語です。こちらの勉強会は特にテーマを決めていないため、毎回アドホックな内容となっています。参加者は、私を除けば、社内の若手エンジニアです。
今日では、技術者のコミュニティを中心としたオープンな様々な勉強会が開催されており、参加されている人も多いのではないでしょうか。
毎月土曜日に月1回、朝9時から5時まで開催したことがあるのが、『Understand Linux Kernel』を英語で読む勉強会でした。これは、途中で翻訳が出版されたので、日本語版を持ってくるのもOKということで続けて、結局読み終えるまでに3年を要しました。
第13期「プログラミング言語Java」コースは、私にとっては勉強会ではありませんが、土曜日に開催しました。
2010年8月か9月から月1回、午後だけなのが、プログラミング言語Goの勉強会です。プログラミング言語Goは、正式バージョンであるVersion 1がもうすぐリリースされる言語です。こちらの勉強会は特にテーマを決めていないため、毎回アドホックな内容となっています。参加者は、私を除けば、社内の若手エンジニアです。
今日では、技術者のコミュニティを中心としたオープンな様々な勉強会が開催されており、参加されている人も多いのではないでしょうか。
レビューのアウトプットは、レビューアのレベルを超えない(まとめ) [プログラマー現役続行]
コードレビューに関する記事「レビューのアウトプットは、レビューアのレベルを超えない」をまとめてみました。
- レビューのアウトプットは、レビューアのレベルを超えない
- レビューのアウトプットは、レビューアのレベルを超えない(2)
- レビューのアウトプットは、レビューアのレベルを超えない(3)
- レビューのアウトプットは、レビューアのレベルを超えない(4)
- レビューのアウトプットは、レビューアのレベルを超えない(5)
コードを理解せずにコピーしない [プログラマー現役続行]
コードレビューをしていると、ちょっとおかしな実装に対して、どうしてそのような実装になっているのですかと聞くと、「参考にした既存コードがそうなっていました」と回答する人がいたりします。それで、よく調べてみると実装が間違っていたり、運良く動作しているだけだったりすることがあります。
このように、処理内容を理解することなく既存コードをコピーする人は、スキルレベルが低い人が多いです。「ソフトウェア・スキル・インデックス」で言えば、レベル2(見習い)でしょうか。
書籍に掲載するサンプルコードの場合には、誌面の都合もあり、エラー処理などを考慮すると必ずしも適切なコードになっていないことがあります。ライブラリーやSDKなどの参考使用例として、Javadocでクラスの使用例を書いたり、あるいは、サンプルコードを添付するような場合には、それらのコードがコピーされることを念頭に置いておく必要があります。「サンプル」だからということで手抜きの悪いコードを書くのではなく、むしろ「模範コード例」というぐらいの意識を持って書く必要があります。
残念ながらスキルレベルが低い人が多いソフトウェア開発組織では、良いコードも悪いコードもコピーされてしまいます。良いコードならまだしも、悪いコードが蔓延してしまうと技術的負債が蓄積されていくことになります。
(「ソースコードに技術者のレベルが現れる」)
このように、処理内容を理解することなく既存コードをコピーする人は、スキルレベルが低い人が多いです。「ソフトウェア・スキル・インデックス」で言えば、レベル2(見習い)でしょうか。
書籍に掲載するサンプルコードの場合には、誌面の都合もあり、エラー処理などを考慮すると必ずしも適切なコードになっていないことがあります。ライブラリーやSDKなどの参考使用例として、Javadocでクラスの使用例を書いたり、あるいは、サンプルコードを添付するような場合には、それらのコードがコピーされることを念頭に置いておく必要があります。「サンプル」だからということで手抜きの悪いコードを書くのではなく、むしろ「模範コード例」というぐらいの意識を持って書く必要があります。
残念ながらスキルレベルが低い人が多いソフトウェア開発組織では、良いコードも悪いコードもコピーされてしまいます。良いコードならまだしも、悪いコードが蔓延してしまうと技術的負債が蓄積されていくことになります。
(「ソースコードに技術者のレベルが現れる」)
英語とTOEIC [英語]
会社で2年以内のTOEICの成績を登録する必要があったので、4年半振り(「TOEICを受験」「TOEICの結果」)にTOEICを受験しました。
初めてTOEICを受験したのは、1984年に社会人になった頃なので24歳か25歳の時なのですが、その時の得点は合計が600点だったことだけを覚えています。その4年後の1988年には700点台だったことしか覚えていません。それ以降は1994年からしか手元にスコアーが残っていませんので、いつ初めて800点台、900点台を取ったのかは覚えていません。
当たり前ですが、TOEICを受験したからと英語力が伸びるのではありません。普段の継続した英語への取り組みの結果として能力が伸びるのであって、その伸びをある程度客観的に知るためにTOEICを受ける訳です。私自身は、TOEICを受験するからとTOEIC対策本を勉強するなどは行ったことがありません。
言い換えると、組織のメンバーの英語力を向上させるためにTOEIC受験を必須としても英語力が伸びることはありません。前職では自分の部門のメンバーには半年に1回社内TOEICを必ず受験させて、英語力の伸びを見ていたのですが、普段ほとんど努力していない人は、やはり伸びていきません。
私自身は、1999年頃から英語の技術書を使用した勉強会をずっと開催しています。前職では部門長として強制的に新卒新人は参加させることも行ってきました。そのような勉強会で英語力が伸びる人もいますが、どちらかと言えば、「技術書を英語で読むことに躊躇しない」程度の効果しかなかったりします。
個人としては、技術書やペーパバックを英語で読んだり、聞き取れなくても多くの英語を聴いたりなどの活動を継続的に行う必要があります。組織としては個人のそのような活動を促進あるいは強制する施策を行わなければ、TOEIC点数の保持率を100%にしても、メンバーの英語力が伸びることはありません。
初めてTOEICを受験したのは、1984年に社会人になった頃なので24歳か25歳の時なのですが、その時の得点は合計が600点だったことだけを覚えています。その4年後の1988年には700点台だったことしか覚えていません。それ以降は1994年からしか手元にスコアーが残っていませんので、いつ初めて800点台、900点台を取ったのかは覚えていません。
受験日 | Listening | Reading | Total |
1994/11/13 | 450 | 450 | 905 |
1995/5/28 | 470 | 460 | 930 |
1998/12/7 | 455 | 450 | 905 |
1999/6/8 | 470 | 420 | 890 |
1999/11/9 | 475 | 440 | 915 |
2000年5月 | 475 | 450 | 925 |
2000年12月 | 495 | 470 | 965 |
2003/05/25 | 490 | 475 | 965 |
2003/07/27 | 495 | 440 | 935 |
2003/10/26 | 455 | 450 | 905 |
2004/03/28 | 495 | 460 | 955 |
2007/09/30 | 465 | 450 | 915 |
2012/01/17 | 455 | 470 | 925 |
2016/08/9 | 470 | 470 | 940 |
当たり前ですが、TOEICを受験したからと英語力が伸びるのではありません。普段の継続した英語への取り組みの結果として能力が伸びるのであって、その伸びをある程度客観的に知るためにTOEICを受ける訳です。私自身は、TOEICを受験するからとTOEIC対策本を勉強するなどは行ったことがありません。
言い換えると、組織のメンバーの英語力を向上させるためにTOEIC受験を必須としても英語力が伸びることはありません。前職では自分の部門のメンバーには半年に1回社内TOEICを必ず受験させて、英語力の伸びを見ていたのですが、普段ほとんど努力していない人は、やはり伸びていきません。
私自身は、1999年頃から英語の技術書を使用した勉強会をずっと開催しています。前職では部門長として強制的に新卒新人は参加させることも行ってきました。そのような勉強会で英語力が伸びる人もいますが、どちらかと言えば、「技術書を英語で読むことに躊躇しない」程度の効果しかなかったりします。
個人としては、技術書やペーパバックを英語で読んだり、聞き取れなくても多くの英語を聴いたりなどの活動を継続的に行う必要があります。組織としては個人のそのような活動を促進あるいは強制する施策を行わなければ、TOEIC点数の保持率を100%にしても、メンバーの英語力が伸びることはありません。