「Software People」 柴田芳樹 語録

(僕が思う)ブログのメリット」に1つ追加すべき大変な出来事が起きた.

  • 尊敬する人/憧れの人とコミュニケーションできる(実際会える)かもしれない

Software People」 の柴田芳樹さんからコメントを頂いたのだ.JAVAな人なら,「プログラミング言語Java」の柴田さんでわかりますよね?こんなすごい方が,たまたま検索に掛かっただけだとしても,僕ごときのブログを見てくださったということがにわかには信じられなかった.

柴田さんを知ったのは,「Software People」の記事です.僕を惹きつけるのは,いつも荒井さんと柴田さんの記事でした.興味を持っていたことや知りたいこと - 自分への危機感,後輩の教育 - にストレートに響く内容だったからだと思います.それからは,お二人の記事や書籍,紹介された書籍は結構読んでいます.職場でも社会でも尊敬できる人や言っていることが正しいと思った人の意見は,あほみたいに素直に受け入れちゃう性格なんです.「達人プログラマ」もわざわざ原書の英語版「The Pragmatic Programmer」で読みましたし.

柴田さんの文面からは,物事の本質/基礎/原点を理解することが非常に重要だというメッセージをいつも感じます.普段,仕事に追われているとどうしても表面的な技術や調査などでごまかしてしまう傾向があります.ですから,僕は定期的に「Software People」で,自分を客観的に見直すことをしています.

柴田さんの著書「ソフトウェア開発の名著を読む」は実は読んでいません.全て「Software People」で紹介されているからなのですが.紹介されている本は,かなり古いものもありますが,どれも他の多くの本から引用されているまさに名著ばかりです.しかも特定のソフト分野,言語によらない内容です.もし下記に紹介してある書籍を知らないというソフトウェアエンジニアは,今日帰りに本屋でチェックしたほうがいいですよ.ソフトウェアをあまりよく知らない,またはソフトウェアエンジニアと関わりがある,管理者や経営者にもお薦めです.

ソフトウェア開発の名著を読む (技評SE新書 003)

ソフトウェア開発の名著を読む (技評SE新書 003)

そんな柴田芳樹さん語録をまとめてみたいと思います.(Software Peopeから抜粋)

柴田芳樹さんの原点はこれか

  • 35歳定年説の功罪

私自身は仕事でプログラミングをすることはなくなりましたが,Java言語の習得は,すべてウィークエンド・プログラマとして,自宅で自分の時間で続けたものです.また,職業で部下が使用する技術については,自分でプログラミングをすることがなくても,関連技術の専門書を読むように努めたものです.

プロフェッショナルエンジニアの心得/条件

  • 人が読めるプログラム
  • 継続した学習

「会社が業務時間内に勉強させてくれないから勉強できない」とか,「会社が専門書を購入してくれないから勉強できない」と不平を言っているようでは,10年後には使えないソフトウェアエンジニアになっていることでしょう.

    • 1つの言語をきちんとマスターする

新たな技術を習得するには,業務で使用している技術全般について専門家の書いた専門書で学習すべきとして,

特に,その技術を作り出した人が書いた本を読むようにしてください.技術を作り出した人が書いた本は,「これだけは知って,この技術を使いこないしてほしい」と思うことを著者がまとめたものである場合が多いものです.

    • C++言語を使用した開発を経験してきたといっても,何年もオブジェクト指向関連の技術書を読んだことがないという中堅エンジニア

ある一つの技術だけでなく,他の技術を学ぶ上での注意として,

ソフトウェアを開発することが目的であり,学習することが目的ではないということです.

  • 英語力
    • TOEIC 900点台
    • 「読んで理解できない英語を,聴いても理解できることはない」
    • 原著を読むための英語力

技術書を英語で読めなければ,運よく翻訳されるのをひたすら待つしかありません

  • コミュニケーション能力
    • 論理的に相手に説明
    • 文章力
  • コンピュータサイエンスの基礎
    • 自分で作らないまでも,データ構造とアルゴリズムに関する基礎知識は必要
    • ソフトウェアエンジニアでも,ある程度のハードウェア知識も習得する必要があります.
  • 頭の中でソフトウェアの動きをきちんと理解する

自分で書いたプログラムであっても,他人が書いたプログラムであっても,プログラムのロジックをきちんと理解して,それを実行するとどのように動作するかを,ソースコードを調べながら頭の中でシミュレーションできる能力が求められます.

デバッグする場合,少しでも疑問に思うことがあれば,

「他人のソースコードであっても可能な限り調べる」.「他人のコードだから,それ以上は調べない」という態度では,「できない奴だな」と思われても仕方ない

  • 最初の一年が勝負
    • 社内教育を,大学教育の延長の感覚で受けているようでは,まったく駄目です.

「この先,伸びる」を判断されると,必然的に「もっと伸びてほしい」と思われ,徐々に難易度の高い仕事が与えられるようになります.
難易度の低い仕事すらできないと,最終的には「仕事をさせないほうが,チーム全体として生産性が高くなる」と判断されることもあります.

  • 追い越される人,追い抜く人
    • 何の努力もしていない先輩を追い越すことは,立ち止まっている人を追い抜くようなもの

柴田芳樹さんお薦めの書籍たち