この記事は、上智大学エレラボ Advent Calendar 2021第2日目の記事です。
はじめに
2021年の4月から某IT企業に新卒として入社し、サーバーサイドエンジニアとして7ヶ月ほど経ちました。
※本記事は私が現在所属する組織の公式見解を表したものではありません。また、ここに書いてあることをすべて信じたからと言ってつよつよエンジニアになれる保障もありません。1エンジニアの妄言だと思って読んでください。
やっていて良かったこと
長期インターン
大学2年生の1月(2019年1月)〜大学4年生の3月(2021年3月)の間インターン生として開発業務をしていました。インターンといってもアルバイト代わりにやっていましたが、そこで諸々開発の経験を積んだおかげで下に上げるPython、Git、AWS、Dockerを満遍なく学ぶことができました。
Python/Webアプリケーションの開発
今の仕事ではPythonを使っていないものの、Python(Django)を使ってエレラボの会計システムを作ったのはとても良い経験でした。ログイン機能の作成、REST APIによるCRUD操作、データベース関係の設定など学ぶことがとても多かったです。Webアプリは言語/フレームワークが変わっても基本的な概念は変わらないので好きな言語で一通りWebアプリケーションを作ってみると学ぶことが多いのではないかと思います。
Git/GitHub
かなり基本的な技術ですが、開発をする上で絶対に使うものなので上げました。エレラボのシステムを作る上で色々コンフリクトを起こしたりトラブルに見舞われたものですが、そのおかげでトラブルが発生しても冷静に対応できるようになりました。
GitHub Actionsなどを使ってCI/CD周りも学んでおくと業務に役に立つかもしれません。
AWS
AWSかGCPかAzureかは問わないですが、何かしらクラウドサービスに慣れていると、日常の業務で心配がなくなりそうです。言ってもエレラボではEC2サーバーやS3、Route 53、CloudFront周りしか触っていませんが、苦手意識はなくなりました。この5つくらいに慣れておくと新しいサービスを触るときでも感覚で触れると思っています。EC2サーバーを立てずにS3で静的サイト配信であれば月額数十〜百円で動かせるのでぜひやってみてください。
Docker/Docker Compose
最近だとかなり普及しているので意識しなくても触る機会がありそうです。さっと本番環境に近いものを使い捨てで用意したり、新しいツールをホストマシンを汚さずに試したりできるので、覚えておくととても便利です。
2番目に挙げたWebアプリケーションをDocker化するなどして学んでいけば徐々に慣れていくと思います。
GAS
Google Apps Script、スプレッドシートなどで動かすためのスクリプト言語です。大体の企業でGoogle Workspace(G Suite)導入していて、GASで組まれた社内システムがあるというのもあるある話だと思います。
流石にプロダクションのコードを開発することはないですが、覚えておくと自分用のツールを作ったり既存コードを直せたりするのでおすすめです。個人的なツールでは秘書botとして定期的なリマインドを管理するためのアプリケーションをGASで作っています。
やってたら良かったこと
色々な会社でのインターン
チーム開発の経験を積むために色々な会社でインターンをしておけば良かったなと思います。インターン時代の会社と今働いている会社で2社しか経験していませんが、開発スタイルが結構違うので最初は戸惑う機会が多くありました。絶対に正しい開発スタイルというのはないと思いますが、色々経験しているとそれぞれのメリット/デメリットが見えてきて面白いと思います。
Infrastructure as Code周り
TerraformやSAM(Serverless Application Model)、Cloud Formationなどコードでインフラの設定を管理するツールは色々あります。エレラボでサーバー構築をする際はとりあえず動けばいいやで色々設定をしたので、明文的に構成を残すことができませんでした。何かしらIaCのツールを使って残しておけば引き継ぎも楽だし、その知見を業務でも役に立てられたんじゃないかなと思います。
やらなくて良かったこと
ないです!!!!!!
プログラミング周りで勉強する必要なかったなあと思うことは特に思いつかないです。強いて言うならもっと時間を有効的に使えていたら良かったかなあ。TwitterやYouTubeで浪費した時間は帰ってこないです。
この記事を最後まで読んでくれた皆様におかれましては有意義な開発ライフを送ることを祈っております。