次の方を対象にしています!
- 書籍「情熱プログラマー」の内容が知りたい
- プログラマとして、どのような事をすればいいか知りたい
- 人生やキャリアプランについて考えたい
今の時代、プログラマーを職業と選択する人は多くいます。
そして、プログラマーを目指し勉強し、プログラマーになれた人の中には、その後どのような道を進んでいけばいいのか不安に思う人もいます。
プログラマーといっても、広い分野にまたがって活躍する人、何かの分野のスペシャリストになる人、マネージャになる人と様々です。
そんなプログラマーにとって大事なことを紹介します。
特に重要なのは次の5つです。
- 市場を選ぶ
- 製品に投資する
- 実行に移す
- マーケティングを学ぶ
- 研鑽を怠らない
参考:情熱プログラマー
\ 聞き流せる本!Audilbe無料体験期間中 /
>> 詳しく知りたい方へ!Audibleで1冊無料でもらう方法を徹底解説
情熱プログラマー 要約|市場を選ぶ。まとめ
先んずるか、やられるか
プログラムは次々新しいものがでてくる。今最新であっても、やがて古くなる。
古くなったプログラムは新しいものへと交換される。そのとき古ものと新しいものをリプレイスする作業は常に需要がある。
古いプログラム言語も、新しいプログラム言語も、それを交換する作業も需要がある。その中でどこを狙うべきか、自分の興味がどこにあるか考えてみよう。
市場のテクノロジを年齢(若年、中年、老年)に分類し、左から右へ並べると「左側に最新テクノロジ」と「右側に衰退しつつあるテクノロジ」がとなる。その両端が特に需要があるかもしれない。
需要と供給
企業がWEBページを持っているのが当たり前になり、プログラマが爆発的に増えた。
以前は高かったWEBサイト開発も、プログラマが増えるに従って価格競争になり、値段が下がった。
特にオフショア企業は強い。安い値段で請け、海外の人材で安く作り上げる。
そのため、同じようなことをしても勝てなくなる。狙うならニッチな場所。
オフショアは需要のあるプログラム言語に偏り、ローエンドな仕事が多い。そこに左右されないハイエンドな仕事や、ニッチなプログラム言語を見つけられれば戦える。
コーディングはもう武器にならない
コードを書くだけなら、オフショアで良い。そうではなく、そのビジネスの分野で一目置かれる存在になろう。
ビジネス分野の経験は重要で、ビジネスに詳しければ会社でも必要な存在になれる。
テクノロジがビジネスにどう役に立っているのか、ビジネスを学んでみよう。
一番の下手くそでいよう
いつも一番下手くそというのは、いつも自分より優れた人たちといることを指す。
優れた人たちの中にいると自分も感化され、変化していく。
自分が一番下手くそな状況を見つけてみよう、そしてボランティアでもいいので、開発グループに参加してみよう。
自分の知性に投資しよう
新しいプログラム言語を学んでみよう。
Javaプログラムだったら、強い静的な型付けのないRubyのような言語に挑戦してみる。
オブジェクト指向プログラミングをやっているなら、関数型言語に挑戦してみよう。
親の言うことを聞くな
親は安全な道を進んでほしいと願っているものだ。しかし、成功者はリスクをとっている。
万能選手になろう
万能選手はめったいにいない、だからこそ価値がある。
Windowsだけに特化せず、UNIXも触る。プラットフォームの垣根を越えたスキルを身に着けよう。
自分の知識と技術がどんな局面で汎用性があるかまとめてみる。そして、学ぶべきトピックを書き込もう。
スペシャリストになろう
他のことを知らないからスペシャリストと言う人がいる。Windowsしか触ったことがないからWindowsのスペシャリスト。
しかし、それは違う。スペシャリストは詳細まで理解していて、何か起きても解決できる人(せめて、誰に助けを求めればいいか知っている人)のことだ。
仮想マシンでコンパイルして動作するプログラミング言語を使っているなら、その仮想マシンの動作の仕組みを知ろう。
プログラムはどのようにコンピューターが読める形になるのか、一つずつ学ぶことでスペシャリストに近づける。
自分の人生を他人任せにするな
一つのテクノロジに投資するのは賢明ではない。特にベンダが作ったソフトウェアを極めたところで、それが古くなったり廃れたらどうするつもりなのだろうか。
そこでオープンソースという選択肢を検討する。
実装の詳細が分かれば、ベンダがなんだろうと関係はない。システムの中身がわかっている方が強い。
愛せよ、さもなくば捨てよ
秀でた存在になるには、自分の仕事に情熱を注ぐ必要がある。
本当に情熱の持てる仕事を探してみよう。
2週間分の簡単な日誌をつけて、自分のやるきを10点満点で採点してみる。点数が高い日、低い日がある。
そこから、さらに2週間は10点を取ることを考えて、行動してみる。どんなことをすると点数が高くなるか分かるはずだ。
\ 聞き流せる本!Audilbe無料体験期間中 /
>> 詳しく知りたい方へ!Audibleで1冊無料でもらう方法を徹底解説
情熱プログラマー 要約|製品に投資する。まとめ
魚の釣り方を学ぶ
教えてもらうのを待つのではなく、自分から訊く。
インフラのことならインフラチームがやってくれると思っている、しかし、自分のことは自分でできる人になりたい。
仕事で使うツールは勉強しよう、自分で使いこなせるようになろう。
また自動化されているツールがあると、それの中身を知ろうとはしない。自分の「なぜ?」「どうして?」を考えてみよう。
ビジネスの仕組みを学ぶ
基礎となる知識は時代や流行に左右されない。
教育や製造業など分野が多々あっても、基礎となるビジネスの考え方は変わらない。
ビジネスの仕組みが分からなければ、自分の作ったプログラムでどのように利益を上げているのか分からない。
それが分からなければ、改善方法や、未来を想像することも難しいだろう。
おすすめの本はMBA(経営学修士)志望者向けの本。
師匠を探す
君のためにキャリアアップの指針を示したり、技能向上の手助けをしてくれる、尊敬できる人を探しましょう。
自分の分野で尊敬できそうな人がいるか調べてみましょう。身近な存在ではなくても大丈夫。
何に尊敬しているのか項目をリストアップしてみる。自分に何が足りないのかを比較し、相手に近づけるように行動すると自分の向上に役立つ。
師匠になる
何かを習得するなら、誰かに教えてみるのが近道だ。
自分の理解をはっきりした形に現せる。さらに、分かっていないこともはっきりする。
師匠を探すことが自分のプラスになるのと同様に、自分が師匠になることも自分のプラスになる。
1に練習、2に練習
音楽もスポーツもプログラムも同じで、伸ばすには練習をする。
TopCoder.com のプログラミングコンテストを受けるのもいいし、 Code Kata でコーディングの練習をするのもいい。
とにかく練習するしかない。
プロセスを大切にする
「ソフトウェア開発」は名詞ではなく、動詞。つまり、プロセスだ。
プロセスを身に着けたいなら実践がよい。チームの生産性を最大限高め最高の製品を作り出せるよう実践しよう。
まずは世の中にたくさんあるソフトウェア開発の方法論を1つ選び、学ぶところから始めてみる。
巨人の肩の上で
世の中にある既存のコードを見てみよう。有益なパターンは「デザインパターン」になっている。
さらに、他人のコードを見ることで、自分には思いつかないような実装があったりする。
オープンソースのプロジェクトを何か1つ選び、読んでみよう。
自動化によって仕事を確保する
作業の生産性を上げるなら「作業スピードを上げる」「作業員の数を増やす」「作業を自動化する」の3つが考えられる。
この中で、行うなら「作業の自動化」だ。
自分が繰り返しコーディングしている処理を1つ選び、その処理のコードジェネレータを作成してみよう。
さらにMDA(Model Driven Architecture モデル駆動型アーキテクチャ)について調べてみよう。きっと普段の仕事に役に立つはずだ。
\ 聞き流せる本!Audilbe無料体験期間中 /
>> 詳しく知りたい方へ!Audibleで1冊無料でもらう方法を徹底解説
情熱プログラマー 要約|実行に移す。まとめ
今すぐに
いつかやろうと思い続けている仕事を見直す。昼休みや、ダラダラした時間にできることを見つけよう。
数ヶ月のプロジェクトを短縮するんだ。
読心術
あまり指図しなくても、それを読み取り、プロジェクトを正しい方向にもっていける人は評価される。
先回りして行動すると、信頼されキャリアアップにもつながる。
デイリーヒット
報告できる成果を毎日つくる。そのために、チームで我慢していることや、毎日数分ムダにしている作業がないか探してみよう。
改善できるかもしれない。自分で探し成果を上げて毎日マネージャに報告してみよう。
誰のために働いているのか思い出す
良いマネージャの役割は、ピンチヒッターではない。
チーム全員の仕事を把握しておいて難しい局面で自分が手伝うのは違う。チームの仕事に優先順位をつけ、必要なものを用意し、チームのやる気と生産性を維持できるように配慮する。これがマネージャの仕事だ。
マネージャを助けるのであれば、やることはすべての仕事をすることだ。まずはマネージャから評価されないといけない。
今の職務を全力で
自分のキャリアばかりではなく、今の仕事を全力で取り組もう。
仕事で結果を出せば次が見えてくる。今の仕事の目標を書き出して、仕事の完了により何を達成したいのか考えよう。
これを毎週のように繰り返す。
今日どれだけうまく仕事できるか
「うまく仕事をできるか」言い換えると「もっと仕事を楽しくできないか」。楽しさが増せば、仕事もうまくできる。
退屈な仕事は同僚との競争に変えてしまおう。退屈な仕事をなくせば楽しくなる。
自分にどれだけ価値があるのか
会社は自分にいくら支払っているだろうか、給料の他にも、備品や研修、保険などもある。
仮に年収600万だとして、会社が1人雇うには2倍の1200万だとしよう。
君は価値に見合うだけの仕事をできただろうか。1年で1200万円の価値を作り出せただろうか。
君が1200万の仕事をした場合、1200万かけて、1200万回収している。つまり、得も損もしてない。
会社は人材に投資しているので、1200万かけて1300万、1400万、それ以上の価値を出してほしいと思っている。
今日の自分に価値があったか自問しよう。
バケツ一杯の水の中の小石ひとつ
君の職務における存在は、バケツ一杯の水に沈む小石のようなものだ。
しかし自分の貢献には意味があると思いたいし、成功におぼれてはいけない。
どんな立場であれ謙虚な姿勢でいつもいる。ぼくらはいつでも交換可能だ。
それを認め、自分しかできない作業をなくしていこう。
保守作業の真価を知る
レガシーの保守よりも、新しいプロジェクトを望む人は多い。
しかし、保守がなくなるわけではない。誰かがやらなければならない。
保守のためのプログラミングを自分ごととして受け入れ、使命感を持って取り組める人は強い。
8時間燃焼
疲れているときほどミスはでやすくなる。8時間燃焼し、しっかり休んだ方が効率がよい。
プロジェクトはマラソンであり、短距離走ではない。
前半に力つきないようなペース配分が必要だ。
毎日残業ありきで考えると、ちょっとぐらいサボってもいいという思いがでてくる。
8時間しかないと考えると、効率的に取り組もうとする。
失敗する方法を学ぶ
どうしたってミスをゼロにするのは難しい。だからミスした場合にどう対象するかが重要だ。
必要なことは「問題をすばやく共有する」「責任をとる」「解決策を提示する」「助言をもとめる」
できないことは「できない」とはっきり言う
約束をやぶる簡単な方法は、最初からできないことを約束することだ。
僕らはお願いされたら相手をガッカリさせないように、すぐ安請け合いして「できる」と言ってしまう。
それを知っているので「できない」と言えるチームは強い。なぜなら、そのチームが「できる」と言ったときは信頼できるからだ。
しかし「できない」を連発してもいけない、何も頼めなくなるからだ。少し背伸びした挑戦は勇気をもって「できます」と言ってみよう。
あわてるな
最悪の事態が起きると慌てるものだ。慌てたことでミスをしたり、言ってはいけないことを言ってしまったりする。
慌てても何もいいことがないのだ。だからこそ、慌てないことが大事。
まずは慌ててしまう原因を考えてみよう。
コツは慌てる状況になったら、自分の慌てているところを笑ってみよう、第三者の気持ちになり、外から自分を助ける姿をイメージする。
他にもパニック日記をつけて、いつどのように慌てたかメモしてみましょう。
言って、成して、示す
何も達成しない簡単な方法は、何も約束しないことだ。
締め切りがなければプレッシャーもない。
作業がたくさんあるときは、計画を立てましょう。
計画を立てれば、その日何をすべきかが見えてくる。
そしてタスクを一個完了させるごとに完了した喜びを感じよう。
この計画やスケジュールをマネージャとも共有すれば、プログラミングだけでなくリーダーの素質もあると感じるだろう。
\ 聞き流せる本!Audilbe無料体験期間中 /
>> 詳しく知りたい方へ!Audibleで1冊無料でもらう方法を徹底解説
情熱プログラマー 要約|マーケティング...スーツ族だけのものじゃない。まとめ
視点が違えば認識も異なる
認識はとても大事。認識を決定付けるのは、認識の主体によって変わる。
母親は、オブジェクト指向の設計は気にしないけど、チームメイトなら気にするかもしれない。
チームメイトは技術力を重視して君のことを見ているかもしれないけど、マネージャは君のコミュニケーション能力を重視して見ているかもしれない。
誰にどのような認識を与えているか考えてみよう。
アドベンチャーツアーガイド
職場で大事なのはコミュニケーション能力だ。
顧客はITに詳しくないかもしれない、それならツアーガイドのように分かりやすく説明することが君には必要だ。
顧客はビジネスのニーズを主張し、君は報酬をもらってニーズを満たすのが役割である。
オレ、作文的なのは得意っすよ
作文技術は必要かつ、供給不足である。
世界の労働人口はグローバルに分散するなかで文章でのコミュニケーションは必須。
開発日記をつけてみよう。何に取り組んだか説明、設計上の決定の理由などを書いていく。
そこに居ること
メールばかりではなく、電話したり、直接あったりしよう。
その場にいて一緒に仕事する中で一緒に仕事したいと思わせる。
スーツ語
ビジネスを運営している人たちの興味はビジネスにある。だからビジネス用語で話す必要がある。
必要なことは事前に準備していつでも出せる状態にする。
たとえば、CEOとエレベーターで会話になって「君はなんの仕事して、どのような成果を上げているんだ?」と聞かれても即答できるようにしよう。
最近の業績をリストにまとめ、何か聞かれても答えられる準備をする。
世界を変えよう
職場で君に対して「どんな仕事をしているんだ?」と聞かれたらピンチだと思ってくれ。
自分がどんな事をしているか伝わっていないのだ。
君の周りで、使命を帯びている人たちを観察して、どのようなことをしているか、何が印象的かをまとめてみよう。
周りから見える結果をだし、何をやっている人か印象付けよう。
業界で名前を売ろう
自社の中だけで考えるとコネクションが減ってしまう。もっと外の世界を見てみよう。
まずはブログを読む。RSSでフィードして最新情報を常にチェックしよう。
次はブログを投稿しよう。ブログは文章力を鍛える練習場だ。
自分のブランドを築こう
ブランドは2つから成る。世間から認知されるマークを実際に作ること、そのマークが好ましい特徴と結びつくようにすることだ。
認知され、尊敬されることでブランドになる。
自分の名前がブランドだと考えよう。
Googleで自分の名前を検索してみよう。他の人から見て、どのように見えているか分かる。
自作のコードをリリースしよう
今はオープンソースがたくさんある。
たとえば誰でもRailsを使えるが、オープンソースに貢献している人は少ない。
目立つこと
目立つためには、周囲の人たちとの間に大きな差異がなければならない。
何かが有能であってもダメだ、何かをして始めて目立つ。
ツールを開発したり、セミナーを開催したり、分かる形で何かを残そう。
群れの中の1人ではなく、自然と話題に上がる人物になろう。
コネを作る
自分の尊敬する人が情報をくれたり、仕事の世話をしたりしてくれるのは自分の能力を高める最善の方法なのに、なぜか恐怖心がある。
試すことすらためらってしまう。勇気をだせばコネが作れる。
君の好きなソフトウェアの作者にメールをしてみよう。
\ 聞き流せる本!Audilbe無料体験期間中 /
>> 詳しく知りたい方へ!Audibleで1冊無料でもらう方法を徹底解説
情熱プログラマー 要約|研鑽を怠らない。まとめ
すでに時代遅れである
苦労して手にした技術もすぐに使われなくなる可能性がある。
CPU(半導体)の集積度は18ヶ月ごとに2倍になっていく。今何を勉強すべきか先取りして考える必要がある。
週に1回、最前線技術について考える時間を儲けよう。
君はすでに職を失っている
自分がプログラマだというアイデンティティに拘ってはいけない。
すでに変化し続けている、頑なに昔考えたキャリアプランに拘る必要はない。
むしろ、固執してはいけない。
君がプログラマなら、テスターやマネージャになった気持ちで1日を過ごしてみよう。見える景色が違うかもしれない。
終わりのない道
結果ばかりに注目しているとプロセスの質を高めることを忘れてしまう。
悪い製品は悪いプロセスから生み出される。良い製品は良いプロセスから生み出される。
作業を終わらせようとするのではなく、その途中を楽しもう。
自分のロードマップを作る
自分の目指す姿になるためのロードマップを作成しよう。
ロードマップがなければ、現在地も、この先どこに向かえばいいかも分からない。
未来だけではなく、自分がどのように歩んできたのか過去のロードマップを作るのも効果的だ。
市場に気を配る
自分のスキルに満足して、近づいている大波に気づかないことがある。
技術系のニュースは常にチェックしよう。
常に追っていれば、次似何が来るか分かるようになる。
鏡の中の太った男
毎日の少しの変化に気づきにくい。いつの間にかズボンがキツくて履けなくなっていたという経験はないだろうか。
毎日自分を評価して、等身大の自分を理解することが大事だ。
定期的に他の人からフィードバックをもらうのも効果的だ。
足りないものは何かとフィードバックを得ると良い。
南印度のサル捕獲トラップ
穴の中に食べ物を入れる。そして、食べ物を握ると穴からサルの手が抜けなくなる。食べ物を離せば手が抜けるのに、それをしようとしない。
これに似たことが現場でも起きる、一度学んだ技術を頑なに変えようとしないことだ。
その価値観が自分をダメにする。
ウォーターフォール式のキャリア計画はやめよう
綿密な計画を立て実施するウォーターフォール式よりも、試行錯誤を繰り返すアジャイル式を採用しよう。
ソフトウェア開発に限らず、複雑な問題は、何度も反復して取り組んだ方が苦労も少なく効果的だ。
大きな目標を立てたとしても、常にそれを見直しながら進もう。それにはアジャイル式が向いている。
昨日よりよく
大きな問題が発生したとき、1週間経っても進んでいないように見えることがある。
そんなときは、昨日よりも良くすることを考えよう。
現実的な1ステップなら前に進むことができる。
達成が難しいこと、複雑な問題をリストアップして1ステップだけ良くするには何をすればいいか具体的な行動を考えみよう。
それを実行していけばゴールに近づける。
独立する
企業の毛布の中でぬくぬくしていると、伸び悩んでくる。
大きな成果を残したいのなら独立しよう。
独立したら君自身の能力がすべてとなる。ビジネスも学ぶことになる。
自分の給料は自分で決める。自分の価値を自分で考えるのだ。
もうひとつのプランは、大企業で働いているなら、小さな企業に転職することだ。
両極端を見ることで、見える世界が変わる。
参考:情熱プログラマー
\ 聞き流せる本!Audilbe無料体験期間中 /