So-net無料ブログ作成
検索選択
前の10件 | -

書籍『Clean Coder プロフェッショナルプログラマへの道』 [プログラマー現役続行]

Clean Coder プロフェッショナルプログラマへの道

Clean Coder プロフェッショナルプログラマへの道


以前、紹介した書籍翻訳本が出版されるようです。
お勧めの書籍です。

知識への投資 [プログラマー現役続行]

君を成長させる言葉

君を成長させる言葉


この書籍の18番目にベンジャミン・フランクリンの次の言葉が挙げられています。
知識への投資は、常に最高の利息がついてくる。
政治家/ベンジャミン・フランクリン
これは、「ソフトウェアエンジニアの心得」の教育や講演で紹介している言葉です。そして、本書では著者の次の言葉掲載されています。
典型的な一日を思い浮かべてみて。
その君の一日の中で、勉強にあてられている時間は、どれくらいある?
たとえば、典型的な一日の中に、英語の勉強が入っていない人は、
一生、英語をモノにできないんだよ。
毎日、少しずつなにかを進めることができるスキルほど、
重要なことはないよ。
英語ができる人が評価されるのは、
それが、コツコツやるっていうスキルの証明だからだよ。
酒井 穣、『君を成長させる言葉』(p.49)
英語に関して言えば、やはり、どこかでコツコツ続けて、今まで歩いていた高原より、さらに高い高原を歩いていることに気付く日が来るのかもしれません。

技術者として、業務に関連しないけど興味がある技術を自分の時間を使って学ぶことは、決して無駄になることはありません。そこで学んだことがどこかで役立つ日が来ます。

土曜日の勉強会 [プログラマー現役続行]

技術の勉強会としては、普段は平日の早朝に毎週行っているのが中心なのですが、土曜日に勉強会を開催したり、参加したりしています。

毎月土曜日に月1回、朝9時から5時まで開催したことがあるのが、『Understand Linux Kernel』を英語で読む勉強会でした。これは、途中で翻訳が出版されたので、日本語版を持ってくるのもOKということで続けて、結局読み終えるまでに3年を要しました。

第13期「プログラミング言語Java」コースは、私にとっては勉強会ではありませんが、土曜日に開催しました。

2010年8月か9月から月1回、午後だけなのが、プログラミング言語Goの勉強会です。プログラミング言語Goは、正式バージョンであるVersion 1がもうすぐリリースされる言語です。こちらの勉強会は特にテーマを決めていないため、毎回アドホックな内容となっています。参加者は、私を除けば、社内の若手エンジニアです。

今日では、技術者のコミュニティを中心としたオープンな様々な勉強会が開催されており、参加されている人も多いのではないでしょうか。

レビューのアウトプットは、レビューアのレベルを超えない(まとめ) [プログラマー現役続行]

コードレビューに関する記事「レビューのアウトプットは、レビューアのレベルを超えない」をまとめてみました。
関連するものとして

コードを理解せずにコピーしない [プログラマー現役続行]

コードレビューをしていると、ちょっとおかしな実装に対して、どうしてそのような実装になっているのですかと聞くと、「参考にした既存コードがそうなっていました」と回答する人がいたりします。それで、よく調べてみると実装が間違っていたり、運良く動作しているだけだったりすることがあります。

このように、処理内容を理解することなく既存コードをコピーする人は、スキルレベルが低い人が多いです。「ソフトウェア・スキル・インデックス」で言えば、レベル2(見習い)でしょうか。

書籍に掲載するサンプルコードの場合には、誌面の都合もあり、エラー処理などを考慮すると必ずしも適切なコードになっていないことがあります。ライブラリーやSDKなどの参考使用例として、Javadocでクラスの使用例を書いたり、あるいは、サンプルコードを添付するような場合には、それらのコードがコピーされることを念頭に置いておく必要があります。「サンプル」だからということで手抜きの悪いコードを書くのではなく、むしろ「模範コード例」というぐらいの意識を持って書く必要があります。

