書店の技術書コーナーやAmazonの関連本のところで何度か見かけていて、とても印象に残っていた本が『プログラムは技術だけでは動かない ~プログラミングで食べていくために知っておくべきこと

読んでみたところ、大きなテーマとしてはタイトルから推測できる内容と同じで、「プログラマーだからといって、技術力が高い=よいプログラムが書ければよい、というわけではないよ」という内容でした。

プログラマーをさして「技術力がある」というのは、たとえば

  • 綺麗なソースコードが書ける
  • メモリ効率の良いプログラム、処理速度のはやいプログラムが書ける
  • 様々な言語やフレームワークを使いこなすことができる

などが挙げられるかと思います。いずれも、プログラマーやSE、IT業界で仕事をしている人にとっては価値であり目指すべき道の1つであることは間違いないのですが、これだけで本当によいプログラマーなのか、本当に大事な要素がもっと他にあるのではないか。

本書では、「人間力」「仕事力」のようなものが必要だよね、という主張がされています。

プログラマに大切なこと

本書の中で最も大事だと感じたこと(かつ、何度も繰り返し書かれていること)が、

プログラマとして重要なのは、「依頼者の課題を解決できているかどうか」です。

このことは、頭ではわかっているつもりながら、普段仕事をしたり勉強したりしていると、つい「技術力がすべて」という思考に陥ってしまいがち。(私だけ?)

そんなときに立ち戻りたい基本として、この「課題を解決できているかどうか」がとても大切だと感じました。仕事を頼んでいる側からしたら、どんな技術を使っていようとそれがどんなにクールだろうと、「困っていることが解決されていればOK」なわけで。

この基本の他にも、プログラマーとして生きていくために大切な、技術力以外の要素として挙げられているものがあります。私が大事だと思っているのが以下。

自分のことを知ってもらうこと

「プログラマとして仕事をするうえで大事なことは?」 そう聞くと、多くの人は「技術力」「調査能力」「適応能力」などを思い浮かべると思いますが、「仕事」という前提では、「自分のことを知ってもらうこと」つまり、「広報活動」がとても大事だと感じています。

これは賛成です。そのためにこうしてブログを書いたり、いろんな活動をしています。

自分の考えや「こうしたい」といったことがあるときや、何か困っていることがあるとき。協力を得るためには、周りの人に自分のことや自分がやりたいことを知ってもらっている必要があります。

たまにこのことを忘れて、「会社はオレのことを何もわかっていない」などと愚痴っている人に遭遇しますが、それは自分自身の広報活動が足りないから、ということ。もちろん自分の意見だけを押し通すことはできないので、普段からちゃんと仕事で貢献をした上で、ということになりますが。

ドリームキラーに負けない

自分がやりたいことを発信すると、「そんなのうまくいくわけがない」などと批判してくる人が出現しがちです。こんなときに否定的な意見に屈してしまうと勿体無い。

もちろん、他人の声に耳を傾けて、盲目的にならないよう心がける必要はあるのですが、それが建設的な意見なのか、ただのイチャモンなのかは冷静に判断して、前者だけを取り入れていく必要があります。

IT業界には、技術や知識が豊富な人はたくさんいると感じています。しかし、技術や知識を活かして何かを生み出し、世に出している人はとても少ないと思います。しかも、そういう人たちには批評家タイプが多いので、世に出そうとがんばっている人の取り組みをみて、「技術的に古い」「ありきたりだ」と批評するのです。「そこまでわかっているなら自分で実現してみれば?」と言われると、 「時間がない」 「予算がない」 など、言い訳をして動かない、というパターンが多いと思います。

こうやって考えてみると、過去にも自分が他人に対してこういったことばを投げてしまっていなかったかな、と不安になってきます・・・。

否定的な意見で他人の夢を潰してしまう「ドリームキラー」に屈さないと同時に、自分がドリームキラーになってしまわないように気をつけることが大事ですね。

まとめ;技術力があるのは「あたりまえ」。問題は技術をつかって何をなすか

依頼者の課題を解決できているかが大事だ、というのが本書の要旨でした。

ただし、そのベースにあるのはもちろん技術力。技術だけではうごかない、というのは、技術が要らないという意味ではありません。

普段から技術力を高めることによって、依頼者の課題を解決するための時間や手間を削減したり、より難易度の高い課題を解決できるようになる。ただし、技術力を高めることが全てだと勘違いしてはいけない。

「あの人技術力はあるんだけどねぇ・・・」と言われるエンジニアで終わらないために、心にとどめておきます。

プログラムは技術だけでは動かない ~プログラミングで食べていくために知っておくべきこと