はじめに
はじめまして。パーソルキャリア株式会社でフロントエンジニアをしている深作です。時の流れは早いもので、新卒でパーソルキャリアに入社してから、もうすぐ2年になります。
近頃、学生の方との面談を担当することが増えてきたのですが、その中で「なぜエンジニアの道を選んだのか」という質問をよく受けます。面談の時間は限られているため、過程をすっ飛ばして端的に理由を回答しているのですが、良い機会なので、一から振り返ってみようと思います。私は人の過去話を聞くのが面白くて好きです。この記事の読者の方にも是非楽しんでいただけたらと思います。
プログラミングとの出会い
私がはじめてプログラミングに触れたのは、大学1年生のときの講義でした。
C言語を使って、コンソールに Hello, World! と表示させるところからスタートしました。これ、何の役に立つんだ?とちょっと思ったりもしましたが、プログラミング自体がはじめてだったこともあり、とても新鮮で楽しかったのを覚えています。
余談ですが、私が情報工学部を選んだ理由は「なんかパソコン使うのカッコ良さそう!」というテキトーなものでした。
なんかすげえ奴がいる
講義が進むにつれて、内容も徐々に難しくなっていきました。
課題が終わった人から帰って良いよ、という講義スタイルだったのですが、配列やポインタを扱い始めた辺りから、周りと比較して明らかに早く帰る人が出てきました。私が課題の半分も終わっていないのに、とっとと退出していくわけです。
「どういうカラクリなんだ?」と疑問に思った私は、その帰ろうとしている奴を捕まえて質問してみることにしました。すると「中学の時からプログラミングやってるから」と言われました。納得すると同時に、一丁前に悔しいなと思う自分もいました。
そこで「どうやったらお前みたいになれる?」とストレートに質問しました。その人はこう答えてくれました。
「なにか自分の周りで、困っていることを見つけるんだ。それを自力で調べながらプログラムの力で解決すると良いよ。」
これを聞いた当時は「え?それだけ?何かオススメの本とか紹介してよ!」と思ったものですが、そう言い残してスタコラ帰ってしまったので、他にどうしようもありません。
きっと一番の近道なんだと信じて、その人の言うとおりにすることにしました。
困っていること探し
さて、自分の周りで困っていることを探してみることにしたのですが、それはすぐに見つかりました。
学生用のポータルサイトがあったのですが、ログイン時に毎回マトリクス認証を要求してくる仕様になっていました。学生証の裏に、個人によって違う英数字のマトリクスが書かれていて、それをログイン時に入力する、というものでした。
ポータルサイトは、講義の履修予約や成績の確認など、利用頻度がかなり高く、毎回サイフから学生証を取り出して入力する、というのを非常に煩わしいと感じていました。そこで、マトリクス認証を自動で完了させるようなプログラムを作ってみよう!と考えました。
はじめての個人開発
作りたいものは決まったのですが、一体どうやったらアイデアを実現できるのか全然分かりませんでした。講義で似たような内容を扱ってくれていればよかったのですが、講義内容と私の必要としている知識は全く被っていませんでした。しかし、なんとかするしかありません。
「自動入力 プログラミング」など、それっぽいワードでひたすらググり続けました。すると、"Chrome拡張機能"というものを自作すれば良さそうだということがわかりました。ここに辿り着くまでに丸1日費やしたと思います。
そこからは「ではChrome拡張機能はどうやって作るのか」「必要な言語はわかったが、どういう記法なのか」と芋づる式に検索が捗っていきました。
このときの私は、知らないことがどんどん分かるようになっていくのが楽しく、寝食を忘れて開発に没頭していました。
そして1週間ほどかけて、はじめての個人開発作品となる"マトリクス認証自動入力プログラム"を完成させました。
個人開発が楽しい!
マトリクス認証自動入力プログラムを完成させてからは、どんどん作りたいモノのアイデアが浮かんできて、それを次々と開発していきました。
スマートフォンアプリやブラウザゲームなど、ジャンルや開発言語などに縛りはなく、ただ作りたいものを調べて作っていくのは本当に楽しかったです。
エンジニアとして仕事をする上で必要な"わからないことを調べる"スキルは、この時期に養われたように思います。しかし、この時点ではまだエンジニアとして働くことは全然考えていませんでした。あくまでも趣味だと捉えていました。
プログラミングのアルバイト
趣味で開発を続けながら、学生生活を送っていたある日、友人とアルバイトの話になりました。当時の私は、割と時給の良い学習塾の先生をやっていたのですが、友人の中の一人が、私の時給よりも高いプログラミングのアルバイトをやっていると言いました。「好きなことして時給も高いなんて天国か?」と思った私は、家に帰ってすぐにプログラミングのアルバイトについて調べました。
個人開発の経験はあったものの、チームでの開発経験はなかったため、応募の敷居は高かったです。それでも、個人開発の作品のURLを添付したりして「やる気だけはあります!」とアピールして、なんとか採用まで漕ぎ着けました。採用してくれたこの会社には今でも感謝しかありません。
faviconが設定できない
WEBサイトの受託開発を行なっている会社に採用され、仕事としてのプログラミングがスタートしました。はじめてアサインされたissueのタイトルは"faviconを設定する"でした。
プロダクトはRuby on Railsで開発されていましたが、私は触ったことがありませんでした。しかし、分からないことを調べて進めるのは個人開発でずっとやってきたことなので、同じようにできるだろうと考えていました。ですが、どれだけやっても上手くいきません。結局5時間ほど使ってissueを終えたのですが、「faviconすら満足に設定できないのか...」と自信を喪失しました。
戦力になりたい
個人開発とチーム開発では、要求されるスキルが異なります。
個人開発では全部自分で決定する難しさがありますが、対してチーム開発では、周りとのコミュニケーションや既存のコードに上手く合流する能力が試されます。
faviconの設定に5時間もかかっているようでは、会社のお荷物もいいところです。とにかくチーム開発に慣れなければ!と思った私は、可能な限りアルバイトの時間を増やしました。アルバイト時間外も、使われているフレームワークや言語について勉強しました。とにかく戦力として認められたくて必死でした。
就職活動
アルバイトを頑張りながら、就職活動にも力を入れていました。
エンジニアとして働くのもアリかな、と思い始めていたものの、実力的に未熟でしたし、何より将来の可能性を狭めたくありませんでした。幅広くいろいろ見てみようと考えた私は、商社や金融コンサル、保険営業など、いろんな業種・職種のインターンに参加しました。インターンの選考だけで40社くらい受けたと思います。たくさんのインターンに参加したものの、しかし、結局はどの道に進むか迷っていました。
はじめての評価
アルバイトをはじめて半年ほど経過した頃、契約期限を迎え、エンジニアとしてはじめて評価を受けました。契約を延長したい、という旨の文言と昇給内容が書かれたシンプルなメールだったのですが、戦力として少なからず認めてくれていることが伝わってきて、とても嬉しかったです。そして、このときはじめて、仕事としてエンジニアをやっていける!という自信が持てました。
エンジニアの道へ
ギリギリまでどの職種にしようか悩みましたが、やはりこれだけ情熱を持って取り組める仕事は他にないだろう、ということでエンジニアの道に進むことを決めました。
本当はあらゆる職種に触れ、面白さと苦労を知ってから進路を選ぶことができたらベストですが、残念ながらそんな時間はありません。限られた時間の中で、たくさんの選択肢がある中で、自分が"興味を持って取り組んだ"というのはきっと運命で、それに全力を注ぐことが良い未来につながるのではないかと思います。(まだ社会人2年目のひよっこなのに悟ったようなこと書いちゃいました(´///ω///`))
ちなみに、パーソルキャリアとはインターンの時にご縁があり、その繋がりで入社を決めました。
おわりに
相変わらず個人開発も続けており、本当にコードを書くのが好きなんだな、と思います。エンジニアの道を選んだのは間違いなかったと思います。チーム開発にも独特の面白さがあり、常に2種類の別のゲームをやっているような感覚です。まだまだ未熟ですが、これからも開発を続けていきたいなと思います!
深作 亮介 Ryosuke Fukasaku
エンジニアリング統括部 サービス開発部 第2グループ エンジニア
2021年パーソルキャリア入社。現在はSalariesの開発を担当している。
※2022年12月現在の情報です。