エンジニアにおすすめの本「情熱プログラマー」を紹介

みなさんこんにちは!

市場

・社内でも社外でもいいので、顧客と直接ビジネスに関するやり取りをおこなっている人にテクノロジがどのように顧客価値向上につながっているか聞いてみよう。

・たくさんの学ぶべき人物のいるコミュニティーに所属しよう。会社では難しいかもしれないのでオープンソースプロジェクトなどに参加してコードスキルを習得するのもいいかもしれない。

・新しいプログラミング言語を学ぼう。これはC言語をやっているひとがC++やC#を学ぼうといっているのではなく、Haskellなどの関数型言語のような言語仕様の大きく異なるものに取り組もうという意味である。違う概念の言語を学ぶことは今使っている言語で問題を解決しようとする場合に違う視点からの解決方法をもたらしてくれる。

・自分の選択を正直に評価してみよう。親や友達は同じ環境にとどまることを進めてくるかもしれない。しかし、自分に正直にこれまでの選択がどれだけ他の人の意見や不安に左右されたかを評価してみよう。また、今同じ状況になった場合、周りの意見や不安に左右されずに正しい判断ができるか考えよう。

・自分のもつ技術にどのくらい汎用性があるか書き出してみよう。30分もあれば十分である。OSなどのプラットフォームやプログラミング言語について書く。足りていない部分があればすぐに実践してみよう。例えばLinuxでWebサーバーを作る技術が足りていないと感じたなら、コンピュータにインストールしてWebサーバーを自分で作ってみよう。

・自分の選んだスキルについてはスペシャリストになることを目指そう。コンピュータ命令の仕組みからコンパイル動作までしっかりと理解しよう。ある程度知識が身についてきたら誰かに教えてみよう。これは自分自身の成長にもつながる。

・特定のテクノロジだけで物事を済ませるのはよそう。例えばJavaだけでなんとかしようとするようなことだ。他の言語との比較もしないで盲目的に1つのテクノロジを使い続けると柔軟な発想ができなくなる。また、そのテクノロジを所有している会社がなくなったらどうするのだろうか。常に代替技術について検討しておこう。

・本当に情熱を注げる仕事に就こう。毎日朝にその日のやる気に10点満点で点数をつけてみよう。会社を休みたいならば1点今すぐに家を飛び出して次の仕事をしたいのであれば10点である。低い点数が2週間も続くようであれが大きな進路変更が必要かもしれない。

製品

・普段使っているものの仕組みをより深く追求しよう。例えば、コンパイラはどのように動的リンクと静的リンクをおこなっているのかなどである。バージョン管理システムやエディタなどの表面的な機能しか使っていないツールの利便性をあげるようなことを毎日少しだけ勉強してみよう。

・ビジネスの知識をつけよう。基礎となる部分は時代の変化にあまり影響を受けないためそのような部分をMBAの本を1冊読んで勉強してみよう。

・自分のお手本としたい人の特長を10個書き出して自分に何が足りていないか分析しよう。

・自分より経験の浅い人に指導してみよう。師弟関係が生み出す強力なネットワークは社会で生き抜くために力を貸してくれるだろう。

・オープンソースコミュニティやプログラミングコンテストを通じて効率的なコーディング技術をひたすら学ぼう。

・何度も書いているコードを生成するジェネレータを作成してみよう。今後これによる作業時間が節約できるように努めよう。

実行

・いつかやろうと思っている仕事を見返そう。そのようなタスクにおいてだらだらメールを見ている時間や昼休みにできることを見つけよう。

・自分やメンバーが何度もやることで面倒だと感じていることがないか紙に書きだそう。20分は時間を取ってほしい。書き出したものの中から特に重要なものを5つピックアップして次の週でそのことがらについて行動をおこそう。ビルド時のチェックなどソフトウェアにかかわることでもいいし、書類の整理など雑務に関することでもよい。

・大きな目標だけに目を向けるのはやめよう。常に大きな目標に目を向けていると今の仕事を通してのメンバーとの協調やプロジェクトの進捗による小さな幸せが見えなってしまう。

・チームが完全に自分に依存しているタスクがあればそれをドキュメント化してチームメンバーの誰でも容易に参照できるようにしておこう。この作業を繰り返し実行しよう。

・測定可能な指標(アプリケーションの実行時間や未処理の例外の数など)でパフォーマンスを改善するすべを身につけよう。パフォーマンスが改善出来たらメンバーと顧客に報告しよう。モチベーションも保てるし、信頼もしてもらえる。

・8時間しか働けないという意識で仕事に取り組もう。睡眠はしっかりとること。

・障害等の失敗の原因と対処法について十分学ぼう。そのためにも開発中にアサーションを追加したり単体テストで発生させるメッセージはできるだけ目立つものにするとよい。

