はじめに
2023年8月にアイフルの2weekサマーインターンに参加してきました!
この記事はそのサマーインターンを振り返っていきたいと思います。
概要
インターンは京都本社で対面形式で行われました。
募集ページからの引用です
1.講義(前半5日間)
・現代的なフロントエンド開発 - TypeScript React
・ローカル開発環境構築
・ソースコード管理 - GitとGitHub
・Web API - HTTPと様々なWeb API
・工数管理 - Backlog
・関数、オブジェクト、配列、クラスといったプログラミングにおける概念
前半はHTMLやCSS、WEB技術などの基礎的な内容の講義と課題を進めました。オフィスはとても話しやすい雰囲気なので、社員の方に質問したりインターン生同士教え合いながら進めることができました。
2.Hands on!(後半5日間)
■React.jsで工数集計をして画面上にグラフを出力する
・学生は1:2:2のチームに分かれて開発を行います
・(1人:マネージャー)工数管理
・(2人:メンバー)画面1(プロジェクト別)
・(2人:メンバー)画面2(メンバー別)
□ソースコードの管理については、GitHubを使用します
後半はチーム開発でモダンフロントエンド技術を用いてAPIを取得し、グラフを表示するというWEBアプリを開発しました。エンジニアのプロジェクトやメンバーの工数を取得するBacklogAPIを使用しました。
チーム開発の振り返り
前半は私自身知っている内容も多く、少し退屈な時もあったのですが、後半のチーム開発は大変でした。
設計や進め方などのアドバイスをもらうことなくいきなりインターン生だけで開発が始まってしまったのです。
まず課題のアプリを開発するために必要な機能を洗い出し、それをタスクに分割しました。経験豊富なインターン生の案でスムーズに開発を始めることができました。このおかげで後でタスクが被ってしまうこともなく進められたので、改めて設計や最初の準備の重要さを感じています。
また、タスクやメモはGoogleドキュメントやスプレッドシートを共有しながら行ったので誰が今何をやっているのかわかりやすく、詰まっていそうな人に教えやすい環境でした。インターン生は6名でしたが経験豊富な人から最近プログラミングを始めた人までいたので、教え合うことはとても勉強になりました。
GitHubを使っての開発なのでプルリクエストのコードレビューする機会がたくさんありました。自分が書いたコードは全体像を理解できていますが、他の人が書いたコードはなかなか理解するのに時間がかかります。質問する時もそうでしたがコードを理解してもらえるように何をどうやっているのか、なぜやっているのかロジカルに伝える必要があると感じました。またReactの経験が少ないインターン生からもエラーが出た時のデバッグの方法やデータ構造などのアドバイスがとても参考になりました。私は文系ですが、情報系の学生は理解が深いと感じました。
反省
技術面
- Reactの子から親コンポーネントのpropsの受け渡しが難しかった。親から子だと簡単に実装できると思ったので実装したが、コンポーネントが大きくなってしまったので、設計思想や後の開発のことを考えて分割した。
- 私はフロントエンドの学習期間が長いが、APIを取得する機能やカスタムフックの開発に関われなかった。
- 個人開発でモダンな技術だという理由からTailwindCSSを避けて普通のCSSで開発したが、便利だったので早く使うべきだった。
技術面以外
- 抽象的ではなく具体的なタスクに落とし込んで分担することの重要性
- どこまで詰まったら質問するべきか。すぐに聞くのは力にならないが、質問すると解決できたり必要のないことに時間を割いてしまうことを回避できる。特にAPIやライブラリの仕様などはすぐに聞くべきだと思った。
- せっかく社員さんがいるので、もう少し積極的に技術的な質問や業務のことを聞くべきだった。
総括
2週間というサマーインターンでは少し長めの期間で学ぶことがたくさんありましたし、社員の方との距離が近かったので業務や自分がエンジニアとして働くことをイメージできました。交通費や宿泊費も支給され、給料もいただけたのは非常にありがたいと感じました。社内イベントや懇親会も貴重な経験でしたし、3連休も挟んでいたので他のインターン生とドライブに行ったり京都を満喫できました。インターンという貴重な経験だけでなく心に残る思い出になったと思います。何より優秀な社員の方やインターン生と関わることはとても刺激になりました。
プログラミングを始めたばかりの学生にもおすすめできるインターンです。
インターン生はほとんど魔法のスプレッドシートやワンキャリアから応募していたらしいので、是非応募してみてください!