デジタル技術の進展と共に、プログラミングスキルはエンジニアに限らず、多様な職業で求められるスキルとなっている。驚くべきは、プログラミングが直接関係ないと思われる領域でも、この傾向が顕著に現れ始めていることだ。

ゴールドマンサックスでM&AやIPOのアドバイザーとして活躍し、現在はプライベートエクイティファンドで非上場企業への投資やバリューアップを担当している内山さんは、財務モデリングとプログラミングの類似性を強調する。

元ゴールドマンサックスの社員が語る、プログラミングスキルの汎用性とは

「会社の収益計画や財務3表の作成では、Excelで売上や純利益などの勘定科目の関係式に基づいて関数を用いて将来の予測値を作り出します。M&Aでは、企業買収の際の価格分析や適正価格の分析にも同様の工程があるのですが、その根本で求められるのはプログラミングに通じる思考回路だと思うんです」と内山さんは具体的な例を挙げて語る。

ゴールドマン・サックスを経て、現在J-STAR株式会社で活躍する内山さんは、神奈川県に位置する私立栄光学園での中高一貫教育を経て、内山さんは技術と社会の架け橋となる夢を抱き続けてきた。

「私の祖父は旧建設省の役人で、高度経済成長期の日本で高速道路の建設プロジェクトに携わっていました。その話を聞き、私もいつか大きなプロジェクトに関わりたいと思うようになりました。ただし、現代では技術的なバックグラウンドが異なるため、必ずしも土木分野に限定されるわけではありません。そこで、幅広くテクノロジーの世界を勉強しようと思い東京大学工学部への進学を決めました」と内山さんは語る。

東京大学理科一類に進学した後、内山さんは工学部システム創成学科でコンピューターシミュレーションと環境経済のシミュレーション研究に没頭した。物作りへの興味を深めつつも、内山さんが関心を移していったのはビジネスや社会への影響を大きく与える仕事。

そんな内山さんは、大学時代に理系学部でのプログラミング学習の必要性を感じており、「このデジタル化が進む社会の中で、プログラミングに触れずに生きていくことは難しいかもしれません」と続ける。

プログラミングスキルはエンジニア職に限定されるものではない

「工学部は当たり前ですが、それ以外の学部でもプログラミングスキルが必要になります。経済学部ではデータを使った研究、農学部、医学部、薬学部では実験データの統計処理……文学部の心理学ではソーシャルゲームのアクティビティ分析を行っている知り合いもいました。それだけ幅広い領域でプログラミングが必要とされていることを、当時実感したんです」

内山さんの発言からは、プログラミングスキルが単にIT系の技術職に限定されるものではなく、金融や経済の分野でも大きな価値を持つことがわかる。こうして、学生時代にプログラミングスキルの必要性を強く感じた内山さんは、プログラミング学習プラットフォーム「paiza」での学習を始めたという。内山さんは、多数存在するプログラミング学習ツールの中からpaizaを選んだ理由に、問題を解きながら学べる点を挙げた。

「paizaに登録したのは大学3年生の時です。プログラミング初心者だった私は”Hello, World”からのスタート。それでもpaizaのシステムは初心者にも優しく、学習の効率化に大きく貢献してくれました」と、paizaのシステムの使いやすさを強調してる。このようなユーザーフレンドリーなインターフェース設計も、paizaの登録者数が69万人(2024年2月現在)に達している一因かもしれない。

「プログラミングは、理論だけではなく、実際にコードを書いてみて、なぜバグが発生したのかを自分で考えることが重要です。練習においても、コードを何度も読み直し、問題点を見つけることが、スキル向上の近道なのではないでしょうか」

プログラミングを学び始めた内山さんはpaizaで学習と並行して、NTTデータ経営研究所においてデータ分析のアルバイトを通じてPythonとSQLを用いた実践的なスキルを磨いていた。就職時にはエンジニア職を選ばなかったものの、そのスキルは意外なところで役立っているという。「財務モデリングや事業推移のシミュレーションでは、様々な変数に基づいて事業を抽象レイヤで組み立て、具体的な計算式に落とし込むプロセスがプログラミングに似ています」と、内山さんは実体験から得た洞察を共有する。

論理的思考力を鍛える手段としての「プログラミング学習」

プログラミングを学ぶことによって身につくのは、コーディングの技術だけではない。内山さんは、プログラミング学習は論理的思考力を鍛えるにあたり、効果的な手段となり得ると話す。

「論理的思考力を養う方法として世の中に出回っている手段の中で、プログラミングは非常に有効な方法だと思います。学習の過程で、数字のつながりや複雑な関係性を理解することができるからです。例えば、ペーパーテストで自分がやっていることをプログラミングに落とし込もうとすると、その過程で抽象的なロジックを組み立て、コードに落とし込む必要があります。ただし、そう簡単に直接コード化できるわけではありません。コードを書く過程で、『このケースを考慮していなかった』とか、『ここでの場合分けが不足していた』と気づくことがありますよね。コンサルティングやファンドの分野では、チームで何かを成し遂げる経験やソフトスキルの重要性はもちろん、数字に対する感覚も同様に重視されます。例えば、数字同士の繋がりを考える力や数字に触れてきた経験などが求められることもあるでしょう。そうした数字の感覚を養う過程で、プログラミングやデータ分析の経験が活きました」

この先、IT業界の未来を見据えれば、AIの発展がエンジニアの作業効率や業務範囲を変えていく可能性は完全には否めない。とはいえ、AI、特にchatGPTのような技術が生成するコードに対しても、最終的にはそのコードを適切に評価し、考慮漏れがないかどうかをドメイン知識のある人間が判断しなければならない。

実際にロジックを組んで、多角的なケースに対する試行錯誤の繰り返しを鑑みても、最小のコストで最大の成果を得られるシステム仕様の策定には、論理的思考力は欠かせないスキルになるだろう。

プログラミングを学ぶことで磨かれた論理的思考力をビジネスの実務で活かし、自身のキャリアにおいて最大限の成果を追求する。業界を問わず、現代の一流ビジネスパーソンに本当に必要なスキルは、ロジカルに課題を紐解いていく「エンジニア的思考」なのかもしれない。

<取材後記:弊社代表取締役社長/CEO 片山良平より>

内山さんの取材を追えて、改めてプログラミングとは、たんにコードを書くことではなくて、コンピューターの振る舞いのルールを作ることだという発見がありました。

普段何気なくやっている仕事でも、コンピューターにやらせようとすると、優先度設計、判断基準設計、その後に具体的な作業がある、というようなロジカルシンキングで言うところのMECE(漏れなく、ダブりなく全体を網羅する)をより厳密に定義していく必要があります。

MECEで様々な場合分けが想定できていなければ、考慮漏れが存在するシステムになってしまいます。現在どのような仕事でもシステムが絡まないものはありません。

また、今後AIがプログラミングも含め様々な提案をしてくるようになっても、考慮漏れがないか?という視点で判断ができるようになるためには、結局人間側が論理的かつMECEに物事を把握できなければ、正しい判断はできないでしょう。

そういった意味でプログラミングはそれら論理的思考力を学ぶのにも最適な学習法であり、すべてのビジネスパーソンのキャリアにとっても有用なものだと感じました。

(取材・文:すなくじら、撮影:渡会春加)

 presented by paiza

Share

Tech Team Journalをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む