今回インタビューさせていただいたのは、自社開発企業のソフトウェアエンジニアへ内定獲得されたTakumaさん。自分に厳しく努力を怠らない姿勢が印象的で、
- 自社開発企業のソフトウェアエンジニアになりたい
- 面接で高評価を得る方法が知りたい
- プログラミング能力のスキルアップを図る方法を知りたい
そんな方にTakumaさんの成功体験をお伝えします。
Takumaさん
目次
自社開発エンジニアの内定獲得のためコンピュータサイエンスを学習
――Takumaさん、インタビューをお受けいただいてありがとうございます。早速ですが簡単な経歴と、プログラミング経験の有無について教えていただけますか?
サイバーセキュリティ専攻の大学4年生です。高校はスポーツ科だったのですが大学入学で理系に転向しました。
プログラミング経験については以下のとおりです。
- 小学生 : RPGツクールを触って、ノーコードで遊びました。
- 中学生 : Unityを使ってC#を学び、ゲーム開発に取り組みました。
- 高校生 : Webに興味を持ち、PHP、HTML、CSSを学びました。
- 大学 : 趣味で、Webアプリを模写することで学習しました。
――Recursionを始めたのはどうしてですか?
以前からプログラミングに興味を持っており、様々な言語やフレームワークを学習していました。しかし、アルゴリズムの理解には課題を感じていました。プログラムを書くたびに、コードが冗長になり、重複した処理が多くなることがあり、効率的なコーディングができていないことを痛感していました。
そのため、アルゴリズムの理解を深め、より効率的かつ簡潔なコードを書けるようになることを目標にRecursionを始めました。
エンジニアの採用面接を突破するスキルを磨く方法とは
――Recursionではどのように学習を進めましたか?
JavaScriptとTypeScriptを選択して学習を進めました。1日の学習時間は平均7時間です。コンピュータサイエンスの初級、中級、上級と進めて、その後はOOPやデザインパターン、データ構造などのトピックにも興味を持ち、積極的に学習しています。これらのスキルを磨くことで、より効率的で高品質なコードを開発することができるようになりました。
また、フロントエンドにも注力して勉強しました。特にReactに関する講義には十分な時間を割いて、念入りに学習しました。
――Recursionを始める前と後では何か変化がありましたか?
Recursionというプログラミング学習サービスに触れる前は、とても基礎的なプログラミングスキルしか持っておらず、Very Easyレベルの問題や単純な関数すらも書くことができませんでした。return文などの基本的な構文も理解できていなかったほどです。
しかし、Recursionで学ぶことで、再帰関数の考え方に慣れ、より複雑な問題を解くための基盤を構築することができました。今では、中程度の難易度を持つ問題に取り組むことができるようになりました。
――Recursionで学んだ知識の中でも特にご自身のスキルアップにつながったと感じられるものがありますか?
Recursionを学んで得た知識の中で、特に自分のスキルアップにつながったと実感しているのは、上級コースのソフトウェアテストの重要性について学んだことです。多くのプログラムは処理が適切に実行されるか、バグが発生しないかテストする必要があります。
実際に、自分で作ったサービスで手動テストと自動テストの両方を実施したところ、不具合を早期に発見し修正することができました。
Recursionでは知識をインプットした後に、実際に自分で試すことができるアウトプットの機会が豊富に用意されています。そのため、より深い知識の定着を促し、スキルアップにつながるのだと思います。
――Recursionを知人におすすめできますか?
もちろんおすすめできます。Recursionでプログラミングを学ぶことで、問題を解決するためのアルゴリズムの知識を養うことができます。さらに、Recursionはプログラミングに限らず、数学、データベースなど、コンピュータサイエンスにおける幅広い分野を学べます。
つまり、プログラミングだけでなく、様々な分野での問題解決能力の向上にもつながるということです。したがって、プログラミング入門者の方やアルゴリズムに興味がある方には、特におすすめしたいと考えています。
自社開発エンジニアの採用面接で評価されたアピールポイントとは
――就職活動についても教えてください。応募する会社を選ぶ際はどのような方針で選びましたか?
私は以下の2点を軸に会社選びをしました。
- 自社開発を行っている企業であること
- 挑戦できる環境があること
自社開発を行っている企業は、新しい技術に敏感であり、常に最新の技術やトレンドにアンテナを張っている傾向があります。そのため、技術的な成長が期待できる環境であると考えました。
また新しい技術やアイデアにチャレンジできる環境であることが、私にとっては魅力的でした。時間がかかってでも、自分の意見やアイデアを取り入れてプロジェクトに貢献できる場所を選ぶことを心がけました。
――選考の流れはどのように進みましたか?
- 人事面談
- 一次面接
- 二次面接
- 人事面談
- インターンシップ
- 最終面接
- オファー面談
- 内定
という流れで選考は進みました。途中、Webテストと書類選考がありましたがそれは免除されています。就職活動を始めてからは5カ月ほどで内定をいただきました。
――面接ではRecursionで学んだことをどのように伝えましたか?
Recursionで学んだことについては、自分自身の成長につながった点を伝えました。
Recursionは膨大な量のカリキュラム、コーディング問題があり、それらは適切な難易度と学習順が設定されていて徐々にスキルアップできるようになっています。しかしその過程においては多くの挑戦や苦労が伴います。というのも「自分で考える」というスタイルで学習を進めなければならないからです。
ただコードをコピーするのではなく、自分の力で考えて答えを生み出すことは、思考力、検索力、問題解決能力を向上させます。Recursionのカリキュラムを少しずつ着実に自分の力で解き進めるうちに、私自身のこれらの能力が向上し、自走できる力が身に付きました。プログラミング能力だけではなく、自走できる力というのは、今後のキャリアにおいても重要な基礎力となると考えます。
――内定獲得おめでとうございます!内定をもらえた一番の要因は何だと思いますか?
努力し続け成長できる人間であると評価していただけたことだと考えています。
これまで、プログラミングにおいても学業においても、自分に厳しく取り組んできました。その結果、スキルアップや問題解決能力の向上につながり、成果を残すことができました。
面接においてもしっかりとこの点をアピールしつつ、応募した企業が求めるスキルや価値観を研究し、自分自身の経験や能力についても正しくアピールできたことも重要な要因であると感じています。
今後も、自分自身に厳しく、成長し続けることを忘れずに、会社に貢献できるように努めていきたいと思います。
自社開発エンジニアの内定を獲得するためにやっておいたほうが良いこと
――これから面接を受ける実務未経験者が内定を取るためにやっておいた方が良いことは何だと思いますか?
- 何故エンジニアになりたいのか
- エンジニアとしてどうあるべきか
について哲学的に深く考えておき、思考を言語化しておくと面接で楽だと思いました。
エンジニアの面接ですから、「そもそもプログラミングとは何か」、「MVCとは何か」などのプログラミングに関する質問もあると思います。これらについても1つ1つ深く考えておくと良いと思います。
また、自社開発企業のエンジニアになりたいなら、その企業の情報をしっかり研究しておくことも大事です。最新の技術やトレンドなどにアンテナを張って、その企業が求めるスキルセットを身に付けられるよう頑張りましょう。
――Recursionを始めたばかりのユーザーへアドバイスをお願いします。
Recursionを始めたばかりの方には、自分の力で悩んで調べて問題を解決することをおすすめします。
Recursionは初めて取り組む人にとっては、非常に難解であり、問題解決のための正しいアプローチを見つけることが困難である場合があります。コミュニティで質問することも大事ですが、問題に直面したら、まずは自分の力で考えてみましょう。今まで学習した知識の中に解決できるヒントがないか振り返ってみるのも手です。そして、Qiitaなどのオンラインリソースを駆使して、問題解決に必要な情報を収集することが大切です。
何とか自力で解くことができたら、他の人の解決法を参考にすることも有用です。自分が知らなかった新しい知識を得る絶好の機会になります。
――今後の展望についてお聞かせください。
最終的に「自社開発を行い、新しい技術に敏感で、挑戦できる環境がある企業」に入社しました。入社後も、自分のスキルアップやアイデアの実現に向けて積極的に取り組んでいます。