安川 逆に僕からお聞きしたいのは、牛尾さんはソフトウェア開発者としてどのように勉強をされているのですか? プログラミングの世界って多岐にわたっているので求められる知識の範囲が本当に膨大で、システマチックに学ぶのが難しいイメージもありますが。
ソフトウェアの分野も基礎の学びがすごく大事
牛尾 確かに覚えることは膨大なのですが、ソフトウェアの分野はシンプルにいうと、大学で教えているようなことから学ぶのが一番の王道だし近道です。プログラミング言語は、JAVA、C#とか、AI開発でよく使われるPython等いろいろありますが、一つをきちんとマスターできれば他でも応用が利きます。
余談ですが、アメリカのソフトウェア開発の現場では、コンピューターサイエンス学科を出ているか、もしくは同等の力がある人しかエンジニア職に採用されません。日本では文系でもSE職につけて、大学で学んだことなんて現場では役に立たないよという風潮ですが、もうスタート地点のレベルが雲泥の差です。
基礎の学びはすごく大事で、コンピューターサイエンスの学習でまず最初にやるとよいのは、「アルゴリズム」と「データ構造」の学習です。どんな仕組みとどんなパターンがあってプログラムは組まれているのか、問題が生じたらどう解決するのかの主なパターンを理解しておきます。あとリードコードというサービスがあって、マイクロソフトなりアマゾンなりテック企業を受けるときに、みんなこのサービスを使って練習していますね。コーディングインタビューの練習もできたりするのでオススメです。
あとは実務をやっていく中、知らないことが出てきたらその都度きちんと勉強することの繰り返しです。僕は何かを学んだら、それを思い出しながらブログに書く癖をつけていますが、書いて整理していると、理解が不十分だった点がクリアに見えてくるし、すぐアウトプットするのはすごく学習効率がいいです。
勉強法ひとつで仕事も人生の面白さも倍増する
安川 なるほど。アクティブリコールをブログでやっているようなものですね。
アウトプットは記憶の定着によいですし、そこにフィードバックも加わるとさらに効果的なので、ChatGPTを活用してフィードバックを返してもらいながらやる勉強法も個人的には良いと思っています。
最後に、さんざん効果的な勉強法の話をしてきたあとになんですが(笑)、効率よくパフォーマンスを上げる勉強法ばかりでなく、「純粋に楽しむための勉強」にもっと目を向けたほうがよいとも思っています。僕は医者として、がんでお亡くなりになる方を日常的に見ているんですが、仕事は人生のひとつの軸ではあるけれど、決してそれが全てじゃない。だからキャリアにとくにプラスにならなくても、自分が心から関心のあることを学び続けて、人生が豊かになることこそ大切だと思っています。
牛尾 僕も同様の考えで、仕事だって勉強だって、一番大切なのは「それで幸せを感じるかどうか」に尽きると思う。イヤイヤやる勉強は意味がなくて、エンジョイできる勉強法ひとつでレバレッジがきいて仕事や人生の面白さが倍増したら最高だなと常に思っています。今日は刺激的なお話をありがとうございました!
安川 こちらこそありがとうございました!
(ブックファースト新宿店にて)
安川康介(やすかわ・こうすけ)
1982年、兵庫県生まれ。2007年慶應義塾大学医学部卒。日本赤十字社医療センターにて初期研修後、渡米。米国ミネソタ大学医学部内科研修、テキサス州ベイラー医科大学感染症研修修了。米国内科専門医・米国感染症専門医。南フロリダ大学医学部助教。YouTube登録者数15万人、著書に『科学的根拠に基づく最高の勉強法』(KADOKAWA)がある。
牛尾剛(うしお・つよし)
1971年、大阪府生まれ。米マイクロソフトAzure Functionsプロダクトチーム シニアソフトウェアエンジニア。シアトル在住。関西大学卒業後、大手SIerでITエンジニアをはじめ、2009年に独立。アジャイル、DevOpsのコンサルタントとして数多くのコンサルティングや講演を手掛けてきた。2015年、米国マイクロソフトに入社。エバンジェリストとしての活躍を経て、2019年より米国本社でAzure Functionsの開発に従事する。著作に『ITエンジニアのゼロから始める英語勉強法』などがある。ソフトウェア開発の最前線での学びを伝えるnoteが人気を博す。