新卒入社から約4ヶ月!今までのことを振り返ります
はじめに
株式会社ウェイブに新卒で入社して、現在Coolmicのエンジニアをしているささみです。
入社から約4ヶ月が経ちだんだんと社会人生活にも慣れてきたところで、入社してから今までのことを振り返りたいと思います!(配属前の全体研修については割愛します)
Ruby on Rails研修
配属後の研修として、はじめにRuby on Railsの研修を行いました。
教材はもちろん(?)Ruby on railsチュートリアル!
Railsどころかプログラミングまでほぼ未経験だった私にとっても、Railsチュートリアルは非常に扱いやすい教材で助かりました!書いてある通りに進めるだけとはいえ自分でアプリを作るという経験ができたのは良かったと思います。
AWS研修
Railsチュートリアルが終わった後はAWSの研修!Railsチュートリアルで作ったアプリをAWS上にデプロイすることを目標としてサーバー関連について学習を行いました。
覚えることはこの研修が最も多かったと思います。実務において使用する構成とほぼ同じ構成を学びながら一人で構築するというのはなかなか骨が折れる作業で、インターネット上の情報と睨めっこする日々でした笑
最終的には用件の通りの構成でしっかりとデプロイすることができ、自分で調べて課題を解決するということが自分でも時間をかければできるということを知ることができました!(この「調べたら自分でもできる」という自信がこの後悪い方向に行ってしまいましたが...)
プロジェクト研修
いよいよ仕上げ!Railsを使用して一からwebアプリを作成する研修を行いました。
要件は以下の三つ
- Google認証ログイン
- DB設計が多対多になるような機能
- 非同期通信を用いること
これらを満たすアプリとして、ミーティングを進めやすくするアプリ、「ミーティングすすめるくん」を作成しました。機能としては
- 挙手ボタンを押すと誰が挙手しているかをキューにし、上から発言してもらう機能
- 割り込みボタンを押すとキューの一番上に割り込んで挙手ができる機能
- ミーティング終了時にそのミーティングのMVPを投票する機能
これらを実装しました。
Google認証ではDeviseというgemを使い、非同期通信ではRails7から標準になったHotwireを使用しました。
配属後の研修で最も苦戦したのはおそらくこの研修だと思います。
まず非同期通信の実装においてHotwireという便利なものがあるということを知り、ちょうどいいと思い使用していましたが、これがかなり情報が少ない...
推測ですが、そもそもRailsだけでそこまでやる必要がある場面も多くなく、さらに新しい機能であったため経験のある人が少ないことによってそうなったのかなと思いますが、少ない情報で何とかこねくり回して意図している挙動に近づけるのは非常に骨が折れました。
それ以外にも詰まってしまった場面が多く、そんなところで...という感じかもしれませんが見た目を整えるためにBootstrapを導入しようとしたところ、どう頑張ってもjavascriptが適用されず頭を抱えました
結局gemのバージョンを間違えていたことで問題が起きていたことがわかり、自身の詰めの甘さを実感しました...(このゴタゴタで時間を浪費してしまい時間内にデプロイまで行けませんでした)
このように効率的に進められないまま時間を浪費してしまった原因としては、やはりあらゆることを自分一人でやろうとしてしまった部分があったように思います。
学習においては自分でできるまで調べるというのは知識の定着という側面でも、スキルの向上という側面でも有用ですが、時間が決まっている場合は諦めて素直に聞くことでより早く知識にアクセスできますし、そもそも初歩的な問題であった場合にいたずらに時間だけを浪費してしまうことも避けられます。
この点に関しては今後改善していく必要がありますね...
結局時間もなく全体的にあまり上手く作れず、開発チームに成果物を発表する際もグダグダになってしまい悔いが残ります。
↑最終的にはこんな感じになりました。もっと作り込みたかった...
Vue.js研修
プロジェクト研修が終わってついにプロジェクトジョイン...というわけではなく、まだVue.jsの研修があります
Vue.js研修では一つ前のプロジェクト研修と同じようにVue.jsを用いて何かアプリを作るという内容で、Coolmicメンバーの間で連綿と受け継がれるチェーン店ガチャシリーズ、その流れを汲んだ「寿司チェーン店ガチャ」を作成しました。
機能は名前の通りガチャを引くと某寿司チェーン店のメニューがランダムで一つ表示されるというものです。
ただ、それだけでは面白くないので...
- 確率で寿司が二皿になる機能
- 他の参加者にガチャ結果を押し付けることができる機能
- 特定の名前の場合ガチャ結果が偏る機能
...と単なるランダム表示ではないゲーム性を演出することができたかなと思います。
まだ実際には使っていないので、チームメンバーの反応が楽しみです。
研修の話に戻りますが、この研修においてはRailsの研修と違ってテキストを使って学習をする機会がなかった上、時間的にも半分ほどと短く少し不安がありましたが、実際にはかなりスムーズに作成することができ楽しかったです。(Vueってかなりわかりやすくできててすごいですね)
↑こんな感じになりました(画像はイメージです)
一つ問題があったとすると、メニューの情報を入れた配列から一つを他の変数に代入し、その変数に手を加えるという処理を行った際に、元の配列の内容が変更されてしまうことがあり原因が掴めず苦労しました。
結局Javascriptの仕様上その場合ポインタのみが変数に代入され、参照しているデータ自体は配列の中身と同じものであったことが原因でした。
こういった詳細な仕様に関する部分は知らなければどうすることもできないので、こうして目に見える形で問題が起きたことで次回から同じことをしなくなるのでむしろ良かったと思います。
プロジェクトジョイン後
Vueの研修も終わって、晴れてプロジェクトジョインとなりました!(本来はコードレビューの研修もあるのですが、実務で覚えるということになり割愛)
記念すべき最初の仕事は、会員登録メールのSNSアイコンの変更でした
初めて自分の書いたコードが実装された時は感慨深いと聞いていたのですが、変更がかなり軽微だったので「こんなもんか」という感じでしたが、ひとまず実務に入ることができたということで嬉しかったのを覚えています。
その後は現在に至るまで、Ruby Silverを取ったり、プロジェクト研修のグダグダ発表を全社に公開したり、チーム内のルールを何度も忘れたり、汚いコードを周りに見てもらったりしながら日々業務に勤しんでいます!(優しくしていただけてありがたい限りです🙏)
まとめ
とりあえずざっと入社後に行ったことを列挙しましたが、こうして振り返るとかなり周りの方に助けられて何とかなっているなと思います。
あまり積極的に上に不注意で多くのミスをする自分に対して、ウェイブの方々はかなり親切に指導してくださり非常に助かっています。こちらも
スキル面でもフロントエンドやバックエンドだけでなくインフラも触る機会が全員にあるというのは、大変なことも多いですが自身の成長に繋げやすい環境です。
総じて、新卒でエンジニアとしてスキルをつけるには非常に良い環境であると感じます。今後も業務の中で様々なスキルを獲得していき、最強の存在になれるように頑張ります!
それではまた次の機会に! またね👋
株式会社ウェイブのエンジニアによるテックブログです。 弊社では、電子コミック、アニメ配信などのエンタメコンテンツを自社開発で運営しております! ve.jp/service/
Discussion