2020年10月12日

全てのエンジニアに向けて「エンジニアとして生き残るために」
NTTコミュニケーションズ技術顧問・和田卓人氏

エンジニアとして歩んでいくには、自身の知識ポートフォリオを競争力あるものにメンテナンスし続ける必要があります。しかし、年齢を経るとともに職が変わったり、家族構成が変化したりなど、自由に使える可処分時間は少なくなります。自分の知識ポートフォリオをメンテナンスし続けるには、どうしたらいいのか……?

そんな問いに対するヒントを求め、NTTコミュニケーションズ株式会社(以下、NTT Com)は2020年9月、ソフトウエア開発分野における技術顧問であるタワーズ・クエスト株式会社の和田卓人氏(@t_wada)に、ITエンジニアのキャリア戦略をテーマにしたオンライン講演(社員向け)を2日間にわたり実施していただきました。タイトルは「エンジニアとして生き残るために」。現在エンジニアではない私・植田にとっても大変参考になる内容でしたので、レポートします。

    目次

  1. 第1部 技術の学び方を学ぶ
  2. 第2部 現役エンジニアでいるために
  3. 参加した社員の声

第1部 技術の学び方を学ぶ

エンジニアとして知識ポートフォリオをメンテナンスし続けるためには、限られた時間における効果的な技術の学び方を学ぶ必要があるそうです。そのための5つのヒントについて、お話いただきました。

(1)四半期毎に技術書を読む

キャリアを通じて持続可能な取り組みの入口として、技術書を読むことはとても望ましいプラクティスです。最初の一冊の選び方に迷うことが多い……という方は少なくないかと思いますが、自薦・他薦を問わずまず一冊選んで読んでみることが大事で、その一冊から参考書籍や著者のつながりなど、数珠つなぎで他の技術書をたどっていくのが良い学習戦略です。ここで、効率的に学ぶための学びの仕組みを簡単にご説明します。

脳内には大きく3種類のセンサーやストレージがあり、脳に入った情報は死ぬまで脳内に格納されているという説があります。

では、なぜ、私たちは普段の生活の中で多くのことを忘れてしまうのでしょうか? それは、記憶はしていても情報を取り出せていないのだといわれています。脳内を整理し、記憶に対して効果的にアクセスできる状態にするには、「反復練習によって長期記憶から情報を出し入れする」「情報を他の情報につなげて覚えることで連想記憶を育てる」ことが重要です。例えば、具体的なプラクティスとして挙げられるのが、技術書やWeb記事をブックマークし、botなどを使って強制的に自分にリマインドをして記憶の出し入れをする、技術書を時系列に並べて線や面で理解する、といったことです。

(2)手を動かして学ぶ

技術を学ぶ良いループ、それは「やる⇒できる⇔好きになる」です。大事なのは「できることから始める」「できないから始めない」のいずれでもなく、好きでも嫌いでもない状態から始めてみること。その結果、「できる⇔好きになる」のループが回り始めます。さらに、デールの円錐(えんすい)で示される「2週間後の人間の記憶率」に関する理論では、「“読む・聞く・見る”だけでは学習効果が低く、能動的なアウトプットがインプットをより強化する」と述べられています。受動的な学習だけでは2週間で半分しか記憶が残らないのだそうです。つまり、いかにして能動的な学習にしていくかが重要なのです。能動的な学習方法を実現でき、またエンジニアにとって非常に効果的といわれているのが技術書を「写経」するという方法です。

「写経」は時間やコストが大きくかかるため、全ての技術書を写す必要はなく、新しい言語を学ぶなど、自身のキャリアにとって重要な一冊に対して実践していくべき、と和田氏はお話されました。

(3)毎年1つ新しい言語を学ぶ

「プログラミング言語はパラダイムの異なる言語を複数習得するべき」といわれます。その理由は、それぞれの言語の良いエッセンスを自分の技術スタイルに取り入れることができ、エンジニアの技術力を大きく向上させるからです。最初は仕事で使う言語を中心に習得し、それ以降はTechnology Radarなどを参考に、パラダイムの軸を1つずつ変えながら言語を選択し学んでいくのがよいでしょう。一例としては、Rubyを使っている人は動的型付きオブジェクト指向言語を習得しているので、今度は静的型付きオブジェクト指向であるJavaを習得するといった方法です。

また、エンジニアは英語からは逃れられません。英語での技術情報の方が量も質もはるかに高く、英語で技術情報をインプットできるかどうかが、エンジニア間の競争に大きく影響するからです。

(4)身の回りをプログラミング対象にする

複数の言語を習得していくフェーズになると、“言語を学んでも使わないので身に付かない”“書籍のチュートリアルと実際のユースケースのかい離に悩む”といったシチュエーションに直面します。そのため、仕事だけではなく自分の身の回りの課題や生活そのものをプログラミング対象としていくことも、大事になります。私は子育てや教育関係のLINE Bot、Amazon Alexa Skillを作っています。

(5)アウトプットを行う

前述したように、アウトプットを伴う能動的な学びがインプットを強化・再整理し、正の学習ループを回していくことにつながります。このとき大事なのは、「量は質に転化する」といわれるように、アウトプットの精度を最初から求めすぎないこと。チームでの読書会やLightning Talksのような気軽にアウトプットできる場をつくっていくのがよいでしょう。また、CIツール「Jenkins」の作者である川口耕介氏が「情報発信、ブログ、発表、公開などは、数学の(未解決問題の)証明ではなく、料理のようなもの」といわれているように、適度な緩さを意識しつつ、一定数の否定的な意見は必ずあると割り切って、とにかくアウトプットを意識的に増やしていくことが大事です。

第2部 現役エンジニアでいるために

