「生涯プログラマー」でやっていくためには? まつもとゆきひろ氏が若手に贈る3つの言葉
日本語で「技術」という言葉を使う時には、あるプログラミング言語を使うか使わないかとか、あるテクノロジーのテクニックを使うかどうかとか、コンピュータに直結するようなことを連想しますが、ソフトウエア開発はそこだけでは終わらない。テクノロジーに関する知識だけでは測れないのが、優秀なエンジニアの特質だと思うんです。
そういうことを踏まえた上で、ソフトウエア開発と「技術だけで」という言葉をつなげて考えると、「マネジメントがしたくない」という思いを満たす上で、違うものを示してしまう可能性があるのではないかと感じました。
この言葉の持つイメージと実体のズレというのは、放置しておくと選択を誤ることにもなりかねない。そう思って、「幻想」みたいなちょっと強い言い方をしたんです。
僕自身、マネジメントに行きたくないというのは最初からずっと考えていたことだし、モノを作ることからずっと離れたくないと思っていた。
なので「技術だけで~」と言いたくなる気持ちはすごく分かるんですよ。ただ、それがキャッチフレーズのようになるとかなり危険ではないかと思ったんです。マネジャーにならないでモノづくりに専念するという時に必要な、かなりの大部分を落としてしまうような気がしたので。
プレイヤーとして生き残るために必要な3つのこと
必要な3つの素養とは?
──それではあらためて質問させていただきたいのですが、モノづくりに直接的にかかわる形で生き残るためには、どんな素養が必要でしょうか?
個人的に思いつくことは3つあります。
1つは、自分が作ったモノがどんな影響を与えるかを想像できる力だと思います。
「このソフトを使ったらユーザーの仕事なり生活なりがこんなにも良くなるに違いない」と思うからこそ、ソフトを作るわけです。このイマジネーションの能力こそが、エンジニアとして一番大事な力だと思いますね。
世の中の多くのエンジニアは残念ながら、上司やお客さんから言われた通りに部品を作って、それを組み込んでいくという働き方になりがちですが、ある程度より上のレベルになるには、それだけでは十分ではありません。自分が作ったものの影響力、時には世界的なインパクトも含めて、未来を想像できる力がけっこう大事だと思います。
次に大事なのは、新しいことを学んで自分で問題を解決する力です。
新しい技術はどんどん出てきます。そうした中で、「私の強みはこの技術だから、これしかやりません」ではうまくいかないことの方が多いです。必要に応じて新しいものを学び、発生した問題を自ら解決していく姿勢が必要だと思います。
ソフトウエア開発のかなりの部分は問題解決ですから、そのために学び、実践していくことが重要なのは当然です。ここで他の人に頼っているようでは、最終的に「あなたはいりません」となってしまう。生き残っていくには必要な能力でしょう。
そして最後は、コンピュータサイエンスに関する体系的で基礎的な知識でしょうか。