残念ながらスキルレベルが低い人が多いソフトウェア開発組織では、良いコードも悪いコードもコピーされてしまいます。良いコードならまだしも、悪いコードが蔓延してしまうと技術的負債が蓄積されていくことになります。

(「ソースコードに技術者のレベルが現れる」)

英語とTOEIC [英語]

会社で2年以内のTOEICの成績を登録する必要があったので、4年半振り(「TOEICを受験」「TOEICの結果」)にTOEICを受験しました。

初めてTOEICを受験したのは、1984年に社会人になった頃なので24歳か25歳の時なのですが、その時の得点は合計が600点だったことだけを覚えています。その4年後の1988年には700点台だったことしか覚えていません。それ以降は2003年からしか手元にスコアーが残っていませんので、いつ初めて800点台、900点台を取ったのかは覚えていません。

受験日 Listening Reading Total
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

当たり前ですが、TOEICを受験したからと英語力が伸びるのではありません。普段の継続した英語への取り組みの結果として能力が伸びるのであって、その伸びをある程度客観的に知るためにTOEICを受ける訳です。私自身は、TOEICを受験するからとTOEIC対策本を勉強するなどは行ったことがありません。

言い換えると、組織のメンバーの英語力を向上させるためにTOEIC受験を必須としても英語力が伸びることはありません。前職では自分の部門のメンバーには半年に1回社内TOEICを必ず受験させて、英語力の伸びを見ていたのですが、普段ほとんど努力していない人は、やはり伸びていきません。

私自身は、1999年頃から英語の技術書を使用した勉強会をずっと開催しています。前職では部門長として強制的に新卒新人は参加させることも行ってきました。そのような勉強会で英語力が伸びる人もいますが、どちらかと言えば、「技術書を英語で読むことに躊躇しない」程度の効果しかなかったりします。

個人としては、技術書やペーパバックを英語で読んだり、聞き取れなくても多くの英語を聴いたりなどの活動を継続的に行う必要があります。組織としては個人のそのような活動を促進あるいは強制する施策を行わなければ、TOEIC点数の保持率を100%にしても、メンバーの英語力が伸びることはありません。

第14期「プログラミング言語Java」コース終了 [プログラミング言語Java教育]

私にとっては第14期になるリコーITソリューションズ社向けのプログラミング言語Javaコースが終了しました。最終の成果発表会には、1名が出張先の福岡からテレビ会議で参加となりましたが、6名の受講生に一年間の振り返りと発表と最終課題のデジタル時計のデモを行ってもらいました。

2011年度入社の若手社員7名や受講生が所属する部署の上司など多くの人々が参加され、受講生の発表内容やデジタル時計に対する質問やコメントが活発に交わされました。過去14回で、受講生以外でもっとも多くの人が参加して成果を聞いてもらった成果発表会でした。

第14期Java研修1.jpg
第14期生

第14期Java研修2.jpg
成果発表会出席者と第14期生

現在、第15期も社内で開催していますが、リコーITソリューションズ社向けとしての第16期は2012年4月から開講する予定です。

書籍『iOSプログラミング 第2版』 [本]

iOSプログラミング 第2版

iOSプログラミング 第2版


初版は翻訳されていませんが、第2版が翻訳されて出版されます。初版は、『iPhone Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides)』ですが、第2版ではタイトルを変更して『iOS Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides)』となっています。

訳者は3名であり、Amazon.co.jpには次のように紹介されています。
訳者について

木南 英夫  東海大学大学院で電気工学科修士課程を修了。現在富士ゼロックス株式会社にて同社提供のクラウドサービスSkyDeskのiOSアプリケーション開発に従事する。 著書として『Google Android アプリケーション開発入門 画面作成からデバイス制御まで--基本機能の全容』( 日経BP 社) など。

上堀 幸代  筑波大学大学院理工学研究科修士課程終了。現在富士ゼロックス株式会社にて現在同社提供のクラウドサービスSkyDeskのiOSアプリケーション開発に従事する。

