So-net無料ブログ作成
検索選択

Deliberate Practice [プログラマー現役続行]


Chapter 2 「Technical Excellence」には、Deliberate Practiceと題して、次のように述べられています。
the people who excel are the ones who work the hardest. They have to put in a good ten years of deliberate practice to become experts. Deliberate practice is not about putting in hours, it’s about deliberately working to improve performance. Deliberate practice has these characteristics:

秀でている人たちは、最も勤勉に行っている人達です。彼らは、専門家になるために入念な訓練を10年間行わなければなりません。入念な訓練とは、単に時間を過ごすということではなく、パフォーマンスを改善するために入念に取り組むことです。入念な訓練は、次の性格を持っています。
  1. Identify a specific skill that needs improvement.
    改善が必要なスキルを特定する。
  2. Devise – or learn from a teacher – an exercise designed to improve the skill.
    スキルを向上する練習を考える、あるいは、先生から学ぶ。
  3. Practice repeatedly.
    繰り返し練習する。
  4. Obtain immediate feedback on the results of each effort and adjust accordingly.
    努力の結果に対するフィードバックをすぐに受け取り、それに合わせて軌道修正する。
  5. Concentrate on pushing the limits – expect repeated failures.
    自分の限界を伸ばすことに集中する、つまり、繰り返し失敗する。
  6. Practice regularly and intensely – perhaps three hours a day.
    定常的に集中して訓練する。おそら、一日3時間。
Deliberate practice does not mean doing what you are good at; it means challenging yourself, doing what you are not – yet – good at. So it’s not necessarily fun. Keeping up this kind of practice day in and day out requires passion on the part of the participant. It also requires encouragement from people who matter (parents and peers, for example), and a teacher who can identify the skills to be improved and knows the latest practice techniques (at least at first)

入念な訓練とは、自分が得意とすることを行うことではありません。まだ得意ではないことを行うことで、自分自身に挑戦することです。したがって、必ずしも楽しいとは限りません。来る日も来る日もこのような訓練を継続し続けるには、情熱が求められます。さらに、訓練していることに関心を持ってくれている人々(たとえば、両親や仲間)からの励ましが必要ですし、改善すべきスキルを特定できて最新の訓練技術を知っている先生を(少なくとも最初は)必要とします。
ソフトウェアエンジニアの心得」教育や講演では、一人前になるには10年を要すると説明しています。そして、単に10年間過ごせば良いのではなく、様々なことを学びながら、学んだことを実践し、自分の技量を伸ばす努力を10年間行って、一人前という話をしています。まさに、同じことが、ここでは明確に述べられています。

「プログラミング言語Java」教育 [プログラミング言語Java教育]

私にとっては通算で第11期になりますが、今の会社で第1期となる「プログラミング言語Java」の教育コースを2010年1月から開始します。受講生は入社3年以内の若い人達です。

一年間の長い教育コースですが、来年の12月には全員が修了してくれて、開発の現場で活躍してくれるのを期待しています。

このコースを通して、若い時に、1つのプログラミング言語を徹底的にきちんと学ぶことで、将来の成長の基礎が身についてくれればと思っています。

第10期「プログラミング言語Java」教育終了

(株)アットウェア様のセミナーのブログ [プログラマー現役続行]

11月20日に(株)アットウェア様のセミナーで話をしましたが、その時の話が書かれています。

http://www.atware.co.jp/column/backnumber/20091126.html
http://www.atware.co.jp/blog/blog04/200911/post-53.html

普通の2時間版の「ソフトウェアエンジニアの心得」を2010年1月、2月、3月に社内向けに10週連続で開催することを現在検討中です。

技術書の読書会 [プログラマー現役続行]

先週から木曜日の始業前の1時間だけですが、技術書の読書会に参加(?)しています。いつもなら、その一時間は、会社の最寄り駅マクドナルド翻訳作業をしているのですが、木曜日はまっすぐ会社に向かいます。

(「継続した学習」、「生産性の向上」、「業務を通した学習の落とし穴」、「自己啓発が組織を導く」、「勉強会一覧」、「Invest in Your Intelligence」、「継続した学習とプログラミングの楽しみ」、「ソフトウェアエンジニアの成長カーブ」、「技術書の理解レベル(1)」)

テスト駆動開発の先駆者はDijkstra! [プログラマー現役続行]


第1章は、あまり頭の中に入ってこなかったのですが、2章「Technical Excellence」は読んでいて、非常に面白いです。まだ、全部読み終えていないのですが、色々と面白いことが書かれています。

今日のテスト駆動開発の先駆者は、あのEdsger W. Dijkstraであり、1968年に彼が書いた"A Constructive Approach to the Problem of Program Correctness"にその原型が述べられているとのこと。

そのDijkstraの考えをきちんと理解して実践したのがHarlan Millsであり、その結果が、Top Down Programmingとの。ただし、それは、"stepwise integration"を同時に行うことも含まれていたようです。つまり、今日で言えば、continuous integrationそのものであったということです。

残念ながら、"Structured Programming"や"Top Down Programming"という言葉だけが広まり、テスト駆動開発的側面やContinuous Integrationの側面は、正しく理解されなかったようです。

時代が時代だけに、その理由が次のように述べられています。
The theories of Dijkstra and Mills - build code from the point of view of provability and avoid big-bang integration - were difficult to apply in practice, especially with the computers and tools that were available at the time. Without a good implementation of these core technical fundamentals, structured programming lost some of its potential, and it never quite lived up the the hype that made it so popular in the first place.
赤字の部分は、簡単に言えば、「テストファーストでContinuous Integrationでコードを開発する」ということです。

API設計の基礎(仮題)(3) [API設計の基礎]

書籍翻訳を始めたため進んでいませんが、今までのフィードバックを反映しました。


翻訳の合間に、第2章に着手したいと思っています。

PDF版:『Java 2 Standard Edition 5.0 Tiger』 [Java]

Java 2 Standard Edition 5.0 Tiger―拡張された言語仕様について

Java 2 Standard Edition 5.0 Tiger―拡張された言語仕様について


印刷可能にしました。個人で学習するための印刷以外の用途には使用しないでください。


(株)アットウェア様のセミナーで話をします [プログラマー現役続行]

今日は、夜7時から話をします。

https://web.archive.org/web/20100214074600/http://www.atware.co.jp/seminar/summary/summary20091120.html

5時半に仕事を終えて行けば間に合います。電車が遅れたりしないと良いのですが。

書籍『Leading Lean Software Development』 [プログラマー現役続行]


注文していた書籍が届きました。いつものことですが、読むべき本が増え続けており、読むスピードが追いつかないです。

50歳になりました [プログラマー現役続行]

今日で、50歳になりました。時の流れは速いです。