Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

徒弟制度に学ぶ熟練技術者の技と心得

概要

書籍「徒弟制度に学ぶ熟練技術者の技と心得」について要点まとめ

詳細

1章

徒弟制度やアプレンティスシップ・パターンの概要。

2章

カップを空にする

パターン和名 パターン英名 要約
最初の言語 Your First Language 一定のスキルを得るまではひとつの言語に絞ること。
言語選定は師となる人物にサポートを受けられる言語がよい。
これにより学習速度は大きく向上する。
言語仕様の書籍を学習する。オープンソースのライブラリがあればソースを活用し、学習する。
白帯 The White Belf 新たな分野の初心者=白帯となることを恐れずに既存の知識に縛られずに学習すること。
情熱を放つ Unleash Your Enthusiasm 情熱を放つことをためらわない。
弟子は職人に歓迎され、職人自身の学びにもつながる
具体的スキル Concreate Skills 具体的に貢献出来るスキルが多いほど、信頼を得る可能性が高まる。
開発全体に関わるひと通りのスキルを保持していることが理想。
定期的に自分のスキルを見直すこと
無知をさらけ出す Expose Your Ignorance 知らないことを隠さずに、学習能力の高さで評価してもらう。
分からないことは質問をする。
無知な領域を自覚し、その領域を減らす努力をする
無知に向き合う Confront Your Ignorance 無知な領域を自覚し、改善すること。
Web等で調べる、「壊して良い玩具」による学習、師や仲間に教わる、等にて無知を克服する。
難しいこと The Deep End 機会を待たずに自ら挑戦すること。
高すぎる目標の場合は指導者や仲間の存在も加味して挑戦を判断する。
得意領域への撤退 Retreat into Competence 挑戦を続けた結果、自信喪失をしそうな場合は既知の領域でリフレッシュをする。
ただし本線に戻るためにも制限時間付きで行うのがよい
3章

長い道のりを歩く

パターン和名 パターン英名 要約
長い道のり The Long Road ソフトウェアの熟練者になるためには長期間を要する。
自分の地図を描いくこと。
目先の給与や昇進にとらわれないこと。それらはあくまで技術を身につけた先の副産物である。
芸術より技芸 Craft over Art あくまで顧客の要望を満たすために開発し、その成果として報酬を受けていることを忘れない。
持続可能なモチベーション Sustainable Motivations 好きなことをすることは自然とモチベーションを保ち、積極性を産む
情熱を育む Nurture Your Passion 開発への情熱を増大させるように手段を講じる。
業務上の制限の範囲で出来るだけ情熱を保ち、必要であれば業務外で補完する。
ユーザーグループへの参加。ブログの作成。古典の学習。自分の地図を描くことなどによって情熱を増大させる
自分の地図を描く Drow Your Own Map 長期的な利益を考慮してキャリアを選択する
肩書きを利用する User Your Title 自身の能力と差異のある肩書きに影響を受けないようにする。指導者や気の合った者同士との繋がりがその差異を近付ける。
現場に留まる Stay int the Trenches 熟練者になるためのキャリアパスを確保するために雇用主と取り組み、理解を得られないならば他の機会を求めること。
別の道 A Different Road 自らの意思で他の道に挑む際にはソフトウェア開発で得た知識を無駄にするわけではない
4章

正確な事故評価

パターン和名 パターン英名 要約
最低である Be the Worst 自分よりも優れた開発者に囲まれることは自らを大きく成長させる
良き指導者を見つける Find Mentors 良い指導者を得ることで成長を加速させることが出来る。
しかし熟練技術者が少ないこと、弟子を迎えることを承認してもらうなど困難は付きそう。
解決する一つの方法は活動の盛んな開発コミュニティに参加すること
気の合った者同士 Kindred Spirits 上下関係のない気の合った者同士は徒弟とはまた異なった利点があるため相互補完すると効果的である。
指導者を得る手段同様、開発コミュニティへの参加などにより仲間を作る
同席する Rubbing Elbows 指導者や気の合った者同士で密接に同席して共同作業をすることで得られる知識は豊富にある。
ペアプログラミングを行う機会を得る・もしくは作りだすこと
床を拭く Sweep the floor 地味だが必要な作業を行い、信頼を得る。
5章

永遠の学習

パターン和名 パターン英名 要約
処理能力を広げる Expand Your Bandwidth 書籍・動画・コミュニティ等への参加により処理能力を広げる
練習、練習、練習 Practice, Practice, Practice 時間に終われず、失敗可能な環境=業務外の時間を活用して腕を磨くこと。
壊して良いオモチャ Breakable Toys オモチャのシステムを構築して失敗する。
成功を得るには失敗を乗り超える必要がある。
自分用の独自システム・ツールを構築するのがよい
ソースを活用する User the Source 他人のコードを読み、コードの書き方・考え方・小さなテクニックを身につける。
身近に対象となるような手本のコードがなければGitHubなどを利用する
自分の仕事を省みる Reflet As You Work ただ年を重ねるだけにならないようにスキルを積み上げていることを確認する
学びを記録する Record What You Learn 日記・Wiki・ブログなどに学習記録を残す
学びを共有する Share What You Lean ブログ・雑談などにより気の合った者同士で学びを共有する。
フィードック・ループを構築する Create Feedback Loops xUnitによるテスト、レビューなどによるフィードバックを得る。また直接関係者に聞く。
失敗から学ぶ Learn How You Fail 失敗を自覚することで、自己の境界・限界を認識し、改善する
6章

自分のカリキュラムを作る

パターン和名 パターン英名 要約
読書リスト Leading List 読書リストを作成し、公開する。
継続した読書 Read Constantly 新たな技術を習得することが出来る。
常に薄い書籍を1冊保持する=>外出先での隙間時間学習
古典を学ぶ Study the Classics 寿命の長い古典書籍は、ずっと変わらない価値のある内容を持つ。
徹底的に調べる Dig Deeper 物事の仕組みがわかるま徹底的に調べること。
精通したツール Familiar Tools ツールへの知識は生産性を高める。ツールの置き換えを恐れない
7章

結論:略

参考書籍

アプレンティスシップ・パターン ―徒弟制度に学ぶ熟練技術者の技と心得 (THEORY/IN/PRACTICE)

アプレンティスシップ・パターン ―徒弟制度に学ぶ熟練技術者の技と心得 (THEORY/IN/PRACTICE)