はじめに
どうも、クライアントグループエンジニアの後藤です。 最近寒くなってきましたね。昔は冬が圧倒的に好きだったんですが、歳を重ねるごとに夏の方が好きになっていっている自分がいます。
そんな自分がスタディプラスに入社してからもう半年が経ちました。この記事では入社してからの半年間を振り返って、取り組んだことや感じたことをお話しします。
内定承諾後の流れ
2022年 6月~10月 内定者インターン 2023年 4月〜6月 新卒研修 6月〜 業務開発
以下ではそれぞれについて内容と感じたことなどを詳しくお話しします。
内定者インターン(入社前)
## インターン内容 - エンジニアのマインドセット研修(1ヶ月) - アプリ開発研修(3~4ヶ月)
エンジニアのマインドセット研修
最初の1ヶ月間はMicrosoftのトレーニングワークをチームのメンバーと一緒に取り組みました。 取り組んだのは成長型マインドセットや自己効力感を高めるをはじめとした計4コースで、どれも今後定期的に見返したいと思えるような良い内容でした。
アプリ開発研修
その後の3~4ヶ月間はFlutterを使ったアプリ開発を行いました。
目的 | 内容 |
---|---|
- Flutterの基礎習得 - アプリ開発を一通り経験 | 英国議会議事録APIを利用したFlutterアプリの開発アプリの仕様、開発計画の作成から開発まで行う |
開発は画面や機能単位でGitHubのPullRequestを作って、クライアントチームのメンバーからレビューしてもらう形で進めました。また、分からないことや実装の方針で詰まった際は、Slackでいつでも質問できるような体制を作っていただいたので非常にありがたかったです。
最後に、成果物を四半期に1回行われているエンジニアのLT大会にて発表させてもらいました。
内定者インターンは上記で一旦区切りがついた形ですが、その後10月〜研究が忙しくなる2月くらいまでは希望次第で実務の開発タスクに挑戦させていただけるという話になり、そちらにも取り組みました。
振り返り
Flutter、Dartの基礎を習得できた
自分は元々iOSアプリ開発の経験が少しありましたが、Flutterは完全未経験でした。しかし、主要となる部分(Widgetや宣言的UIについて)をあらかじめ説明していただいたことや、公式ドキュメントが充実していたこともあって、習得はしやすかったです。 研修を通してUI、画面遷移、API通信、ページネーションなどのアプリ開発頻出の機能を一通り実装することで、宣言的UIでの書き方やDartの基礎文法といった最低限の技術を身につけることができました。
伝えることの難しさを感じた
学生時代は個人開発をすることが多く、メンターのような形で開発を見てもらうことはあまりしてきませんでした。そのため、わからないことや行き詰まってしまった際に質問するタイミングや上手く現状を整理して質問することに難しさを感じました。しかし、内容をあらかじめドキュメントに整理してから質問したり、質問するタイミングを気持ち早めたりなどの試行錯誤をしながら、結果的に3~4ヶ月の間で次第に慣れていきました。
新卒研修(入社後)
## 研修内容 - アプリ開発研修 - 勉強会(週2回) - メンター面談(週1回)
アプリ開発研修
- 新卒2人でインターン時に開発した研修アプリを交換
- 業務で使う技術を用いてリファクタリング
- お互いのコードをレビュー
業務のFlutter開発では状態管理にriverpodとflutter_hooks、画面遷移にgo_routerを導入しているため、それらの基礎を習得するというのが研修の主な目的でした。
勉強会(抜粋)
- Flutter関連
- コードレビューについて
- 良いコードとはなにか、リーダブルコード
- Material Design, Human Interface Guidelines
週2回の勉強会では、主にFlutterの基礎的な内容と、チーム開発する上で重要になってくるコードの書き方やレビューについて勉強しました。 また、Flutterに関する勉強会では、研修で習得中のライブラリについての内容に加えて、Effective Dart、Widgetツリー、Sliverなどについて学びました。
参考資料: cloudsmith.co.jp medium.com docs.flutter.dev
振り返り
業務開発に入るための準備ができた
研修を通して、riverpod、flutter_hooksの2つに関しては各Provider
やuse〇〇
をどういった場面で使い分けるのかなどが習得できました。また、go_routerに関してはgo
とpush
での遷移、パラメータ渡しなどといった基本的なことは習得できました。
正直これらパッケージを使う背景やメリットなどについてもインプットはしていましたが、当時は理解しきれていない部分も多かったなという印象です。
また研修では、Flutterに関することだけでなく、業務での開発をする上で必要な知識を体系的にインプットできたことも大きかったです。 具体的にはメンテナンス性や可読性を考えたコードの書き方やコードレビューのやり方やポイントなどが挙げられます。 特にコードレビューに関しては経験がなかったため、様々なレビュー観点があることや、実際に先輩方がどのようにレビューしているかをこのタイミングでインプットできて良かったです。
業務開発
## 取り組んだこと - 機能追加 - デザイン指摘項目やレイアウト修正 - コードのリファクタリング - ライブラリの導入や更新 - コードレビュー - 業務効率化
最初に取り組んだのは、モバイルのFlutterアプリへの機能追加でした。 内容は検索や入力フォーム、ページングリストなどの実装が必要な一機能をまるまる実装するというものです。 複数画面に渡る状態管理やダイアログ、スナックバーが絡む画面遷移などの実装の際は設計面で苦労しましたが、チームの先輩方に助けてもらいながらなんとかやり遂げました。
その後はFlutter WebにてアプリのNavigation周り全般を任せてもらったり、レビュワーとしてコードレビューにも参加させてもらったりなど、大小さまざまなタスクに取り組ませてもらいました。
また、上記の開発に加えてSlackワークフロー+GASを使って日々の業務を効率化するプロジェクトにも取り組みました。 内容はワークフローのフォームの内容をスプレッドシートに自動入力するといったもので、約3ヶ月間で行いました。社内向けではありますが、ツールを設計から実装して使ってもらうまで一通り経験できて、とても勉強になりました。
振り返り
慣れることが大半
初めのうちは、やはりプロジェクトの大きさがこれまでと段違いだったので、全体像を把握するまでに時間がかかっていました。 しかし、機能追加やデザイン修正のタスクをいくつかこなしていくうちに慣れていき、コードリーディングのスピードも上がってきました。 また、Flutter周りの知識についても同様で、タスクをこなすたびに知らない新しい発見がありその分知識もついていきました。 特に状態管理周りを実装する際は、状態が更新・保持されなかったり、不要なrebuildが走ったり...などといった問題にぶつかり、その度に一層理解が深まっていった気がします。
今後の課題
逆に難しかった点や課題という面では、様々なエラーケースを考えながら実装することや、新機能実装の際にその後の要素追加や変更に耐えうる設計を考えて実装できるかなどが挙げられます。 タスクに取り掛かる時点で、どう実現するかばかりに集中してしまい、ユーザー体験やコードのメンテナンス性をあまり考えられていない節があるので、今後はそういった部分も考えながら実装できるようになりたいです。
全体を通して
Flutterたのしい
学生時代はずっとiOSで開発していて、今年から本格的にFlutterを触るようになったのですが、個人的に開発体験の良さは気に入っています。簡単なUIの変更はホットリロードですぐに確認できるところだったり、エディターもiOSと違って選べるのが良いですね。自分はAndroidStudioしか使っていないですが笑(VSCodeでも開発してみたい) あとはFlutterや周辺のパッケージはまだまだ変化が激しい点も楽しいところですね。できないことができるようになったり、次々と更新されていく情報のキャッチアップもやりがいがあってとても楽しいです。
スタプラでの働き方
自分は元々、成長したいという意欲はありますがあまりガツガツ挑戦できるような人間ではありませんでした。 そんな自分がスタディプラスに入社してからの半年間、業務の中で色々なことに挑戦できました。 それは、やりたいと手を挙げたことをサポートしてくださるチームの先輩方を初めとした周囲の皆さんと、挑戦に対して温かいフィードバックをもらえる環境があったからです。 スタディプラスはValueの1つとしてFail Forwardという言葉を掲げています。その言葉の通り、失敗を歓迎して挑戦を応援してくれる環境があると身をもって感じました。 加えて、リモート+コアタイムなしのフルフレックス制ということもあり、柔軟に働ける点もよかったです。新卒1年目から本当に恵まれた環境で働かせてもらっているなとつくづく感じています。
まとめ
いかがだったでしょうか?振り返るととても充実した半年間でした。来年春には1年を迎えますが、残る半年ももっと色んなことに挑戦して成長していきたいです。 最後になりましたが、現在スタディプラスでは新卒ソフトウェアエンジニアを募集中です。この記事を読んで少しでも興味を持っていただけた方は、この記事の最後にあるリンクから気軽にカジュアル面談をお申し込みください!
以上、後藤でした!