文系大学生が1ヶ月間のインターンでフルスタックエンジニアとして学んだこと

はじめに

エキサイト株式会社で1ヶ月間就業型インターンに参加いたしました河野です。
今回は、インターンの中でフルスタックエンジニアとして開発を行った私が感じたメリット、学んだことをまとめていきたいと思います。

対象読者

自己紹介

現在は文学部の大学3年生で、ゼミではフェミニズム関連の分野を専攻しています。
エンジニアとしての経験は、高校3年生から現在までエンジニアとしてのアルバイトに就いており、個人開発ではRubyJavascriptを使った私的なCLIアプリや拡張機能を作成しています。

やったこと

今回のインターンではSaaS事業部に配属していただき、ウェビナーPDCAクラウド「FanGrowth」の開発に携わらせていただきました。
簡単に技術スタックを説明すると、フロントエンドがNuxt.js(Typescript)、バックエンドがLaravel、インフラ周りではAWSを使用しています。

学んだこと、経験できたこと

今回のインターンで学んだことを、「エキサイトで働いて学べたこと」「フルスタック開発で学べたこと」の二つに分類してまとめていきます。

エキサイトで働いて学べたこと

自身の働き方について考えること

本格的にインターンが始まる前に、人事の方との面談を通して、要望に沿った配属先を決めていただきました。 自分は元々Web系企業でアルバイトしていたこと、開発だけではなくビジネス側にも関わりたいこと、バックエンドのみならずさまざまな技術の知見を得たいということから、Webアプリでありまだ立ち上がって間もないサービスであるFanGrowthにおいてフルスタックエンジニアとして働かせていただくことになりました。
配属が決まってからも、ビジネス側の会議を見学する機会を設けていただいたり、自身のキャリアプランを考える上で様々な方と面談する機会を設けていただいたりと、自分が今後どのように働いていくのかを考える上でとても大切な経験を得ることができました。

エンジニアとしての心得

gitを利用したチーム開発を行なっていくと、コードレビューの機会も多く存在します。自分は今までRubyの開発を行うことが多く、その感覚でコードを書いていると、コーディング規約に反した書き方をしてしまうこともありました。 そうしたコードの品質について、CI/CDといった自動テストやコードフォーマットはもちろん、コメントで良い書き方を指摘していただく事で、リポジトリ全体のコード品質が高く保たれていると思う機会が多くありました。
チーム開発の仕組みがきちんと作られているため、キレイなコードを残すという心得についても学ぶことができました。

フルスタック開発で学べたこと

サービス単位の開発を考えられる

フルスタックエンジニアとして開発を進めていく中では、扱う領域の幅が広がったことにより必然的にサービス全体への理解が求められます。 APIの実装、フロントの実装にしても、どのような設計で実装するのかを考える上でドメイン知識の理解が大切になることを感じました。
学生という早い内から、実際に動いているサービスの開発に携わる経験が出来たのは貴重だと考えています。

デザインパターンアーキテクチャといったソフトウェア工学

自分は今までRubyJavaScriptしか実務の経験をしたことがなかったのですが、新しくTypeScriptやPHPを使った開発を行う中で、言語ごとの特性やアーキテクチャについて考えることが増えました。
もちろんこれはフルスタックエンジニアに限った話ではありませんが、UIの開発、APIの開発といったそれぞれの領域に沿ったパターンを学ぶことは、ソフトウェア工学のように開発を体系的に考えていく上での貴重な知見となると感じました。

まとめ

今回のインターンでは、フルスタックエンジニアとして1ヶ月間実働させていただき、その中で様々な学びを得ることが出来ました。
しかしながら、メンターの方や同じチームのエンジニアに助けてもらうことが多く、技術力の未熟さを再確認してしまう時も多かったです。
この経験を糧に、改めてどのようなエンジニアになりたいか見つめ直していきたいと思います!

最後に

メンターの方や同じチームのエンジニアだけではなく、他事業部のエンジニア、人事や営業の方々にもお話を聞けて、とても濃密な期間でした!

あっという間の1ヶ月間でしたが、本当にありがとうございました!