digest_of_the_pragmatic_programmers
先んずるか、やられるか
・テクノロジを年齢と採用状況でグラフ化し、自分の得意または興味のあるテクノロジに印をつけてみる
コーディングはもう武器にならない
・テクノロジがどういう風にビジネスに役立っているか、詳しい人を捕まえて聞いてみる ・勤務先の業界のニュースを定期的にチェックし、どんなニュースが大きく取り上げられているかに注目してみる ・そうすることで業界の問題、話題がわかる、自分の仕事や会社にそう影響するかも考えてみる
一番の下手くそでいよう
・自分にとって「一番下手くそになる」状況を見つける ・会社でもオープンソースプロジェクトでもいい、自分の「次の階段」の開発者たちがいるプロジェクトを選ぶ ・直接話ができなくても、遠くにいる先輩たちから多くを学べる
自分の知性に投資しよう
・知っている言語と発想のちがう新しい言語を学ぼう ・達人になる必要はない、十分な量のコードを書いて、読んで、プログラミング環境のちがいをしっかり感じ取ろう ・その言語のイディオム(慣用句)を学ぶように努めよう
親の言うことを聞くな
・キャリアに関して、これまで不安に感じたことを書き出そう ・どのくらい不安に左右されたか、不安がなかったらどうしていたか、それを覆すことはできるだろうか
万能選手になろう
・仕事の分野ごとに自分の得意な技術、学ぶべき技術を書き出そう ・少しでも時間ができたら学ぶべき技術を実践しよう、何かを読むだけでは不十分、実際にやってみよう
スペシャリストになろう
・仮想マシン、コンパイル、外部ライブラリのインポート、OS、などの仕組みを学ぶことで、本物のスペシャリストに近づくことができる ・追求したいテクノロジについて、人に教える機会を見つけよう、人に教えることは自分が学ぶための最善の方法である
自分の人生を他人任せにするな
・自分が常用しているテクノロジと、その対抗馬となるテクノロジを使った2つの小さなプロジェクトに取り組んでみよう
愛せよ、さもなくば捨てよ
・本当に情熱の持てる仕事を探そう ・毎朝その日のやる気度合いを10点満点で採点しよう(出勤するより病気になりたいなら1点、仕事を済ませたくて仕方がないほどなら10点) ・そして、毎朝「明日どうやって10点を取るか、そのために今日何をしたらいいか」考えよう
魚の釣り方を学ぶ
・「なぜ」「どうして」を考えて繰り返す ・自分が仕事の中で完全に理解していないことに対して、「仕組みはどうなっているのか」「どうしてそうなるのか」を考えよう ・この考え方そのものが、新しい考え方をもたらし、現場に対して高い意識を持てるようになる ・いつも使っているツールの中から「重要だけどあまり使い込んでいないツール(VMS、エディタ、ライブラリなど)」を選び、毎日少し触って、使い勝手をよくしたりする新しい機能を覚えよう
ビジネスの仕組みを学ぶ
・ビジネスの基本を学べる本を最後まで読み通そう ・会社の財務の仕組みを詳しい人に聞いてみよう、理解したら自分の言葉で説明しよう ※ボトムライン
師匠を探す
・師匠リスト(※説明省略)を作成し、今すぐ始めるべきことをまとめよう
師匠になる
・自分よりも若く、経験の浅い人を探して「自分が教えられる環境」を作ろう ・熱心に根気よく教えてくれる人だと周囲からおもわれるようになろう(オンラインでもリアルでも)
一に練習、二に練習
・TopCoderで腕試ししよう ・CodeKataに挑戦してよう、そして自分がどう考えたかを書き残そう、全部終わったら自分なりのKataを作って公開しよう
プロセスを大切にする
・ソフトウェア方法論から1つ選んで本やサイト、コミュニティ参加などして勉強し、批判的な視点で見てみよう(長所と短所、現場で実践する上での障害など) ・読み終えたらまた別の方法論を選んで同じ事を繰り返そう、そしてそれぞれの長所や短所を比較したり、組み合わせるためにはどうしたらいいか考えよう
巨人の方の上で
・何かプロジェクトを選び、コードを本のように読み、長所と短所を考えよう ・自分のコードに使えようなトリックやパターンを少なくとも1つは見つけよう、そして開発するときの「べからずリスト」を少なからず1つ増やそう ・勉強会などで2〜200行程度のコードを取り上げて、そのコードの背景にある考え方(なぜそのような判断になったのか、実装されていないコードなど)について考えてみよう
自動化によって仕事を確保する
・いつも書くコードのジェネレータを作ってみよう、簡単なものを作って作業時間が短縮できたらいい ・できたらジェネレータをもっと抽象化する方法を考えよう ・MDA(モデル駆動型アーキテクチャ)について調べて、ツールをいくつか使ってみよう ・仕事や使っているツールにMDAの考え方を取り入れよう