こんにちは。2021年4月にCROOZ SHOPLIST株式会社に新卒入社した「KEN☆YAMAGUCHI」です。
現在、開発部に所属しておりサーバーサイドエンジニアとして、主にサイト内の販促プロモーションの機能開発をしています。
今回は、私が開発未経験でエンジニアになって感じたことや、実際の開発研修内容についてお話しさせていただければと思います。
少し長いですが、最後まで読んでいただければ嬉しいです。
総合職採用なのにまさかのエンジニアに、、、
まず、私は総合職採用でCROOZ SHOPLIST株式会社に入社しました。当然内定をもらった時にエンジニアになることなんて1ミリも考えずにいました。
内定者は、入社前研修でSQLや基本情報技術者試験の勉強を行いますが、ITの知識をつけることを目的としているだけだと考えていました。
しかし、入社前研修期間中のある日、「13名いる新卒メンバーの適性を見て、そのうちの約半数を開発部署に配属とする」と告げられました。選ばれたメンバー7名は4月には配属されず追加で開発研修を行いました。
私もそのメンバーに選ばれ、エンジニアとして社会人生活をスタートすることになります。開発の経験などもってのほか、全くITの知識すらない自分がエンジニアとなる姿は想像もつきませんでしたし、エンジニアリングに興味もなかったので不安でいっぱいでした。
ここから怒涛の研修がスタートします、、、。
SHOPLISTが新卒を未経験でも開発部配属する理由とは
2018年~2020年までの間、新卒の開発研修は行っておらず全員開発部以外の職種に配属なっておりました。
そんな中、ITの知識だけでなく実際にエンジニアとして働くことで、開発部以外の部署に転向した後も、開発側とのコミュニケーションを円滑に進めることができ、それが会社にとって有益であるとして新卒未経験でも開発部に配属することが決定されました。
開発部に配属されたからと言ってずっとエンジニアとして働かなければならないわけではなく、新卒社員の育成の一環であり、それぞれの自らが描くキャリアを最優先に考えてくれます。
新卒未経験エンジニアを育成する研修内容がハードすぎた
さて、ここからは先述した開発研修についてお話したいと思います。
開発研修は大きく下記3点に分かれていました。
①基本情報技術者試験の勉強(午前問題の正答率8割がボーダー)
②SQL研修(SHOPLIST内のデータ抽出作業)
③PHP研修(じゃんけんゲーム作成・ブログサイト作成・簡単なECサイト作成)
基本情報技術者試験の勉強はいわば座学のようなもので、SQL研修・PHP研修は実技のような感覚でした。
①基本情報技術者試験の勉強
基本情報技術者試験とは、その名前の通り、主にプログラマー・システムエンジニアなどのIT職に従事する人、あるいはこれから従事しようとする人達を対象とした試験です。試験では「IT業界で働くために必要な基本的知識を持っているか、情報処理に必要な論理的な考え方はできるか」などを試される問題が出題されます。また経営やマネジメントについてもある程度の知識が問われます。そのため試験勉強を通して全般的なIT力の向上が望めるものです。
試験の合格基準は正答6割ですが、成果指標は正答率8割と厳しい設定がなされていました。そもそも3割にも満たない正答率でしたので、厳しすぎだろ!と怒り交じりの弱音を吐いていたのを覚えています(笑)。
弱音を吐き続けても仕方ないので、気持ちを切り替え、毎日過去問を解いては間違えたところの復習を繰り返す中で、苦手分野の洗い出す作業を行いました。苦手分野を潰しつつ得意分野の正答率を上げることを意識して勉強をし、何とか正答率8割のボーダーをクリアすることができました。
②SQL研修
この研修ではSHOPLISTの抱える膨大なデータを使って様々なデータ抽出課題をこなしていきました。
ここでは主にデータ抽出を行いましたが、躓いた所は複数のテーブルの結合、サブクエリ、WITH句なを使用して抽出するクエリ作成です。
今エンジニアの方が見ていたら怒られてしまうかもしれないですが、内部結合と外部結合の違いをよく考えずに、適当にLEFT JOINで結合していた覚えがあります(笑)。ただここの使い分けは、複雑で長いクエリを作成するときは意識する必要があるため、今でも意識して行っています。
そしてWITH句についてですが、複雑なデータを取得する際に使用され、簡単に言えば、クエリの中にクエリを作ることです。実際サブクエリを使用するとかなり読みづらくなってしまます。
そこで使用するのが、WITH句です。WITH句を使えば「クエリ内に新たにテーブルを作る」ことができます。サブクエリ自体もクエリの中にクエリを書くので、非常に似ているのですが、WITH句で書くとそのテーブル内で何度でも使い回すことができる点が大きく違います。
また一般的にWITH句はサブクエリと比較すると、可読性が高くなります。ただパフォーマンス観点等を考えると使い分けが必要ですが、、、
③PHP研修
PHP研修では先述したようにじゃんけんゲーム・ブログサイト作成・ECサイト作成を行いました。
正直メインであるこの研修が一番しんどかったです。(笑)もちろんソースコードに触れたこともないわけですから、じゃんけんゲームを作ることに苦労しました。コンピュータがグーしか出さないとか、勝っているのに「負け」と判定されてしまったりと上げたらきりがないくらいエラーとの戦いでした。
まず最初に学んだことは、IF文でした(笑)。分岐処理はプログラミングの基本でもあると思いますが、そんな初歩的なところでも躓いていました、、、
そこから、foreachを使用して繰り返し処理を学んだりしました。ここで出てきた配列に関して一番難しかったところかもしれません。連想配列ともなると吐き気がしてきました、、、
そしてブログ作成やECサイトの作成になると、ログイン機能実装や記事の作成・更新削除など、難易度は上がりました。やっとの思いで合格点をもらえる成果物を完成させることができました、、、
ここの研修はかなり内容が濃いのでここでは簡単に触れるだけにしたいと思います。
ただ、Google先生を人生で最も使用した期間だと自負しています(笑)。
開発研修を経験して
ここまで読んでいただくと、開発部配属になった時の心境・実際の研修内容を分かっていただけたかと思います。
ここではそんな経験がどんな心境の変化をもたらせてくれたのかをお話ししようと思います。
今まで、WEBサービスが裏でどんな仕組みで動いているのかなんて考えたこともなく、プログミングなんて難しくて到底自分にはできないと考えていました。
もし開発部配属にならなければ、その仕組を学ぶことや、プログラミングの経験をできなかったと思うので、非常に貴重な経験をさせてもらえていると思っています。
この経験はいつかエンジニア以外のどの職種でも絶対に活きてくるものだと確信しています。
次はそんな経験をした自分が考える、未経験でエンジニアを目指す際にどんな会社選びをしたらいいのか、について生意気ながらお話ししたいと思います。
未経験でエンジニアを目指すならどんな会社を選ぶべきか
今この記事を読んでくださる人の中にはエンジニアの世界に足を踏み入れようとしている方もいるかもしれないので少しこのテーマについても触れておきたいと思います。
まだ、エンジニアになって1年も経ってない自分が口にするのは大変恐縮ですが、自社開発を行う会社でエンジニアとしてスタートすることをお勧めします。
理由としては、以下3点です。
①保守性の高いコードを書く機会が得られやすい
②エンドユーザーが見えやすい
③様々な部門との連携が必要
①保守性の高いコードを書く機会が得られやすい
自社開発の企業は、成果物を納品して終わりの企業とは違い、ずっと同じサービスを開発します。そのため、拡張性、保守性の高いコードを書く必要を常に意識しなければなりません。ここは肌で感じている部分であり、コードレビューでよく指摘していただけます。
②エンドユーザーが見えやすい
自社開発のエンジニアは、納品して終わりではなく、実際にそのサービスを利用したユーザーからのフィードバックをもとに、開発を進めます。自分が開発した機能が、しっかりと使われていることが分かるので、非常にやりがいを感じやすいと思います。
③様々な部門との連携が必要
ここは一見デメリットのように捉えられがちですが、開発だけしかできないエンジニアより、ビジネス的な観点も持っているエンジニアの方が市場価値的に高いと思うからです。
まとめ
エンジニアの世界とは無縁だと考えていた自分が、今ではエンジニアとして(何とか)働けています。
開発研修はかなり濃いので、別の機会にお話しできたらと思います。
改めて、ITスキルはとても重要であり幅広い分野で求められているスキルなので、エンジニアとして経験を積ませてもらえていることにとても感謝しています。
まだまだ未熟なエンジニアなので、日々精進します。そして自分の成長もこのブログを通して感じてもらえたら嬉しく思います。
そしてこの記事が少しでもお役に立てればと思いますので、今後もお楽しみにしてください。
それでは次回のブログでお会いしましょう!