内橋 真吾  東京大学大学院工学系研究科情報工学専攻(修士)修了。富士ゼロックス株式会社入社以来、同社研究所およびFX Palo Alto Laboratory,Incにて、主にマルチメディア技術の研究に従事。
実際に、日々の開発業務でiOSを使用して開発をされている人達です。

第2版は、初版と比較すると内容が非常に分かりやすくなっており、iOSでプログラミングする人にはお勧めの書籍だと思います。各章の概要は、木南英夫さんのブログを参照してください。

書籍『Go言語プログラミング入門 on Google App Engine』 [本]

Go言語プログラミング入門on Google App Engine

Go言語プログラミング入門on Google App Engine

  • 作者: 横山 隆司
  • 出版社/メーカー: 秀和システム
  • 発売日: 2011/12
  • メディア: 単行本

今年9月23日(金)のオープンセミナー@香川の懇親会で、著者の横山さんからGo言語でのGoogle App Engineの本を執筆中と聞いた本です。目次は、以下の通りです。
Chapter 1 はじめに
Chapter 2 開発環境の構築
Chapter 3 Go言語の基礎
Chapter 4 Google App Engine API
Chapter 5 Google App Engine for Goを使ったWebアプリケーション作成
補章 今度のSDKの変更と、APIの追加に備えて
目次を見て分かるようにGo言語そのものの解説はChapter 3だけであり、Google App Engineに関するページの方が多いです。

Go言語がどのようなものであるかの基本を知るには、Chapter 3を読むことで学ぶことができますが、本格的にGo言語でプログラミングする場合には、「The Go Programming Language Specification」、「Effective Go」、「A Tutorial for the Go Programming Language」なども一読されると良いでしょう。

本書の正誤表に関しては、著者の横山さんのブログをチェックされると良いかと思います。

Go言語は、来年初めにGo version 1がリリースされて、正式に言語の互換性を保証するようになります。それに合わせて執筆が進められている英語の書籍もあります。しかし、日本語でGo言語とGoogle App Engineの両方を学べる本は、今はこの本しかありません。

ソースコードに技術者のレベルが現れる [プログラマー現役続行]

新規に書かれたソースコードを見ると、それを書いた技術者のレベルがある程度分かります。特に、レベルが低いエンジニアが書いたコードほど、よく分かります。レベルが低いというのは、全くの初心者という意味ではありません。社会人となってソフトウェア開発に従事して数年を経過して、本人はプログラミングできると思って書いているレベルであっても、書かれたコードを見ると、レベルが低いということです。

レベルが低い大きな理由の1つは、自分が書いたコードをスキルが高い人にレビューしてもらうという習慣を本人が持たないし、組織も持たないからです。もう1つの大きな理由は、使用しているシステムや開発言語に関した、きちんとした学習をしていないということも挙げられます。

※ たとえば、Java言語で開発していても『Effective Java』を読んだことさえないとか。

「初心者だからと言って汚いコードを書くことが許される訳ではない」ということで、レビューによって初心者が書いたコードの品質を上げる努力を組織として継続している場合には、本人の勉強不足はレビューによる指摘によって補われ、コードには現れないかもしれません。しかし、レビューをきちんとしない組織では、本人のレベルと学習不足ははっきりとコードに現れます。

つまり、ソフトウェア開発組織の成果物であるソースコードを見ていけば、その組織を構成するエンジニアのレベルがある程度分かってしまうということです。しかし、幸か不幸か、通常の企業活動におけるソフトウェア開発ではソースコードが外部へ公開されることはありませんので、外部からその開発組織に属するエンジニアのレベルを知ることはできません。

しかし、その開発組織のトップやリーダはソースコードを見ることができる訳ですから、ソースコードを見て自分の組織に属しているメンバーのレベルを知ることはできます。あるいは、業務委託先から納品されたソースコードを見れば、その業務委託先のレベルは分かったりします。ただし、見て判断できるレベルの人が見ればですが。

ソフトウェアエンジニア個人としては、自分が書くソースコードは、自分のスキルレベルを写し出すものだと認識することが重要です。
前の10件 | -