初めまして。
GMOアドマーケティング18新卒のR.Sです。
実は、GMOアドマーケティングの新卒では初の女性エンジニアです。
5月、6月に行われた社内の新卒エンジニア研修と、5月〜7月中旬にかけて行われたGMOグループ各社の新卒エンジニアのためのGMOテクノロジーブートキャンプで学んだことを紹介致します。
研修内容を大まかにわけると
- テックイノベーションプロジェクト基礎研修
- Linux
- Git
- MySQL
- コーディングスキル
- 言語研修
- OJT研修
- AkaNe管理画面の開発
- GMOテクノロジーブートキャンプ
となっております。研修内容を紹介します。
テックイノベーションプロジェクト基礎研修
LinuxやGit、MySQL、コーディングスキルなどの業務で必要な基礎研修や、本配属後に業務で使用する言語の研修がありました。
言語研修
Ruby
Rubyを扱うのは初めてだったため、課題に取り組みながらRubyの基礎について学んでいきました。
関数やクラス、配列の扱い方、ハッシュ、正規表現など、課題の内容は多岐に渡り、Rubyの基礎を学ぶことができました。
学生の頃はC言語に触れる機会が多く、初めはRubyとC言語の違いに戸惑いましたが、課題に取り組むうちにRubyの特徴が掴め、慣れていくことができました。
また、自分で調べながら課題を解いていくことで、より理解を深められたと思います。
Ruby on Rails
すがわらまさのり・前島真一・近藤宇智朗・橋立友宏 著 『パーフェクトRuby on Rails』(技術評論社)の内容に沿って勉強していきました。
5章まででRailsの基本を学び、6章からは実際にWebアプリケーションを作成する流れになっています。
初めてWebアプリケーションを作成したのですが、Railsは自動的にファイルを生成してくれたり、少しの記述でルーティングを行ってくれたりしたため、詳しい動作を理解していなくてもアプリケーション自体は簡単に作成することができました。
しかし、簡単に作成できるからこそ、Railsの規約に則ったコーディングをすることやMVCそれぞれがどういった動きをしているかの理解など、身につけるまでに時間がかかる部分もありました。
そういった部分は、先輩にフォローして頂いたり、自分で試行錯誤をすることで乗り越えられました。
OJT研修
AkaNe管理画面の開発
言語研修が終わり、RubyやRuby on Railsを用いた開発に慣れたあと、Railsを用いて開発されているAkaNeの管理画面の開発に関わらせて頂きました。
開発内容は、既存画面への機能追加です。
Railsでの研修で作成した簡単なアプリケーションとは違い、大きなサービスであるAkaNeのコードは、かなり複雑なコードになっており理解するまでに時間がかかりました。
コードを読み進めてわからない部分は調べる。調べてもわからないものは質問して解決するというのを繰り返して理解していきました。
必ず、先にしっかり調べてから質問するというのは今でも続けています。先に自分で調べることで、問題部分とは直接関係ないことも学べるので、基礎力の向上にはとても良いと感じました。
AkaNeの管理画面の開発に関わることで、言語研修のときに学んだRailsの基礎をより深く理解することができました。
また、機能を実際に使った人の意見を頂いたので、さらなるモチベーションアップに繋がりました。
GMOテクノロジーブートキャンプ
5月中旬頃から毎週金曜日に行われるGMOテクノロジーブートキャンプ(GTB)に参加しました。
10週間に渡り、GMOグループ各社の現役エンジニアの先輩方が講師となり、様々な技術を教えて頂きました。
学べる技術は
- インターネットの歴史
- ブロックチェーン
- 仮想化
- Linux
- セキュリティ
- デザイン思考
- フロントエンド
など、様々なサービスを提供しているGMOグループだからこその、幅広いものとなっております。
研修中の様子はこのような感じです。
(2018年5月研修担当者撮影)
また、知識をインプットするだけではなく、アウトプットするための開発合宿もあります。
4~5人でチームを組み、0からサービスを作り上げます。
私のチームは、Amazon Echoを利用した音声での習慣化サポートサービスを作りました。詳しいサービスの内容は省略致しますが、Amazon Echoに話しかけて続けたい習慣名と時間を登録するとリマインドしてくれて、継続期間を画面上で確認できるサービスとなっています。
私が実装を担当した音声対話システムの設計部分を紹介致します。
利用したのはAmazonが提供する開発ツールである「Alexa Skills Kit」と「AWS Lambda」です。
Alexa Skills Kit
Alexaのスキル(機能)の開発を簡単に行うことができる開発キットです。
私は、カスタムスキルという、ユーザーの発話内容に応じて自由な処理を行い、任意の応答を返すことができる汎用的なスキルを作成しました。
基本の設定は簡単にできるため、AIの学習能力を活用して少し踏み込んだ機能も追加しようと思いましたが、やはり難しく、開発期間中に完璧な実装には至りませんでした。
完璧な実装ではなかったものの、自分が持っている技術をどう工夫すれば機能を追加できるか、調べて得た技術とどう組み合わせれば良いのかという応用力がとても養われたと思います。
AWS Lambda
サーバー管理が不要なプログラムの実行サービスです。
このAWS Lambdaを利用して関数を作成し、Alexaスキルから呼び出せるように設定します。
Node.jsを利用して関数を作成したのですが、Rubyに続いてNode.jsも初めて触れる言語。公開されているサンプルスキルのコードを真似することから始め、わからないところは全て調べて開発しました。
開発合宿中になんとか完成させることが出来ましたが、誰にも教わらずに既知ではない言語を用いて開発するということは初めてだったので、チャレンジできて良かったです。自力で調べて問題を解決する力がさらに磨かれました。
まとめ
二ヶ月間の新卒エンジニア研修を通して、業務に必要な基礎や様々な技術と、自力で調べる力、応用力、0から始める行動力など、多くの力を身につけることが出来ました。身についたものの中で不要なものはひとつもなかったと思います。
また、基礎研修では実際の業務で使用することを学んだため、本配属からの業務への不安を減らすことが出来ました。研修の際のメモは今でもたくさん活用しています。
この研修で得た多くのことを活用できるよう、初心を忘れずに引き続き業務に努めていきたいと思います。