・「できません」「わかりません」とはっきり言おう。もちろん理由を添えてだ。常に「できます」と言っている人間がいたら相当な才能の持ち主か嘘つきのどちらかである。

・毎週作業報告をしよう。助けが必要な場合は遠慮なく申し出よう。人件費削減が叫ばれる世の中で生き残れるのはそのような自立した人間である。

マーケティング

自分に何ができるのかを他人に知ってもらおうとしないのは愚かなことである。誰かがすごいことを成し遂げたとしても、周りがそれを知らなければ何もなかったのと一緒なのである。みんなに自分の存在をしってもらい、持て余している難題を解決できる人物だとわかってもらおう。

・所属するグループによって自分の認識に大きく寄与する要因を整理しよう。母親は設計能力などきにしないだろうが、チームメイトはどうだろうか。

・マネジャーや顧客に安心感をあたえることのできる存在になろう。ある分野に精通していると、その分野に詳しくない人を馬鹿だと思いがちである。そのことをよく理解しておこう。

・開発日記をつけ、設計についてわかりやすい文章を書くよう心がけよう。作文力を採用や昇進の条件にしている企業は多い。

・いくらメールやチャットでコミュニケーションが簡単になったからといっても対面で話すことによって得られる情報量にはかなわないことを心得ておこう。あまり話したことがない人にも1週間に一回ぐらいは話しかけてみよう。

・自分のビジネスが何の役に立っているのかを考えよう。専門職以外の人と話す場合はうまく伝わるように簡潔に説明できる語彙を選択することを心がけよう。

・周りに自分が何の仕事をしているか伝わるように使命をもって仕事に取り組もう。

・ブログやスピーチで発信を継続的につづけていこう。文章を書くのも人前で話すのも幾たびの練習によって磨かれるものである。

・自分のブランドを守ろう。そのブランドを守れるのも傷つけることができるのも自分だけである。

・誰もが話題にせざるを得ないようなことをして目立とう。生産性を最大化したり、本を執筆するなどである。

・プロフェッショナルとの人脈を作ろう。ソフトウェア作成者などに連絡をし、できれば直接会う約束までとりつけよう。

研鑽

時代遅れとなり、一発屋にならないよう努力する必要がある。

・常に最新技術をおっていこう。JAVAのようにいつまでも使われ続けるように見える技術もいつかは終焉を迎えるか、他の技術にとってかわられる日が来る。また、テクノロジーの進歩で数年後に実現可能になるであろうことを予測して、学ぶべき分野をみつけよう。たとえば、ムーアの法則でハードディスクがただ同然になったら何ができるだろうか。

・プログラマという肩書にこだわる必要はない。実際はマネジャーの仕事をしているかもしれない。少なくともすべての物事は常に変化しているということである。動いている的を射るには到達点を予測する必要がある。自分が実際に果たしている職務を分析してその役割をしっかり意識して1日を過ごしてみよう。

・ソフトウェア開発はリリースして終わりではない。次のリリースや運用が待っている。つまり、ゴールなど存在しないと言える。それならば成果に目を向けるのではなく、プロセスそのものに注目しよう。

・多様な技術を学ぶのは素晴らしいことだが、それらの技術を組み合わせて君が描くストーリーについても注意を払おう。これまで何を学び、どのような人生を送ってきたのか。君はそれに満足しているか。改善できる部分はなかったを考えよう。
自分のロードマップを振り返ろう。自分の成長の悪かった時期と良かった時期を見直して平均的に成長にどのくらい時間がかかるのかを知ってこれからのロードマップ作成に役立てよう。

・アルファギークに目を通そう。今魅力的な技術も大事だが、1.2年後に花開きそうな技術に投資しよう。Sun MicrosystemsがJavaに互換性のない変更を行ったらどうする?

・自分の立ち位置の変化は自分では気づきにくい。信頼できる人物(同僚・顧客・上司・部下等)に客観的に評価してもらおう。その際には、その評価に死角がないか注意を払おう。死角をすべて潰す必要はない・どこに死角があるのかを知っておこう

・硬直観念について見直してみよう。手遅れになる前に。嫌っている技術でアプリケーションを作ってみよう。意外と悪いものではないかもしれない。使える技術の幅が広がるだろう。

・人生設計もウォーターフォール型ではなくアジャイル型でとらえるようにしよう。目指すべきは要件の達成ではなく顧客の満足である。

・長期的な目標に対しては目標に近づいたかではなく目標に対して昨日より努力できたかを考えるようにしよう。小さな変更は失敗も小さくて済む。

・大企業から出よう。独立することで失敗の責任を自分で処理する力が身につく。もしくは企業に務めている状態で1つのプロジェクトを請け負って遂行してみよう。うまくいけばそれがキャリアの転換点になるかもしれない。

まとめ

いかがだったでしょうか。
今回は「情熱プログラマー」についてご紹介しました。
それではまたお会いしましょう。