初めまして、2021年4月に新卒でFLINTERSに入社した服部です。
この度3ヶ月の新人研修を終えたので、ざっと振り返って感想や学んだことを書いていこうと思います。
目次
自己紹介
私は大学で情報科学を専攻していました。情報科学専攻やエンジニアといえば機械に強いイメージがありますが、私は機械音痴なのでパソコンを使うことに若干の苦手意識があります。プログラミングは大学3年生のときに競技プログラミングやデータコンペに参加した程度で、アプリ開発やWebサイトを作った経験はありませんでした。流行りのデータサイエンスやAIに興味を持ってPythonを勉強したミーハーです。専攻が複数の分野にまたがる学際領域ということもあり、大学では経済学や心理学、数学や哲学などその時その時で興味を持った分野を広く浅く学んできました。FLINTERSに入社した動機もAWSやTypeScript、その他色々新しめの技術をたくさん使っていて楽しそう!という理由でした。
社内の雰囲気
罵声や怒号の飛び交うような怖い職場でも、やる気のないだらけた職場でもなく、フラットで働きやすい良い職場だと思いました。休憩は必ず取ろう、終業後はしっかり休もうという空気があり、労働者に優しい環境で安心しました。また、皆で勉強して高め合おうという雰囲気があり、毎週の勉強会だけでなくSlackでも情報の発信が頻繁に行われていました。技術力の高い先輩が多く、多くのことを学べる場だと思いました。
研修について
入社してから3ヶ月の研修期間がありました。研修の目的は自走できるエンジニアへと成長することです。自走できるエンジニアの条件とは主に以下の4つです。(もちろん他にもあります。)
- 指示がなくても活動できる
- チームのことを考えて活動できる
- 自発的に勉強できる
- 学びを共有できる
当たり前の内容ばかりですが、当たり前のことを当たり前に行動するのはとても難しいことです。
研修ではプログラミングだけでなく、IT全般の知識や開発に必要なソフトウェアの実習、社会人として必要なスキルや業界の知識など幅広く学習しました。いずれも資料や説明が分かりやすく、質問にも真摯に対応して貰えてとても助かりました。学んだことを全て書くとキリがないので、強く記憶に残っているものをいくつかピックアップして書こうと思います。
会社に対する考え方が変わった
大学時代の私は、企業理念やミッションなんてどこも似たようなことしか書いてないし綺麗事ばかりで意味なんてあるのか?と思っていました。しかし、会社の意義を明文化し対内や対外に共有することで、価値観のベースを揃え同じ方向に向かうことができるなど、会社にとって理念は重要な要素であると入社してから知ることができました。
本当の意味でプログラミングに入門した
研修を経て最も成長したのはプログラミングスキルです。入社してからScalaという言語を書くようになりました。ScalaはJavaに関数型の性質を足したようなJVM系の言語です。初めの方はクラスや型に苦戦して上手く書けませんでしたが、説明を聞いたり何度も書いている内に分かるようになりました。研修ではIntelliJ IDEAというエディタを使っていたのですが、エラーが分かりやすく表示されコードジャンプも出来て非常に使い勝手が良かったです。gitの操作も慣れていませんでしたが、使っている内に慣れてきて少しずつ分かるようになりました。また、ネットで検索したり公式ドキュメントを読むなど、調べてすぐに分かることは自分で調べる癖がつきました。Python以外の言語に苦手意識がありましたが、研修のおかげでプログラミング全般に対する苦手意識を払拭する事ができました。比較的難しいと言われるScalaをある程度書けるようになったのだから、他の言語も頑張ればなんとかなる!と自信がつきました。研修を通して自称エンジニアから新人エンジニアにレベルアップしました。
IT周りの知識と経験が増えた
プログラミングだけでなくインフラやセキュリティ、テストやデータベースなど様々な分野の研修がありました。AWSやGCP、DockerやMySQLなど名前しか知らなかったものに触れてとても楽しかったです。本を読むだけではなく実際に使ってみないと分からないこともたくさんあるんだなと思いました。研修の中でも特にオブジェクト指向や SOLID原則、依存性の注入など、より良いプログラムの書き方を学ぶ研修が印象に残っています。今まで何も考えずに上から書き殴っていたので、これらの研修でプログラミングに対する考え方が大きく変わりました。クラスごとにファイルを分けて書いたり変数やメソッドに分かりやすい名前を付けるのも、今思えば当たり前ですが初めの内は出来ていなかったように思います。また、研修で技術書を読む時間がありドメイン駆動設計入門とWebを支える技術を読みました。読む前の自分がいかに知識不足であるかを読了後に実感しました。毎日知識が増えるのはとても楽しいです。エンジニアになって良かったなと思います。
顧客志向の必要性
使いたい技術や作りたいものを押し付けるのではなく、あくまで顧客を第一に考える姿勢を学びました。普段からこんなサービスがあったら面白そうだなーと考えることはありましたが、独りよがりでユーザーのことを考えていないことが多かったのでとても勉強になりました。顧客が本当に欲しているものを考えるだけでなく、実際にアンケートを取って修正しながらサービスを考えるのは良い経験になりました。
チーム開発の大変さ、楽しさ
研修の最後に2週間ほどでチーム開発を行いました。モデリングの場所としてmiroを、進捗管理ツールとしてjiraを使用しました。miroはオンラインのホワイトボードで、付箋を貼ったり矢印を繋げたりといった作業をリアルタイムで行えるツールです。便利で楽しいので複数人での作業にオススメです。jiraはタスクを一つずつ書き出して進捗に応じて動かせる便利なツールです。チームとして開発することで個人では行わなかった意見出しやコードレビュー、進捗管理や共有など新鮮な経験ができてとても楽しかったです。事前にCLIアプリケーションやWebアプリケーションを研修で作っていたこともあり、アプリ開発の理解を深めることもできました。チーム開発を通じてgitの操作も上達しました。コンフリクトにめげず何度も修正をする忍耐力も身に付きました。自分達で書いたアプリが動いた時は嬉しかったです。
研修の良かった点
入社前からリモート環境で講義を受けたり卒業研究を行なっていたのでリモートワークに抵抗はありませんでした。研修ではmeetやzoom、Slackを使うことが多く対面よりも話しやすかったです。また、zoomで集中部屋や雑談部屋、質問部屋を分けてもらったことで気持ちを切り替えたり質問への心理的なハードルが下がりました。私は理解が遅くトンチンカンな質問をすることも多かったのですが、一つ一つ丁寧に説明してもらえたおかげで難しい内容も理解することが出来ました。研修カリキュラムも無理のないペースで進めてもらえ、昼休憩の確保や始業終業のメリハリなど心身に負担の掛からない環境で取り組めたのも良かったです。毎日業務の終わりに学んだことや困ったことを報告し合う時間があったのも助かりました。学びの共有や問題の解決だけでなく1日を振り返ってまとめることで学んだことの復習にもなりました。
自主的に取り組んだこと
業務時間外に会社から借りた実践Scala入門とリーダブルコードを読みました。他には時間のある時にkaggleやAtCoderを利用してなるべくプログラミングに触れるようにしました。業務時間内で意識したことは、とにかく毎日コミュニケーションを取ることです。私は無口で人と話すのがあまり得意ではありません。メールやSlackも文章を考えるだけで疲れてしまいます。上司が相手なら尚更です。配属した後にコミュニケーションが取れず一人で悩んで分からないことを放置していたら、自分がしんどいだけでなくチームにも迷惑をかけてしまいます。口頭でのやり取りと文章でのやり取りの両方を意識してコミュニケーションを行うようにしました。弊社はリモートワークや裁量労働制ということもあり、口頭での同期コミュニケーションだけでなく文章での非同期コミュニケーションも重要になります。簡潔に要件を伝えるにはどういう書き方をすれば良いのか、問題を整理して相手に伝える練習を何度も行いました。
つらかったこと、反省
今まで夜型だったこともあり、毎日朝に起きて夜に寝るのがしんどかったです。夕方になると頭が回らないため業務時間内に進捗が出ず、終業後に作業することがたまにあったので良くなかったなと反省しています。社会人として業務時間中は万全の状態で業務をこなすべきなので、在宅でもメリハリをつけて業務を行うように気をつけたいと思います。また、今までは長時間パソコンを触ることがなかったので眼精疲労や腰痛に悩まされました。腰痛は姿勢に気をつければ大丈夫なのですが、目の疲れは中々取れないので定期的に目を休めるようにして対策しています。
最後に
面倒を見てくださった研修チームの先輩方のおかげで、入社前に比べると大きく成長できたと思います。先輩方と講師の方々、一緒に研修を受けた同期の皆にはとても感謝しています。本当にありがとうございました。まだまだ技術力も業界知識も全然足りないひよっこですが、早く戦力として活躍できるように業務と勉強に励みたいと思います。
最後まで読んでいただきありがとうございました!