はじめに
こんにちは。
18新卒で、プログラミングほぼ未経験でGMOアドマーケティングに入社しました、K.Kと申します。
今回は、5月から6月に掛けて行われた社内研修テックイノベーション基礎研修、6月から始まったOJT研修で学んだ内容に関しての紹介と、新卒として入社をし、半年間、研修や実務を通して感じた、エンジニアとして働く上で重要な要素について書いていこうと思います。
研修内容
GMOアドマーケティングでは5月〜7月にかけて以下の内容の研修を行いました。
- テックイノベーションPJT基礎研修(5月)
- 開発技術研修
- Linux研修
- Git研修
- MySQL研修
- コーディング研修
- 言語研修(PHP, Java, Ruby)
- アドテクノロジー講義
- 各プロジェクトについて
- まとめレポート作成(自習)
- 開発技術研修
- OJT研修(6月)
- GMOSSP開発
- GMOテクノロジーブートキャンプ(毎週金曜日)
それぞれの研修内容に関して軽く紹介します。
テックイノベーションPJT基礎研修
GMOアドパートナーズグループのエンジニア部門強化のためのプロジェクト「テックイノベーションPJT」の活動の一環として、新卒向けの基礎研修を受けました。
- Linux研修
Linux研修では開発を行う上で必須の知識となるシェルなどLinuxの基礎について学びました。
僕は学生時代は全く別のことを学んでいたため、基礎研修でインフラの知識がついたことはとても業務に役立っています。ですがインフラに関しては、コンテナや仮想マシンなど学ぶべきことが多く、まだまだ伸びしろが多いのでこれからも学習していきます。
- Git研修
バージョン管理ツールGitの基礎に関して学びました。
Gitは奥が深く、もちろん僕にとっては初めてでしたが、チームで開発するための必須スキルです。IDEで楽に使うことも出来ますが、基礎を学べたことは業務でとても活きています。
- MySQL研修
MySQL研修ではアプリケーション開発の上で必要になってくるSQLに関しての基礎のみでなく、KVS、BigQueryなどそのほかのDBに関しても紹介して頂き、広く学ばさせて頂きました。
こちらに関しては、開発や調査の業務で多用するため、現在進行形で勉強を続けています。
クエリのチューニングは学ぶことが多いです。
- コーディング研修
(引用元:O’Reilly Japan「リーダブルコード――より良いコードを書くためのシンプルで実践的なテクニック」https://www.oreilly.co.jp/books/9784873115658/)
コーディングスキル研修では、「コードを理解しやすくする」という考えに基づいて書かれたDustin Boswell著「リーダブルコード」(オライリー・ジャパン)という参考書を用いて研修を進めました。
これから会社で仕事を進めるにあたって「他人のコードを読む機会」「自分のコードを人に読んでもらう機会」が非常に多くなるため、7月の本配属に向けて、リーダブルコードを用いて一定の基準のコーディングルールを学びました。
僕が開発で利用するPHPはPSRなどコーディング規約が定められてあるため、そちらの学習と並行して学びました。命名規則や、コメント、単語選び等、業務に活かせる内容が多かったです。
- PHP研修
(引用元:株式会社インプレス「いちばんやさしいPHPの教本」https://book.impress.co.jp/books/1116101152)
株式会社インプレス「いちばんやさしいPHPの教本」を利用して環境構築からDBとの組み合わせたプログラムまで、PHPの基礎的なことを学びました。
実習形式の教本なのでPHPの入門としてはかなり学びやすかったです。
その他PHPのコーディングスタイルや、オブジェクト指向などの言語仕様のポイント等をPHP The Right Wayを利用して、学びました。
こちらのサイトでは実際業務でも利用しているコードレイアウトを自動で修正してくれるphp-cs-fixerや、開発において便利なデバッグツールXdebugについても紹介されており、開発を便利にしてくれました。
- アドテクについて
アドテクノロジーへの理解向上を目的として、HR研修(GMOアドパートナーズグループ全体の研修)、GMOアドマーケティングの営業側との合同研修で学んだ内容も含めて「アドテク」についてのレポートを作成するといった課題に取り組みました。
自社プロダクトのTAXEL/AkaNe/ReeMo/GMO SSPといったプロジェクトに関して、先輩方から内容や仕組みを丁寧に教えて頂きました。
アドテクに関しては、アドテクノロジーの教科書を参考にしました。
(↑DSP/SSPでの広告取引の流れについてまとめ、筆者が作成した図になります。)
講義の内容をレポートという形式にアウトプットする作業を通して、SSP、DSPの広告入札の仕組みなどのアドテクノロジーの概要や、自社プロダクトの位置付けなどに関して学ぶことが出来ました。
OJT研修
6月からはOJT研修として、SSPの開発に携わり、管理画面改修、バッチ処理等を対応しました。
管理画面では運用改善などに直結する改修もさせて頂いたので、現在の運用方法から要件定義、設計、コーディング 、テストと改修していくサイクルはやりがいがありとても面白かったです。
開発サイクルの中のGitHubのコードレビューは自分の出来ていない面が浮き彫りになり、日々の反省しながらコーディングスキルやチーム開発における重要な考え方を学ぶことができました。
またバッチ処理ではBigQueryに触れさせて頂きました。データ活用の面を覗かせていただいたことは、自分のやりたかったことにも近く嬉しかったです。
開発フローの理解不足、知識不足など多くの壁はありましたが、先輩社員の方による丁寧なサポートがあったため、多くのタスクを消化することができました。
OJT研修で扱った技術
PHP/CodeIgniter/jQuery/MySQL/BigQuery/GCP etc…
アウトプットよりもインプットが多い期間だったかと思います。
言い換えれば圧倒的に「成長機会」があったと感じます。
本来エンジニアならインプットとアウトプットのバランスは良いべきなのですが、一度しかない新卒機会でこれだけの成長があるのであれば、インプットが多かったのは旨かったなと思います。
エンジニアとして働く上で重要な要素
「エンジニアとして働く上で重要な要素」なんて大きく出ましたが、入社前に勉強しておけば良かったと感じることなど、僕がこの半年間行なってきた小さな試行錯誤の積み重ねの一部で重要だなと感じたことの話になります。(個人の見解です。)
- 英語
- 業務していく過程で英語のドキュメントを読むことが多々あります。
今の時代Google先生が割と高性能に教えてくれるのですが、ニュアンスが違ったりして苦労することもあるので勉強しておけば良かったです。 - インフラの知識
- もちろんPHPやRubyのプログラミング言語も重要と思いますが、Linux、仮想マシン、コンテナなどのアプリケーションを支えているインフラの技術に関しての知識があると開発の幅も広がると感じたので、もっと知っていれば良かったと思いますし、これから良いサービスをつくりあげていく上でさらに伸ばしていく必要があります。
- 新しい技術に興味をもつ
- AI、機械学習、量子コンピュータ、ブロックチェーン、新作iPhone、スマートスピーカーなどでもなんでもいいかと思います。
そういった新しい技術への関心は、エンジニアにとって必要な要素だと思いますし、実際手にとって使ってみる、そうでなくても調べてみるといった行動力が重要だなと感じました。
ちなみに僕は最近iPhone XSを買いました 笑。それだけのことですが、話題にもなりますし、好奇心を持って物事に取り組んで行った方が良いかなと思います。 - やる気
- これはエンジニアに限ったことではないですし、本末転倒のような気もしますが、嫌いでやっている人なんていないなあと感じます。
僕が入社前にあったのはこれくらいです…。これからも失わないように頑張っていきます。
まとめ
今回は、新卒研修で行なった内容とエンジニアとして働くことについて触れさせて頂きました。
その他の研修(GMOテクノロジーブートキャンプなど)に関しては他の新卒のブログでも紹介されるかと思います。
これからも成長機会はたくさんあるかと思うので、引き続き頑張っていきたいと思います。
最後に
弊社は、現在、広告をより便利な物にしていく事を、一緒に目指してくれるエンジニアを募集しています。
https://www.wantedly.com/companies/gmo-am/projects
次回の僕のブログはPHPに関して書こうと思います。よろしくお願いします。