2020年の振り返り
2020年が終わる前に今年学んだ技術などの振り返りや今後やりたいことなどをまとめてみたいと思います。
フロントエンド
言語
JavaScript・TypeScript(TSがほぼメイン)
JavaScriptはほぼ書いたことがない・TypeScriptは全くの未経験という感じでしたが、良い書籍・サービスのおかげで なんとかキャッチアップできました。
TypeScriptの型はとても柔軟で素晴らしいと思うのですが、コードを書く側の頭も柔軟じゃないと全然使いこなせそうにないなという感じでした。 なんとか良い感じにTypeScriptの型を書けるようになりたいので、年末年始はTypeScript Exercisesをやっています。
フレームワーク
- Vue.js・React.js(Reactが9割)
- Next.js(個人開発でのみ)
開発エンジニアへの転職を目指す中でVue.js自体は少しさわっていましたが、現職ではReactがメインでした。 Reactは全くの未経験だったためキャッチアップのためにけっこう勉強した記憶があります。学習に際しては以下の書籍が良い感じでした。
最低限書ける程度なので今後も要学習という感じです。
バックエンド
言語
- Python・Go
9割Pythonで、Goは既存のコードリーディングがメインという感じでした。 文法のシンプルさデプロイの容易性に加えて、Dockerやk8sなどインフラのデファクトがGoで書かれていることもあり 今後はGoに力を入れていきたいなという感じでした。
フレームワーク
- Django・Flask・FastAPI
割と複雑なWebアプリケーションはDjangoで、簡素なものはFlaskという感じでした。 FastAPIは個人レベルでしか触っていませんが、デフォルトで型付けしたりOpenAPIに対応していて かなり使い勝手が良いのでFlask使うくらいなら断然FastAPIという感じでした。
データベース
- MySQL・DynamoDB
基本的にはフレームワークのORMを使っていたので、SQL書いたりパフォーマンスチューニングなどは一切やりませんでした。 これについては業務でも個人レベルでもあまりやれる機会がないのでどうしようかな...という感じでした。
インフラ
クラウド
- AWS・Azure・GCP
AWSが8割って感じでした。転職の1年ほど前にSAAは取得していたのでAWSの基本的なサービスについてかなりふんわり理解している程度でした。 転職してからは主にアプリケーションの実行環境としてコンテナサービス(Fargate・ECR)を使ったり、フロントエンドの配信でCloudFront・WAF使ったりしてました。 諸々基本的なサービスの概要レベルは把握しておきたいと思ってDVAやSOAを取得したりもしました。
Iac
- Terraform・ServerlessFramework
基本的にクラウド環境はTerraformを使って構築・管理していました。Terraform自体も経験がなかったので以下の書籍で学習しました。
画面ポチポチしてリソースを作るより、コード化した方が各リソース間の関係も可視化でき、サービスをより理解できるという感じで最高でした。
ServerlessFrameworkは完全に個人レベルでしか使っていませんが、サーバレスなバックエンドを作る際にかなり便利で今後もどんどん使って行きたいという感じでした。 ただ完全にTerraformに慣れてしまったのでServerlessFrameworkのcFnがとても辛いというのが個人的なデメリットでした。
まとめ
今年は2年くらいやっていたカスタマーサポートから開発エンジニアに転職して広く浅くですが技術的に色々経験できて良い一年でした。 来年はもう少し全体的に技術の深堀りをしていきたいのと、自分の得意分野を作る or 最低限得意としい分野を見つけるくらいはやりたいと思っています。 またコンピュータサイエンスの基礎が全くわかっていないのでそのあたりの学習も並行してやっていきたいです。 もう少し業務をそつなくこなせるようになった後に、UoPeopleなどに入学してCSの勉強をしてみたいなという思いもありますが、まずは目の前の事からコツコツ頑張っていきます。