一般的に、ITエンジニアは後発・若者優位の職種といわれます。第2部では、そういった環境下においても第一線のエンジニアであり続けるための5つの努力や工夫について、和田氏ご自身の経験を基にお話いただきました。

(6)毎日コードを書く

jQueryの作者であるJohn Resigは、週末にまとめて自分のプロダクト開発を頑張ろうとしたものの、次の理由から失敗したそうです。

  • 週末は、平日と同じ馬力では書けない
  • 毎週末、予定がいつも空いているわけではない
  • 1週間空くと忘れてしまう

そこでたどり着いたのが、Write Code Every Day=毎日コードを書くこと。毎日コードを書く習慣を持ったことで、次のような効果が得られたそうです。

  • 必要最小限のコードへの集中
  • プログラミングの習慣化(生活の一部に溶け込む)
  • 不安との戦いがなくなる
  • 週末が重要ではなくなりリアルライフが充実した
  • 散歩・シャワー中など常にバックグラウンドで考えるようになり、良いアイデアが浮かぶ
  • 平日・週末の気持ちの切り替えコストがなくなった
  • ワークライフバランスが良くなった
  • 周りからの理解が得られるようになった
  • どれだけコードを書いたか、という充実感が得られた

このプラクティスにおいては、プログラミングのコードを書くことだけに限らず、技術書の写経や読書のアウトプット、ブログを書くなど、学習を習慣化するためのバランスを見つけることが大事です。

(7)年下から学ぶ

一般的に、ITエンジニアは後発・若者優位の職種といわれます。私が好きな小飼弾さんの言葉に、「一生プログラマーでいられるかどうかは、言い換えれば年下から学べるか否か」というものがあります。つまり、ベテランエンジニアが競争力を保ち続けるためには、ベンチマークとアンラーニングが大事だということです。ちなみに、私がアンラーニングの機会として重要視しているのは「ペアプログラミング」です。

  • 定期的に、自分のスキルを棚卸しする
  • 積極的に外部に出て、自分のスキルを相対化する
  • 使うツールを定期的に変える
  • 未知のコミュニティに参加する
  • 若者から学ぶ
  • 若者と同じ土俵で競う

(8)過去から未来を見る

ベテランエンジニアが若手エンジニアに対抗できる唯一の強みは、技術の歴史を知っていることです。技術はらせん状にトレンドを変えながら繰り返しています。過去の技術と比較した実体験として「何がすごいのか」「どう使うといいのか」を理解できていることが、ベテランエンジニアの価値であり、それを磨いていくことも大事です。

(9)人の作る渦を見る

GitHubの登場で、今のIT業界は、企業や組織ではなく「個人が主役」になっています。そのため、世の中でイノベーションを起こすような技術は、個人が集まるところから出現するようになってきました。現在のこの状況を、大企業がけん引してきた今までのロードマップ志向に対して「エコシステム志向の時代」と言います。そんな時代の空気・流れを見逃さずに追いついていくことが、これからは求められます。

(10)大事なことに集中する

年齢を重ねるとライフステージが変わり、若いころと比べ、可処分時間が限られてきます。従って、第1部で述べた学習効率を高めていく工夫とともに、戦略的に重要なところに時間と労力を投下していくことが大事になります。そうすることで、年をとってもエンジニアとして十分に戦えるはずです。

オンラインでの講演会の模様(右下が和田氏)

参加した社員の声

和田さんのお話を伺って、今、自分に足りていないものが明確化されたため、今後どのようにスキルアップに取り組んでいけばよいかの指標になりました。私自身、スキル習得にはアウトプットすることが重要だと考えていたものの、物おじしてしまいブログなどを書けないという状態が続いていました。それらを明日から始める原動力になりました。

非常に勉強になりました。特に「やる気があるから着手するのではなく、着手したらやる気が出るような仕組みを作ることが重要」といった言葉が印象に残りました。明日から、早速取り組んでいこうと思います。


ここ数年エンジニア業務から遠ざかっていましたが、和田さんのお話を伺ってモチベーションが高まりました。年下から学ぶ……、今までは「若手の見本となる技術を持っていなければならない」と思い込んでいたので、少し気が楽になりました。また、ベテランとして、どうアンラーニングして新しいスキルを習得していくべきかという観点からも、参考になるお話でした。

NTT Comグループは、社外技術顧問の強力な支援を活用しながら、真の「DX Enabler®」としてお客さまから選び続けていただけるサービス、ソリューションを開発する力を身に付け、Smart Worldの実現、ひいては社会的課題の解決に一層取り組んでいきたいと思っています。

この講演は、和田氏が監修する「プログラマが知るべき97のこと」と、SNSで和田氏が紹介している「新装版 達人プログラマー 職人から名匠への道」という2つの書籍がベースとなっているとのこと。和田氏は、毎年いくつかの場所でこうした講演をされています。当日の講演資料*も併せてご覧ください。

※当日の講演資料

講演資料(第1部):エンジニアとしてこの先生き残るために(PDF:5.5MB)

講演資料(第2部):エンジニアとしてこの先生き残るために(PDF:4.7MB)

PDFファイルをご覧いただくためには「Adobe Reader」がインストールされている環境が必要となります。

社員メッセンジャー

NTTコミュニケーションズヒューマンリソース部

植田 純生

ヒューマンリソース部が掲げる「人は競争力の源泉」というビジョンの下、全社の人材開発を担当しています。技術顧問をはじめ、NTT Comにおけるさまざまな人材開発の取り組みをお届けします!

関連記事

お問い合わせ

NTT Comでは、いつでもご連絡をお待ちしています。
ご用件に合わせて、下記の担当窓口からお問い合わせください。