はじめに
エキサイト株式会社で一ヶ月間、就業型インターンシップ Booost!!!に参加させていただきました北野です。 今回はインターンシップで取り組んだことや学びを紹介いたします。
自己紹介
私は機械学習の研究をしている修士1年の大学院生です。 エンジニアとしての経験は浅く、大学院生になってからweb開発の勉強を始めました。 具体的には、TypeScript(Next.js)やFirebaseを用いて身近な問題を解決する簡単なアプリを開発しています。
やったこと
私はSaaS事業部の配属となり、KUROTEN - 管理会計がラク速になる経営管理クラウドの開発に参加させていただきました。 KUROTENはフロントエンドにVue2(Nuxt.js)を使用していましたが、Vue2のサポートが終了するのでReact移行(Next.jsは使用しない)を進めている途中です。 そこで、私は実際にReact移行の業務をさせていただきました。具体的には、「初期設定」の画面を担当させていただきました。
学び
インターンで学んだことをまとめていきます。
働き方について
今回のインターンはリモートで参加しました。そこで感じたこととしては、「リモートでの開発は効率が良い」ということです。 オフラインで業務したことはないので比較はできませんが、少なくとも自分が考えていたよりはずっと効率が良いものだと感じました。
リモートワークでは主にTandemというオンラインコミュニケーションツールを用いました。 メンターの方は自分と同じ(Tandemアプリ内の)ルームにいることが多いので、業務でどうしても分からないことがあるときなどはすぐに質問することができました。 また、会議などではオフラインで集まっていても、画面の共有のためにgoogle meetを用いるということもあるらしいです。
このように、エンジニアの働き方を体験でき、自身がエンジニアとして働くイメージが明確になりました。
業務レベルのフロントエンド開発
デザインが決まっていること
業務でwebアプリケーションを開発する際には、エンジニアだけでなくデザイナーさんもいます。(いないこともあるかと思いますが)
デザイナーさんが作成してくださったfigmaを見てそれの通りに画面を実装するのは、個人開発と大きく異なる部分です。 私は個人開発の経験からフロントエンドは自由度が高くてセンスがいるなあと感じていましたが、実際の開発(画面の実装)に自由度はありませんでした。 いかに忠実に画面を再現できるかが問われる職種であると感じました。
逆に、汎用的な関数、コンポーネントを作る、またそれらのレンダリングのロジックを組むという部分にはそれなりに自由度があり、フロントエンドエンジニアの腕が試される部分だと感じました。
Reactの学び
業務に参加してたくさんのことを学びました。
まずは、汎用コンポーネントについて。 先述の通り、デザイナーさんが画面のデザイン、コンポーネントのデザインまで作成しておられます。 この実装は私が参加した時点でもう済んでいて、私は汎用コンポーネント使用して画面を実装していくだけでしたが、画面の実装の際、コンポーネントのpropsやロジックを確認するためにコードを見にいくことが多かったです。そのコードが本当に勉強になりました。「汎用」なので色んなケースで使用することを考えつつも、共通化するところは共通化していてすごいなと感じました。自分よりできる方がいて、その方に質問をできる環境って魅力的だなと思います。
次に、デバッグについて。 私は多分ほかのインターン生よりもデバッグをしている時間が多かったと思います...。 しかし、このおかげでプリントデバッグに慣れることができましたし、その中でReactの仕組みなどについても理解が深まりました。 例えば、SWRなどを用いてフォームに挿入する初期値をフェッチするとき、その値は初回レンダリングの際にundefinedなので、フェッチの完了にフックしてフォームに初期値を入れ直さなければなりません(こうやって書くと当たり前ですが)。 このようなReactの挙動をデバッグをしていくなかで、理解していくことができたと思います。
また、スタイルに関するデバッグもたくさんしました。CSSに関してもデベロッパーツールなどでデバッグをしながら理解を深めることができました。
gitについて
今回のインターンでgitの操作に慣れることができたと感じています。 私はプルリクエストを出すときに、マージする対象のブランチを間違えてしまい、レビューされ、それに気づかずにマージするという失敗をしてしまいました。
しかし、このミスのおかげでrevert, rebase, resetなどのコマンドについて勉強して学びが広がりました。 また、チーム開発ならではの複雑なブランチをGUIで確認し、適切なコマンドを実行して解決できたことでgitの操作に自信が付き、 これからミスをしても一人で直せると感じるようにもなりました。
オフラインイベントに参加した話
インターンの途中でオフラインイベントが開催され、参加しました。 こちらでは、エンジニアの方々からの技術的な内容の紹介や、エンジニアの方、他のインターン生との交流ができ、とても有意義な時間となりました!
参加した感想としては、社員の皆さんとても仲が良くて楽しい雰囲気が感じれました。 技術的な話に付いていけない時もありましたが、いつか分かるようになりたいと感じ、モチベーションが上がりました🔥
また、他のインターン生とも業務の話や、技術的な経験の話をお互いにし合って、とても刺激的で楽しい一日になりました!
※ 以下は4月に開催されたもののレポートです tech.excite.co.jp
最後に
今回のインターンでは、個人で勉強しているだけでは得難い経験をさせていただきました。 これからもエンジニアになるためにますます努力したいと思います!!
メンターの方々、SaaS事業部の皆さん、人事の皆さん、ほかの部署の皆さんも本当にありがとうございました!