先日、8/16 ~ 9/3 の 3 週間で開催された Chatwork さんのインターンシップに参加させていただきました。 私は「フロントエンド」コースに参加させていただきました。 3 週間とかなり長い期間参加させていただき、多くの学びと自分の中での考えの変化がありました。
目次
- インターンシップの概要
- 実際にやったこと
- 講義パート
- チーム開発パート
- ランチタイム ・ CTO 面談
- 全体的なお話
- まとめ
インターンシップの概要
私は「フロントエンドコース」に参加させていただき、React×TypeScript, Redux などの技術スタックを使用して、講義と演習を行いました。 3 週間のうち、最初の 1 週間は講義パートで、React やアジャイル・スクラム開発、DDD に関してなど、様々な講義を受けることができました。残りの 2 週間は 2 チームに分かれて、予め用意されていたベースプロジェクトの新機能の実装を行いました。チームにはそれぞれ、メンターさんとして内定者および新卒社員の方が 計 2 名ずつ、エルダーとして社員の方が 1 名ずつ付いてくださり、インターン生のサポートをしてくださりました。開発の進め方や実装する機能の詳細は、ほとんど自分たちで決定する形で、最初はかなり戸惑いながら進めていきました。最終的には 2 週間で一つの新機能を実装しました。3 週間の中で、インプットからアウトプット、更に反省を生かして改善、まで経験することができ、本当に良い経験ができました!
実際にやったこと
講義パート
最初の一週間は、講義パートで、「ソフトウェア開発基礎論」や「web サービス開発の基礎」など、基礎的な内容から(基礎的とはいえ、僕は初めて聞く内容もあったりして、かなり勉強になりました。)、「アーキテクチャと状態管理」や「ドメイン駆動設計」など、かなり実務寄りな講義もあり、知識の洪水の一週間でした。かなり新鮮で楽しく、次から次へと新しい知識が流れ込んできました。個人的には、運用に関する講義がかなり印象に残っていて、今までは技術力ばかりに興味があって、運用設計力に関して意識を向けたことがありませんでしたが、個人的にセキュリティや運用面に不安があって開発を止めてしまっているアプリケーションがあったりもして、運用を軽視するべきではないと強く感じました。他にも学びの多い講義がたくさんあり、充実した一週間を送ることができました!
チーム開発パート
後半の 2 週間では、前半の講義パートで学んだことを生かしながら、チームでの開発を行いました。事前にベースアプリとして、チャットアプリを用意してくださり、それに対するバックログが用意されていました。このバックログをもとに、チームメンバーでプランニングを行い、仕様を決定しました。このプランニングがかなり難しかったです。月曜日に丸一日かけて、チームメンバー全員で行うのですが、課題に自由度がかなりあったため、話し合いが収束しなかったり、どこまでプランニングで決めるのかなど、難しい点が多かったです。初週のプランニングは個人的にはあまり上手くいかなかったと感じているのですが、その反省を生かした二週目は結構良いプランニングを行うことができて、その週の開発の進めやすさが全然違いました!プランニングかなり大事!
金曜日にはレビュアーの方々を前に、一週間の成果を発表します。そのためにも火曜〜木曜はプランニングの結果をもとにゴリゴリに開発を進めていきました。僕はフロント担当だったため、React×TypeScript, Redux を使用して新規の実装を行いました。事前に用意していただいたコードが、かなり DDD に基づいたコードで、実装されたコードを見ながら、講義で学んだ知識が少しずつ頭の中で整理されていくのを感じました!
また、チーム開発はやっぱりいいなぁと感じました。個人でやっていると思いつかない実装方法などがどんどん出てきて、勉強にもなりつつ、コードがより良くなっていくのを実感しました。個人的には、命名の部分で特にコードが洗練されていくのを感じました。一度宣言した命名でも、チームメンバーから「こっちの方がより適切じゃないか」といった意見がどんどん出てきて、より理解しやすい命名にしていくことができました。ただ、やはり命名は難しい...
メンターの方にもたくさん助けていただきながら、2 週間でなんとか動くものを完成させることができました!安心したと同時に、やっぱり動くものが完成して、それを実際に触れるのは嬉しいなぁと実感しました!(完成の瞬間に、ワクチン接種でいなかったのはとても残念...)
レビューでは、僕は 2 回目のレビューに参加できず、1 回目のレビューの印象がどうしても強めになってしまいますが、様々な視点から意見をいただけて、まだまだ自分自身の視野は狭いな、と感じました。特に PM 視点のレビューやデザイナー視点のレビューなどが新鮮で、普段あまり意識してなかった点を意識していくとても良いきっかけになりました!
ランチタイム ・ CTO 面談
インターンシップ機関中は、Chatwork さんについてより理解するために、様々なコンテンツを用意してくださりました!講義をしてくださった社員の方や 21, 22 卒の先輩方とのランチタイムでは、技術的なこと、Chatwork について、就活についてなど、幅広い分野のお話をさせていただきました!お話の内容も参考になるものが多く、自分自身の考え方に影響を与えていただきましたが、全体を通して Chatwork の社員の方々の中の良さが本当に伝わってきました。社員の方々が楽しそうに冗談を言い合っていて、しかし、真面目に仕事に取り組むときはしっかりと切り替えをしていて、まさに「仕事を楽しむ」文化が広まっているのを感じました!
また CTO の春日さんとの面談では、お忙しい中 1 時間も時間を作ってくださり、ざっくばらんにいろいろなことをご質問させていただきました!春日さん個人のこれまでのお話や Chatwork さんの今後のお話に加えて、僕が個人的に将来やっていきたいと考えていることに対しても、春日さんなりのご意見をくださり、1 時間があっという間に過ぎてしまいました。まだまだ、自分の視座の低さを感じたので、これから経験を通して考えをブラッシュアップさせていきたいと思いました!
全体的なお話
とにかくインターンシップ生へのサポートがかなり手厚かった印象を持っています!僕も含め、どうしてもワクチンの接種と日程が被ってしまうタイミングや、それに伴って副作用で体調を崩してしまうこともありましたが、全てに柔軟に対応してくださりました!また、その休んでしまった分も後日にキャッチアップできるように朝会等で時間を設けてくださったりと、安心して休ませていただくことができる環境でした!
また、事前に参考図書を 2 冊いただきました。一冊はフロントエンドもバックエンドも共通で「現場で役立つシステム設計の原則」という本をいただき、もう一冊はフロントコース向けとして、「りあクト!TypeScript で始めるつくらない React 開発」を頂きました!どちらもとても良い本で、一応どちらも読んでから参加したのですが、もっともっと読み込んでおけば、さらに講義パートでの知識の吸収率が違ったのでは... と今更ながらに思ってます...(泣
あとインターンシップ中の「迷言集」があり、最終日の懇親会で振り返ったのですが、インターンシップをまるっと振り返ることができて、とても面白かったです!知らない間に僕も 3 つくらい迷言集に、どなたかが載せてくださっており、名誉ある Most Valuable Meigen を受賞しました!!!とても光栄です!
まとめ
3 週間と僕が経験した中では最長のインターンシップでしたが、終わってみると「もう終わりか...」と感じるくらい充実した 3 週間を送ることができました! 3 週間の中で本当に多くのことを吸収できたので、今後にしっかりと繋げていきたいです!! インターンシップ中に関わった全ての方々、本当にありがとうございました!!!!!!!!!!!
P.S.
先日、YouTube を見ながら口腔洗浄機をパワー 3 で使用していると、笑ってしまったタイミングで口から洗浄機を離してしまい、服がびしょびしょになってしまいました... びしょび賞を受賞できるだけあるなぁと自分でも感じました。パワー 5 でなくてもびしょびしょにはなってしまう可能性があるので、気をつけた方が良さそうです...