FLINTERS Engineer's Blog

FLINTERSのエンジニアによる技術ブログ

新卒研修を終えての振り返り

こんにちは。2019年4月に新卒で入社した宗像です。今日で4月から続いてきた新卒研修が終わるということで振り返りのためのブログを書いています。 ここに書くフィードバックで来年以降の研修がより良いものになればと思います! また、私は入社前にセプテーニ・オリジナルで検索して新卒研修に関するブログ記事を読んで入社したら最初はこういうことをするんだな〜とイメージしていたりしました。 そのため就職活動中の方が読んで参考になったらいいなという思いも込めて書いていきます。

自己紹介、プログラミングの経験

茨城出身で大学では名古屋に住んでいました。ちなみに今年の新卒4人は皆関東以外からオンライン採用で入社しており地方トークが弾みます。 大学では理学部の物理学科に所属していました。大学院では宇宙物理学専攻で天体望遠鏡ブラックホールを探そうみたいな研究をしていました。

入社前にどれくらいプログラミングの経験があったのかについてですが

  • 大学2年時にCを使って数値計算する授業があったがあまり身につかず
  • 大学4年時に卒業研究で使った解析ツールがC++で書かれておりそれを使うために自分でWebなどでC++について学ぶ
  • 大学院では研究グループで使われていた解析ソフトがperlC++で書かれておりそれを読み解きつつ自分でいじって使う、その他数値計算やグラフ作成などはPythonでコードを書いて行う

といった感じでした。 情報系の学部ではなかったため、主に数値計算、統計処理をするためにプログラミングをしていました。 そのためコンピュータサイエンスの知識はあまりなく、アプリケーション開発、チーム開発の経験などもなかったです。

研修内容

4月からどのようなことを学んだかをまとめました。研修は新卒4人に対してトレーナーが1名、メンターが4名という体制でした。

4/1~4/3

セプテーニグループ全体での新卒研修がありました。ビジネスマナーの研修などを受けました。

4月 Scala研修

Scalaの基本的な内容の研修を受けました。

  • ドワンゴさんの資料を読み進めながら例題をやってみる
  • トレーナーの池田さんの作った資料を読みつつ、課題を解く
  • Mac講座ターミナルの使い方など
  • gitの研修初級編 マージリクエストをしてレビューを受けて、マージする
4月下旬〜5月始め コマンドラインアプリケーションの作成

Scalaを使ってコマンドライン上で動くアプリケーションを作りました。名前、電話番号、生年月日、メニュー、スタイリストを入力として受け取って料金などを計算して美容室の予約情報を表示するアプリケーションでした。

5月上旬 データベース研修

ここで初めて大量の情報をデータベースとして管理するという概念を知りました。MySQLを使ってデータを管理する方法の基礎的な部分やデータベースの設計の基礎を学びました。

5月中旬〜5月下旬 scala研修、Webアプリ編

ドワンゴ資料でPlay Frameworkについて学び例題として

  • 掲示板のWebアプリケーションを作る
  • 予定表のWebアプリケーションを作る
  • WebAPIを作る

などを行いました。

5月下旬〜6月上旬 Webアプリケーションの作成

dockerに関する研修を受けました。 課題として美容室の予約をするWebアプリケーションを作成しました。 あらかじめ仕様が決められていてそれを個人で作っていくという形式でした。 8割くらいの機能ができたところでチーム開発の方をやっていくことになりました。

6月中旬 Web技術、ドメイン駆動設計を学ぶ、git研修中級編

Webを支える技術という本を読みました。Webアプリケーションを作る中で曖昧だった知識が補完できたと思います。 ドメイン駆動設計(Domain Driven Design DDD)について学ぶため Domain Driven Design Quicklyの日本語版を読みました。正直この時点ではあまりピンときませんでした。 gitに少し慣れてきたのでチーム開発の際に便利なコマンドなどを学びました。

6月下旬〜7月 チームでのWebアプリケーション開発

DDD講座でDDDとはどのような概念かを学びました。 美容室の予約Webアプリケーションに新しい機能を追加するという設定でドメイン駆動設計の思想に基づいて、ドメインモデルを考え新機能の設計を話し合って決めました。 決めた設計を元に二人組みになってチームで開発を行いました。 美容室予約の追加機能を無事完成させ研修終了!

良かったところ

  • 研修内容が多岐に渡り、充実していました。先述したとおりアプリケーション開発やチーム開発の経験はありませんでしたがそれらの基礎となる技術、手法を学ぶ機会がたくさんあり入社前と比べるとできるようになったことは増えました。また研修期間中に不安なところなどを相談するとそれに対応して研修を組んでくださったりしました。(gitなど)

  • 質問しやすい雰囲気がありました。学生時代はプログラミングに関しては基本的に自分で調べてなんとかするということが多かったです。これはこれで大切ですが1つのエラーを解決するのに1日かかってしまうということもあったりしてなかなか大変でした。今回の研修ではメンターの方とその日の振り返りをする時間があり、そこで技術的なことや、チーム開発のことなどを相談できました。またそれ以外でもSlackのチャンネルでわからないことを聞くとメンターの方以外からも答えていただいてとてもありがたかったです。

  • フィードバックのサイクルが早かったのも良いと感じた点です。2週間に1度研修の振り返りがあり、良かったこと困ったことを全員で共有する時間がありました。研修でうまくいっていないところについてメンターのみなさんと考えたり、新卒同士で教えあって改善策を決めてそれを実行するというサイクルがあったのは非常に良かったです。

難しかったところ

  • 初めて触れる技術の全体像みたいなものを掴むのに苦労しました。Webアプリケーションを作る際に最初はサーバーとブラウザで何が起きているかもあまりわかっていなくて、理解に時間がかかりました。gitも軽くしか使ったことがなかったので何が起きてるんだ!という感じでした。データベースやdockerの概念も最初はよくわかりませんでした。ただ研修を通して最初から仕組みを全部理解しようとせずにとりあえずコマンドを覚えて使いながら理解していく方が良いと思いました。

  • チームでの開発というのも難しさを感じました。研修初期から中期はひたすらコードを書く時間が続いていましたが、チーム開発に入って一週間くらいはコードを書くよりホワイトボードを囲んで話し合いながらメモをする時間の方が長かったです。どんな機能が必要で、その機能は何があれば実現できるのかという認識を一致させないといけないし、そのためには会話中に使う言葉の意味が一致している必要があり、普段の会話より3倍くらい考えて話さないといけないと思いました。そしていざ機能をコードを書いて実現させようとすると、それまで気づいていなかった曖昧になっていた部分が現れて、また話し合いに戻るということもありました。これは今までにない経験でしたが、このような難しい工程を経るからこそ複雑で規模の大きなプロダクトを作ることができるのだなと感じました。

感想

研修全体を通してすごく学びが多かったです。自分で学ぶ姿勢が大事なのはもちろんですが、トレーナーやメンターの皆さんのサポートがすごく助けになりました。ありがとうございます!! これからチームに配属になります。まだまだ足りない部分ばかりだと思うので研修を活かしつつ学んでいきたいです!