はじめまして。ギフティでエンジニア採用をしている平野です。 今回は、ギフティで1weekインターンをしてくれた学生さんが、インターンのレポートをしてくれたので、エンジニアブログに掲載をしたいと思います。
これからインターンに参加するよ!という方にイメージをつけていただければ幸いです。
それではどうぞ!
はじめに
はじめまして。普段はPython / Go / TypeScriptで個人開発をしている文系の大学生です。 ギフティで1週間(月曜から金曜までの5営業日)のインターンをさせていただきました。
インターン概要
インターンは原則、リモートで行われましたが、初日だけオフィス見学も兼ねて対面で行いました。 インターンは顧客(を演じたCTOのi7aさん)に対してヒアリングを行い、その顧客の問題を改善するアプリケーションを作成するという内容でした。言語 / フレームワークとしてはRuby on Railsを用いました。1週間のうち、1日目はチャットツール(Slack)や社内情報共有ツール(DocBase)等の導入や事業内容やエンジニア組織の説明などのオリエンテーション、顧客へのヒアリングを行い、2日目は2回目の顧客へのヒアリング、環境構築を行いました。3 / 4日目と5日目の午前中には開発を行い、5日目の午後には社内で成果物を発表しました。
社員との交流は初日を除き、主にGoogle Meetを介して行いました。1日2回メンターと次に方向性ややるべきことを確認する朝会 / 夕会と、様々な部署の方のお話を伺う面談、そして最終日にはCTOと振り返りを行いました。個人的には、自分がユーザーとして直接触ったことのあるGo Toキャンペーンの電子クーポンシステムの開発に携わった方のお話を伺えたのがとても楽しかったです。
主にチャットツールとしてSlackを、ミーティングやボイスチャットはGoogle Meetを用いました。コードはGitで管理し、branchを切ってGitHubにpush、Pull Requestを立ててメンターの方にコードレビューして頂き、LGTMを貰ってMergeするという手順を踏み開発をさせていただきました。実際に業務を行う際も、このような手順を踏んで開発するとのことでした。
やったこと
ヒアリングを行い、顧客の問題がどのようなものか、それをどのように解決するかという点を考え、課題を解決するようなアーキテクチャを設計しました。その後、事前に設計したことを元にコードを書きました。コードを書く期間が2日半ととても短かったため、そもそも全てを実装する必要はないとのことでしたが、最低限実装したいと私が感じていたところまで実装することが出来なかったので、もう少し時間があれば…とは正直思いました。
詳細なレビューをメンターの方から頂くことが出来ました。感謝しかありません。自分のコードを人にレビューしてもらうという経験はなかなか個人開発では得られない経験でした。
GitHubにおける作法や変数の命名規則といった初歩的なところから、オブジェクト指向プログラミングやMVCにおける考え方など幅広く教えて頂き、かなり勉強になりました。また、メンター以外の方も時々コメントしてくださり、インターン生に対するバックアップ体勢がかなり充実していると感じました。
Ruby on Railsはチュートリアル程度しか触ったことが無かったのですが、それをキャッチアップしながら開発するのは(良い意味で)とても忙しく、充実していました。
学んだこと
インターンを行う前に掲げていた、可読性、保守性を意識したコードを書けるようになるという目標のイメージをかなり掴めました。branchやcommitの粒度など、個人では意識しないものやYAGNIの原則など初めて知った概念がたくさんありました。(かなり多くのものを学んだので、頭がキャパオーバーしていると思います)実際の業務でのプログラミングでは、様々なエラーを想定してコードを書いたり、より要件定義を明確にするといった違いがあるとのことですが、普段趣味でプログラミングしているときと業務でプログラミングをしているときの相違点が明確になりました。
コミュニケーション上の問題も明確になりました。例えばエラーに出会ったときに、(自分の中では手を尽くしたとしても)質問された側にとっては、具体的にどのようなエラーコードが出ていてどのような対処法を行ったのか、ということが全く伝わりません。常に相手側にとって十分な情報を伝えるということを念頭に置きながらコミュニケーションを行いたいと思いました。5W1Hを意識する、といった初歩的なことを常に出来るように心がけたいです。
また指摘されたポイントとして、納得しきれていないことに対して手が動かないということがあります。実際にそれは自覚していましたが、指摘されたということは納得しきれていないことに対して質問することが足りていないのだと思います。少しでも疑問に思ったことは徹底的に質問するということをより意識して行いたいと思いました。
インターンを踏まえて
私はなんとなく就職してもコードを書きたいと思っていました。しかしながら、業務で行うプログラミングと個人開発では異なるため、実際に業務でするプログラミングは楽しくないのではないかという懸念がありました。今回のインターンを通して全くそんなことはないということを実感できたので、実際にエンジニアとして働こうという強い決心をすることが出来ました。
最終日に行ったCTOのi7aさんとの振り返りでは、技術的な突破力があるという強みを教えて頂きました。顧客のニーズに対して、どのようなアプローチを行えばそれを解決出来るかということを深く考え、実現可能性のある範囲でどのように実装すればよいか、といったことを考えることは割と好きなのですが、それを強みとして認識して頂けて嬉しかったです。ただこれは私のやりたいコードを書く前の段階で行う作業であるため、実際に就職してから何をやることを重視して働きたいか、といった点についてはより深く考える必要があるとも思いました。
オフィス見学した感想
オフィス見学させていただいた時に感じたポイントとして、配線が見えないのに様々なところにあらゆるものがあるということに洗練された印象を受けました。Atmoph Windowが3枚並んでいるスペースを見たときはガジェット好きとしてとても興奮しました。それだけモダンな流行に敏感な人がいるのだとわかり、とても好印象でした。
カウンターのようなスペースでは立ちながら作業出来るような高さの机が存在するため、自宅では立ちながら作業を行っている私にとって好都合でした。社員さんの中には寝転がりながら作業する人もいらっしゃり、エンジニアがどれだけ快適な作業を行えるかということに重点をおいた空間作りを行っているということが感じられました。
インターン中の感想
今回行った課題は比較的新しい課題とのことで、時々詰まるところはありましたが概ねスムーズに取り組むことが出来ました。その理由としては、リポジトリのREADMEやapi仕様書が充実していたからというものが挙げられます。誰にとっても読みやすく、再現性のあるドキュメントが書かれていて、素晴らしいと感じました。また困ったときに相談しやすい環境や、朝会 / 夕会でこまめにやるべきことを確認して明確にするプロセスを忘れずに行うシステムが整えられており、非常に働きやすいと感じました。他の企業のインターンに行ったことが無いために相対的な評価をすることは出来ませんが、総合的にみて気持ちよく業務を行うためのシステムが整えられているという印象を受けました。
謝辞
5日間という非常に短い期間ではありましたが、これからの就活を考える上で重要な気づきをいくつも得られた、貴重な体験をすることが出来ました。
このようなインターンの存在を知らせてくださった就職支援会社のご担当者の方々や、私と面談を行ってくださり、会社の様々なところを教えてくださった人事の平野さんをはじめ、インターン期間中につきっきりで面倒を見てくださったメンターのnakayaさんやakktさん、API関連について相談に乗ってくださったTakadaさんやmatsushimaさん、アニメなどの話題に乗ってくださったでぐちさん、本質的なアドバイスをくださったCTOのi7aさん、そして面談などで様々なことを教えてくださった方々や最後の発表をご清聴頂いた皆さん、本当にありがとうございました!
おわりに
いかがでしたでしょうか? ギフティでは、 One giftee というバリューを掲げ、チームでより良いものを作り出していくコミュニケーションをチーム開発においても大事にしています。 そのバリューを体現するカルチャーをインターンを通じて感じていただけたなら、とても嬉しく思います。
ギフティでは、通年で新卒エンジニアおよび、インターンを募集しています。 少しでも興味をお持ちの方はこちらよりカジュアル面談にお申し込みください!