えふしんに聞く「僕が若手エンジニアならこれを学ぶ!」トップランナーの考える成長戦略

「モバツイ」の生みの親であり、現在はBASE株式会社の取締役CTOを務める、「えふしん」こと藤川真一氏に、「もし、あなたがいま若手エンジニアだったら、どんな成長戦略を採りますか?」と聞いてみました。若手エンジニア必読のえふしん流7つの戦略とは?

えふしんに聞く「僕が若手エンジニアならこれを学ぶ!」トップランナーの考える成長戦略

「何を学び、どのように技術力を向上させていくべきか」は、若手エンジニアにとって非常に悩ましいテーマのひとつ。

キャリアが浅いころは学習を進める“勘どころ”がないため、なかなか効率の良い技術習得ができません。加えて、過去の時代と比較すると学ぶ対象であるプログラミング言語やIT領域も圧倒的に広範囲になっています。そのため、少し方向性を見誤ってしまえば、無駄な技術の学習に時間を割いてしまう可能性が高いのです。

その課題を解決する有効な方法があります。それは、著名なエンジニアの方々から、「若手エンジニアが採るべき成長戦略」を聞くこと。彼らの深い考察力と長い経験からアウトプットされた戦略には、有益なノウハウが詰まっています。

今回は、モバイル端末向けのTwitterウェブサービス型クライアント「モバツイ(現在はサービス終了)」の生みの親であり、現在はBASE株式会社の取締役CTOを務める、「えふしん」こと藤川真一(ふじかわ・しんいち/@fshin2000氏に、「もし、あなたがいま若手エンジニアだったら、どんな成長戦略を採りますか?」と聞いてみました。若手エンジニア必読のえふしん流7つの戦略とは?

(1)「どの言語から学ぶべきか?」なんて、考えなくていい

エンジニアの間で、ときおり「どのプログラミング言語から学ぶべきか」について議論されることがあります。きっと皆さんも、「えふしんが選ぶ、最初に学ぶべき言語は〇〇だ!」という答えを期待されていることでしょう。

いきなり期待を裏切ってしまい非常に心苦しいのですが、「最初に学ぶべき言語はどれ?」という議論は、正直なところほとんど意味のないものだと思っています。なぜなら、言語のトレンドは必ず変化していくものだからです。

例を挙げると、現在Go言語がとても流行していますが、10年前この言語は存在すらしていませんでした。また、多くの方がご存知のように、IT企業は規模が大きくなってくると自社製のOSやプログラミング言語、フレームワークなどを新しく作り始めるケースが多い。なぜかというと、自社で技術の普及にコミットすることで、技術トレンドの変化というリスクを低減することができるからです。

たとえば、FacebookがReact.jsHipHop Virtual Machineを開発したことはその好例です。きっとこれから5年後、10年後には、今とは全く違ったテクノロジーが流行しているでしょう。逆説的に言えば「最初に選んだ言語が何か?」によってそのエンジニアの価値が決まることなんてあり得ないのです。

あえて「最初に学ぶべき言語」の解を出すなら、「自分が入った会社で使われている言語」で全く構いません。

それでは、若いエンジニアは何に注力すべきなのでしょうか。その答えは、どのようなプログラミング言語を使ったとしても、その技術のポテンシャルを最大限に引き出せるように使うことです。その際に、「コンピュータはなぜ動くのか?」「どうすればコンピュータリソースを効率的に使えるか?」などの本質的な知識を身につけておくと助けになるでしょう。そのための具体的な方法を、次の章で解説していきます。

(2)コンピュータの仕組みを学ぶには「モバイル」をやるべし

コンピュータの仕組みを学ぶ一番てっとり早い方法は、モバイルやIoTのプログラミングをやることです。モバイルやIoTのコントローラはハードウエアリソースが限られており、メモリやCPUを意識しながらプログラミングする必要があり、必然的にコンピュータの仕組みに詳しくなれるのです。

もしかしたら読者の中には「自分はWebエンジニアだから、モバイルやIoTに携わる機会がない」というエンジニアもいるかもしれません。しかし、こうした考え方は自分のチャンスを自分で逃しているとも言えます。

PCさえ持っていれば、プログラミングを始めるのにお金はいりません。開発環境からプログラミング言語、各種フレームワークに至るまで、ありとあらゆるツールが無料で手に入ります。スマートフォンやArduinoなどのハードウエアも自分のお給料で買えないものはありません。にもかかわらず、自分にとって未知の領域にチャレンジしないのは非常にもったいないことです。自ら成長の機会を少なくしているわけですから。

また、コンピュータの仕組みを学ぶ上で役立つ書籍もたくさん出版されているので、そうした本を読むのも有益だと思います。

モバイルやIoTの本ではありませんが、たとえば、ベストセラーとなった『プログラムはなぜ動くのか』。

C言語の基本中の基本を解説してくれる『はじめてのC』。

普段使っているPHPの仕組みを解説した『PHPはどのように動くのか ~PHPコアから読み解く仕組みと定石』。

オブジェクト指向の概念をわかりやすく理解できる『Java 謎+落とし穴 徹底解明(ただし、この本は絶版ですが)などがおすすめです。

これらは、エンジニアの技術向上に大きく寄与してくれます。

1

(3)“学びどき”の領域は、機械学習と人工知能

あえて“学びどき”の領域を挙げるならば、それは間違いなく機械学習・人工知能でしょう。

Webアプリではユーザーからどんな情報でも取れるわけではありません。ユーザビリティの観点からも「長いフォームを用意して、ありとあらゆる情報をユーザーに入力させる」のは避けるべきです。

そのため、個人属性のような取りにくい情報は、Web上で収集できるデータ(行動ログなど)から類推する仕組みが必要になります。各IT企業がこぞってその仕組みを導入していることは、多くの方がご存知でしょう。それゆえに、機械学習・人工知能のニーズが高まっているのです。

だから、それらの技術の方法論をしっかり理解しておくと強いです。仮に自分がコードを書かずチームで分業するとしても、各メンバーと連携するうえで、システム実現の難易度を理解しておくに越したことはありません。

ただし、機械学習・人工知能の技術を利用する際に気をつけなければいけないことがあります。それは、「そのアルゴリズムによるアウトプットを、いかにして具体的なサービスに結びつけるか?」を常に考えておく必要があるということです。

「この課題を解決したい」とか「このデータを活用してこういう効果を出したい」という明確な方針がなければ、たとえこれらのテクノロジーを利用したとしても成果に結びつけることはできません。使い道のない大量のデータが生み出されてしまうだけです。

しかし、「サービスに結びつける」ことができるエンジニアは、現在とても少ないと私は考えています。だからこそ、機械学習・人工知能を担うエンジニアは「サービス全体を設計するスキル」もしくは「サービス全体を設計できる人と連携をとって仕事をするスキル」を持っておくと、今後はとても重宝されるでしょう。

(4)えふしん流・プログラミングの心得

2

このあたりで、プログラミングを学習する際のアプローチについて話したいと思います。

エンジニアHubに会員登録すると
続きをお読みいただけます(無料)。
登録のメリット
  • すべての過去記事を読める
  • 過去のウェビナー動画を
    視聴できる
  • 企業やエージェントから
    スカウトが届く