経済系学部に在籍するAさんは、高校時代からスタートアップでインターンを始め、読書を通じた独学でソフトウェアエンジニアリングを習得した。就活の結果、データベースエンジニア職でサイバーエージェントなど複数のメガベンチャー企業から内定を獲得した。Aさんは、自分の経験をもとに「領域を跨(また)いだ専門性は希少価値が出せるし、文系だからこその分もあるのでは」と話す。一方で、経済学科は“文系”ではないという持論ももっているという。
この記事では、非情報系学部の所属ながらなぜ彼がソフトウェアエンジニアを志したのかを聞き、エンジニアリングを習得した方法、専攻外ゆえに苦労した経験などを探った。【北川直樹】
1. 競プロをきっかけにエンジニアリングに興味を持った高校時代
2. スタートアップよりもメガベンチャーの方が肌に合うと感じた
3. ソフトウェアエンジニアを志すものの、非情報系の文系学部に進学
4. インターンを通して自分に合う価値観を探るべし
目次
競プロをきっかけにエンジニアリングに興味を持った高校時代
——ソフトウェアエンジニアリングを始めたきっかけと、経験を教えてください。
A:高校2年の冬に競技プログラミングを始めました。その頃はコロナウイルスの影響で学校の対面授業が無くて、自宅でずっと競プロをやっていました。それがきっかで、独学でPython、C++、C+を学びました。
その後Webに興味を持ち始めてCSS、JavaScriptなどを勉強して、SQLなども学びました。エンジニアとして、スタートアップとメガベンチャーで複数のインターンを経験しています。
——なぜ競プロをはじめたのですか。
A:高校の先輩が競プロのAtCoderをやっていて、勧められたことが直接のきっかけです。加えて情報系の授業を担当していた先生の年齢が自分たちに近くて、その先生が熱心にプログラミングを教えてくれたんです。振り返ると、競プロに取り組みやすい環境だったのだと思います。
——競プロ以外で、プロダクト開発などはしていたんですか。
A:大きなものではないですが、個人開発はしていました。Webやアプリなど色々と手広くやっていましたね。また、友達と一緒にアプリをつくって、アプリストアに出したりもしました。
——プログラミング自体はどうやって学習していたのでしょうか。
A:当時、iOSアプリをSwiftで開発していて、これについては基本的に技術書を読んで勉強していました。本は1日に2〜3冊読むこともありましたね。本を読めば、まず初歩的な単語やモデルといった情報を得られるので、わからないことをネットで調べて深掘ったり、参考文献に載ってる論文を読んだり、といった勉強の仕方をしていました。
これらの自己学習に加え、大学の進学が決まった頃からAI系の自社事業を手掛けるスタートアップでインターンを始めました。
——インターン先は、どんな観点で選んだんですか。
A:当初は機械学習への関心が強かったので、自社事業でそういったプロダクトを作ってる会社で、技術力が高そうな会社を探しました。
受託開発だとクライアントの求める要件に集中する必要があると思うんですが、事業会社であれば技術の蓄積などのメリットが大きく、よりダイレクトに社会に影響を与えられると思ったんです。そういう環境で仕事をしたいと考えました。
——高校生のうちからインターンをしていたんですね。周囲にもそういった人はいましたか。
A:私が働いていた会社には何人かいました。私の場合は、高校の先輩が同じように在学時からインターンをしていたので、先輩のアドバイスの影響が大きかったです。
スタートアップよりもメガベンチャーの方が肌に合うと感じた
——スタートアップでのインターンではどんな仕事をしていたんでしょうか。
A:最初のうちは、機械学習システムのリファクタリングや、既存のアプリケーションの改良といったことをしていました。その後はデータ分析や、ダッシュボード機能の開発なども行いました。
仕事に慣れてくると、大きめの課題に対して自分なりに提案をするようになり、マーケターやセールスの人と話をしながら要件定義、設計なども行いました。
——かなり本格的な業務を担当していたんですね。
A:そうですね。色々な仕事を経験できたのは、はじめてのインターンとしては良かったです。ただ、一方でスタートアップ的な働き方は自分にはあまり合わないなとも感じていました。業務のフレームが未整備な部分もあり、遅い時間までハードに働くような空気感などです。
——それは、スタートアップ的な熱量というものでしょうか。
A:はい。ただ、この辺は人によって感じ方が様々だと思います。私の場合はちょうど大学に入って半年ほど経過していて、対面授業も再開され始めた頃だったので、生活リズムも変化していたんです。
なので、一度区切りをつけてよりフェーズが進んだ組織で働く経験もしたいと考え、サイバーエージェントでインターンすることにしました。
——なるほど。比較してサイバーエージェントはどんな環境でしたか。
A:仕事の進め方やフレームが固まっていて、効率よく仕事に取り組む風土があったように感じます。長時間の労働に頼らず、いかに工夫と改善を重ねて業務を遂行するかを大事にしていました。社会人経験が豊富な社員さんも多くて、私にとっては学びが大きく、仕事をするのが楽しい環境でした。
——サイバーエージェントでは、具体的にどんな仕事をしましたか。
A:初期はインフラ系の仕事をして、その後は機械学習を扱う部署でリサーチエンジニアの仕事をしました。官公庁と共同でDX関連のプロジェクトを行ったり、その取り組みが適切なのかどうかの調査をしたりといったことをやりました。データ分析と、それにまつわる実装の業務を幅広くやったので、コードを書くだけではなく、プロジェクト全体を見据えて課題解決に取り組む姿勢が身につきました。
ソフトウェアエンジニアを志すものの、非情報系の文系学部に進学
——大学は文系の経済学科に進んだそうですが、なぜでしょうか。情報系の学部は考えなかったのですか。
A:前提として、私は経済学科を文系とは考えていませんでした。高校時代にプログラミングを学んでいく中で、直接的に社会課題にアプローチする社会実装に対して興味を持ったんです。エンジニアリングそのものを突き詰めるというよりも、どのように社会に対して貢献するかが自分の中で大事でした。
自分が学びたいことと将来取り組みたい内容を考えると、経済学科の方が学べる内容が近いと考えたんです。
——目的意識がはっきりしていたんですね。
A:プログラミングやエンジニアリングを学ぶというよりは、将来的に自分が何をしたいのか、そのためには何を学ぶ必要があるのか、という点を考えて選びました。
——専攻的にも様々な選択肢がありそうですが、他の職種や業界を考えたことはなかったんでしょうか。
A:当初は、戦略コンサルや外銀などを考えたこともありました。しかし、どうしてもハードワークでクライアントや支援先にコミットするイメージが強くて……。
私はインターン選びでも自社事業をしている会社を探していましたし、実際に経験したスタートアップ的な働き方も、自分にあまりフィットしていない実感があったんです。
ソフトウェアエンジニアとして自らがプロダクトをつくり、社会実装を通して社会課題に貢献することでやりがいを感じられると考え、この職種に決めました。
——エンジニアリングの習得面で苦労はありましたか。
A:実務で学ぶ技術スキルについては、インターンを通して学習できていたと思います。一方で、私の場合は情報系の理系学部で学ぶ人とは違い、コンピューターサイエンスの基礎知識が不足していて、その面で苦労しました。
——詳しく聞かせてください。
A:例えば、特定の言語や技術についてではなく、ネットワークやメモリーなどの前提知識の部分です。こういう部分は人とはなかなか話さない部分ですし、ネットで調べてもあまり出てこないんです。
情報系学部に所属していれば必修の授業で基礎を学びますが、私の場合は技術書を読むなど自分で学んでキャッチアップする必要がありました。そもそも地味な部分というのに加えて、あまり個人で学習しない分野なので、教材探しだけではなく学習時間の確保でも苦労しました。
——文系など、情報が専攻外の人がぶつかりやすそうな壁ですね。
A:そう思います。担当する領域がインフラなどレイヤーが下になればなるほど、文系か理系かの差は大きく出るのではないでしょうか。ただ、学科でコンピューターサイエンスの知識を学んでいたとしても、実際のエンジニアリングで何に使われているかわかっていない人も多いので、自分自身が興味を持って勉強すれば追いつけるレベルだと思います。
しかし、機械学習領域などは修士や博士の人が圧倒的に多いので、こういう分野で戦おうとすると歯が立たないと思います。
——それは知識の総量や理解度の差によるものでしょうか。
A:そうですね。プログラミングの部分というよりは、アルゴリズムに対する理解で差が出ます。文系の人がエンジニアリングを勉強する場合、本を読むかハンズオンでの学習が主になると思うんですが、表面上は理解しているつもりであっても、例えばアルゴリズムがどうなっていて動いているのかがわかっていない人が多い印象です。
一方、情報を大学で学んでいる人は、そこを勉強した上でプログラムを書けるので、理解力と応用力に差が出るんだと思います。
——実際にその差を痛感した経験はありますか。
A:大学1年のときにKaggle*を始めて、いろんな難しいモデルが出てきたので、それを理解するために論文を読んだんです。すると自分には基礎が足りないことがわかって……。ここで修士や博士の人との差を痛感し、機械学習は諦めてデータエンジニアを目指すことにしました。
* 企業などの組織と、データサイエンティストや機械学習エンジニアをつなげるためのプラットフォーム
小手先の技術などは本を読んだり、業務経験を積んだりすることでどうにかなる部分があると思いますが、根幹の知識部分は大きな差が付くなと感じました。
——逆に、文系学部の人だからこそあるような強みは何かあると思いますか。
A:あると思います。これは先輩に話を聞いたもので自分の経験ではないんですが、Web系のメガベンチャーは、文系のエンジニア志望のほうがインターンに通りやすいと聞いたことがあります。
——なぜでしょうか。
A:文系でプログラミングを学ぼうとするのって、そもそもやる気がある人という前提があるのに加え、論理的な思考能力っていう部分が評価されることが多いのだそうです。
例えば目標を持って主体的に学んでいる人と、ただ理系の学部に所属しているだけの人を比べると、前者のほうが優秀だよねということです。
——ご自身に当てはめて、強みを感じることはありましたか。
A:私がサイバーエージェントのインターンで所属していた経済学を専門に扱うチームは、エンジニアが居ないという課題がありました。私はデータエンジニアのスキルに加えて経済学の勉強もしていたので、その部分での強みは感じました。領域を跨(また)いだ専門性というのは希少価値が出せますし、文系だからこその分もあるのではと思います。
インターンを通して自分に合う価値観を探るべし
——ソフトウェアエンジニアでの就職を目指す後輩に、アドバイスを聞かせてください。
A:まずはエンジニア職でインターンをすることをおすすめします。実際に会社で働くことで、その会社の良い部分を知ることができるのに加え、どういう文化や環境が自分に合うのかといったことが明確になるからです。
——客観的な視点を持つことも大事になりますね。
A:そうですね。会社の方針、大事にしていることが自分の価値観と合うのか、自分がどういう働き方をしていきたいのか、ということはしっかりと見極めることが大事だと思います。
——インターンをすることのメリットは、他の観点でもありましたか。
A:私の場合は、学習に対するモチベーションを保つのに役立ったと感じます。日々チームで働いていると、自分の足りない部分や、伸ばしていくべき方向性などが具体化していきます。
人とのつながりをつくることもできるので、ダイレクトに就職活動に生かすこともできます。限られた時間を有効に使うには、何に重点を置くかを考える必要がりますが、インターンは学びが多いので、短期でもいいので行っておくと良いのではないでしょうか。
マッキンゼー ゴールドマン 三菱商事
P&G アクセンチュア
内定攻略 会員限定公開
トップ企業内定者が利用する外資就活ドットコム
もっと記事を読む
マッキンゼー BCG ベイン・アンド・カンパニー アクセンチュア 等の内定攻略記事を会員限定に公開しています