2020年振り返り

Posted on 2021/01/01

TOC

2020年振り返り

フリーランスSEになって2年目が終わりました。 1年目から引き続き良い状態で勉強し続けることができ、自信がより身についた1年でした。 きりの良いタイミングなので振り返りを書いてみました。

2019年のおさらい

2019年はフリーランス1年目だったので技術のキャッチアップがメイン。 もはや久々にプログラムを書く状態で、腰を据えて書くのは約4年ぶりでした。4年でこうも変わるものかと思いながらコツコツ勉強の日々。

元々Java6とJS(jQueryとか・・・)辺りは強かったのですが最近のものは全然経験がない状態からスタートし、 最初の数ヶ月でGit、Bitbucket、Docker、Vagrant、スクラムなど現代の”当たり前”の知識を身に着け、Ruby、Rails、競技プログラミング、DDD、SpringBoot、Vue.jsなど徐々に発展してきました。

詳細は2019年振り返りを参考。

年間スケジュール

ざっくりと1年間を通してやったことです。 ReactとVue関連の勉強が主で、ある程度知識が身についたので英語に本腰を入れた流れです。

  • 1月 簿記2級(受験はしていない)、初の確定申告
  • 2月 コロナ影響
  • 3月 文字列加工システム(React)→リリースはなし
  • 4月 百人一首システム(React)
  • 5月 Groovy、Webサイトの更新検知システム(Kotlin&TDD)
  • 6月 AWSソリューションアーキテクトアソシエイト勉強、加工ユーティリティサイト(Vue)
  • 7月 備蓄品管理アプリ(ReactNative)、スマホアプリのLP(Vue)
  • 8月 堅実にFIREを実現するサイト(React)
  • 9月 FIREサイトのE2Eテスト、CircleCI、Jestを実装
  • 10月 UdemyのVue.jsコース、法人設立
  • 11月 Kubernetes、gRPC、Vue.js
  • 12月 英語

フロントエンドのスキルアップ

さて2020年はフロントエンドに結構力を入れました。

ReactはいくつかWebアプリケーションを作成し、ReactNativeで備蓄品管理アプリ(iPhone、Android)もリリースしました。 ES6から始まり、PromiseやFluxアーキテクチャ、Hooks、TypeScript、VSCodeなど学習することが多かったのですが半年もやっていると普通に書けるようになりますね。 いや書けるようになったからこう言えるけど、初めた時は全然わからなくてかなり辛かった(よく頑張った自分・・・!)。

Vue.jsも仕事で使うようになり、合わせて学習。React+TypeScriptで遊んでいたからTypeScriptを使わないで書くことが気持ち悪い。Reactの時は新しい書き方を学んでいる新鮮な気持ちだったが、古いJSに戻った気持ち。と言うと失礼すぎるか・・・。 東京都のコロナ対策サイトがVue.jsで書かれていて、OSSだったのでコードを読んでみたり関連技術を学んだり、ちょうど良いタイミングで学習できて運にも恵まれました。

ドメイン駆動設計

DDDは1年を通して実践することができ、DDDを取り入れている現場に関わり続けています。 「レガシーコードからの脱却」「成瀬さんのドメイン駆動設計入門」「CleanArchitecture」など読みたかったDDD関連書籍も読み、一部は実践に反映できたはず(できたつもり)。 まだまだPRで指摘を受けることも多いので、来年は更にブラッシュアップしていく必要があるなとは思っていますが、一通りインプットを終えて、今後はアウトプットとインプットを繰り返してレベルアップしていきたいです。

と言ってもDDDはどうしてもバックエンドメインになってしまうので、フロントエンドに力を入れるとDDDを学ぶ時間が減るいう悩ましいトレードオフですね。

インフラ強化

インフラ関連の知識・経験が浅いという課題があったので細々とインフラスキルアップもしました。 大きいものとしては、 AWSソリューションアーキテクトアソシエイト(黒本読了、Udemyコース受講)の学習。 さすがに話題に挙がることも多かったので体系的に学びました。

あとは細かいものばかりで以下の通りです。

  • AWSのlamdaを使ったt定期バッチ。CloudFormationとServerlessFrameworkでプロビジョニング。SlackAPIと連動
  • WebサイトのE2EテストをCircleCIで実現
  • AWS CodePipelineでGitHubからS3に自動デプロイする仕組みの実装
  • Kubernetesの仕組み・操作
  • Dockerを使って一時的なコマンドを使えるようにカスタマイズ

コロナの影響

2月からコロナの影響を受けていて、リモートワークメインに以降していました。 通勤時間がなくなったおかげで勉強は捗ったのですが、職場での雑談や手軽な相談ができなくなったので情報収集に時間がかかっていたように思います。あと運動不足も・・・。

資格試験も受けたかったのですが諸々断念。簿記2級、データベーススペシャリスト、FP2級など、受験を断念して変わりに多数のシステムを構築したり読書の時間に充てました。リモートワークで需要が多そうなフロントエンド周りの知識を身につけることができたので結果オーライです。

その他

通勤時間がなくなったのですが、健康面は前年より良くなったと思います。 体幹トレーニング、筋トレなど時間を決めて細々と継続し、腰痛は改善しました。

友人との遊び・飲みが全然できなかったけど、コロナだからさすがに仕方ないかな。

総括

前年アウトプットが少なかったのですが、今年はアウトプット多めにできて良かったです。 フロントエンドの自信が身についたのが一番の収穫で、サーバサイド以外もできますと言える状態になって大満足です。もちろんまだまだ勉強不足感はありますが。

ベース知識が出来上がり、経験も積んだので少し余裕も出てきて、補助的な能力として英語にも手を出すことができました。2年程がむしゃらにやったのでそろそろ少し趣味だったり休憩を挟みたいです。

2021年に頑張ること

英語を最優先に頑張ることにします。 ITは引き続きDDD、フロントエンドを学び、Scala、Goを多少経験しておこうと思います。 DDD、フロントエンドは仕事で使うので自然にスキルアップでき、自前サービスを増やしていきます。 一方のScala、Goはスキル寿命がどうなのかはっきりわからないので、一旦さわり程度だけ学ぼうかなと。

資格は商談時にわりと威力を発揮するので増やしたいのですが、コロナ禍でなかなか受験しにくく、今年は見送りですかね。その分英語に力を入れたいなと思います。

IT

  • Scalaの基礎を学ぶ。簡単なツールが作れる程度になる
  • Goの基礎を学ぶ。簡単なツールが作れる程度になる
  • 引き続きDDDの経験を積む。DDDを語れる状態になる
  • Reactの実践スキルを高める。現場の即戦力レベルが目標
  • Vueの実践スキルを高める。現場の即戦力レベルが目標

ファイナンス・会計

  • 外交員一種。仕事で必要な知識なので学んでおく。コロナ禍なので受験はしない予定

##ベース知識・スキル

  • 文章構成・日本語の使い方の本を読む。文章を書く時にわかりやすい日本語を心がける
  • ブログ・Twitterのアウトプットを定期的に実施する。学んだ知識をまとめてアウトプットする
  • 英語ドキュメント・ニュースを自然に読めるようになる
  • 家の中で英会話をする
  • 仕事中のムダをなくし、手持ちタスクの全体感を把握する
  • ロジカルシンキングで学んだことを実践で活かす

年間予定

大まかな年間予定は以下の通り。 英語をベースに学び、ドキュメントや動画でITスキルを身に着けていく戦法(何かを学びつつ英語も学ぶ戦法)を取ります。 アウトプットは来年も重視したく、何かを学んだら独自のサービスを作成したり、新しく得た知識はブログ等にまとめたり、日本語アウトプットやロジカルな書き方が苦手なのでこれまで以上にアウトプットし続けるように意識します。特にブログやTwitterは結構更新ストップしちゃうから継続したいな。

本当は資格試験も受けたいのですがコロナなので来年以降に持ち越し。

1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
Scala ■■■ ■■■
Go ■■■ ■■■
DDD
React ■■■ ■■■ ■■■ ■■■
Vue ■■■ ■■■
デザイン ■■■ ■■■
英語 ■■■ ■■■ ■■■ ■■■ ■■■ ■■■ ■■■ ■■■ ■■■ ■■■ ■■■ ■■■

今後の生存戦略

自分の現状

早2年フリーランスとして活動しましたが、平均以上のスキルはある状態と自負しています。随分自信も付きました。
サーバサイドではJava+Spring+Bootの経験は既に十分以上あり、フロントエンドも新しい現場でバグ修正であればすぐ適用できるようになりました(新設だと設計スキルも必要なのでまだ微妙ですが)。
インフラも現場経験やプライベートの実験により大まかなコンセプトや会話ができる状態になり、最低限のスキルは身についた状態です。 対外的に見て経験年数が増えたので、一番のハードルであった「商談前の書類審査」を突破する可能性が高まりました笑(フリーランス1年目は経験がないという理由で書類審査で落とされ、対面の商談では商談成立することが多かった)

これから力を入れること

サーバサイドはJava近辺の仕事は相変わらず多く、台頭する言語も不明確なので細々と他の言語を試しつつ、恒久的なスキルであるDDDを引き続き学ぼうと思います。

サーバサイドのみの知識では差別化できないので、フロントエンドやインフラの能力もより高めます。
フロントエンドではReact、Vue.jsの2大フレームワークを学び、設計できる状態になることが最低限の目標。
インフラはDevOpsに関連するものを満遍なく知っておく・プライベートでも経験しておくことを重視し、深い知識ではなく浅く広い知識を蓄えようと思います。浅く広い知識である理由ですが、結局業務でやらないと深い知識を得るのは厳しいし、プライベートである技術を深堀りしておいても現場次第では全く使わないので効率が悪いです。

2年間のフリーランス経験を経て、ある程度ITスキルが身につき、次の仕事を見つける難易度が下がってきました。
アイゼンハワーのマトリクスで例えると「重要だが緊急ではないタスク」に費やす時間を増やすフェーズに入った状態です。
今後使わなくなる可能性があるスキルをパッと学んで一時的な能力を高めるより、恒久的に必要とされる能力を身につけることが今後の長期戦略として重要で、ここに時間をかける余裕ができてきました。

今後絶対に使うスキルで言えば「英語」「ロジカルシンキング」「文章能力」。ITスキルでは「DDD」などの設計理論でしょうか。
この辺りは学習に時間がかかるものなので来年だけではなく数年かけて徐々に身につけていこうと思います。

フリーランスの増加に伴う制度の変化

さて話は変わりますが、世の中を見ると終身雇用制度の崩壊の予兆と思われるニュースが散見され、フリーランス人口が増えつつあります。
良い意味でも悪い意味でも緩い世界であったフリーランスの世界ですが、フリーランスの増加にあたり法整備も今後進むでしょう。 インボイス制度や偽装請負等のキーワードを耳にする機会が増えてきましたが、今後は国民年金保険料の増加や加入必須化などの更なる税金徴収制度も整備されていくと思います。

フリーランスとして働くのであれば、若いうちに早めに手元のキャッシュを増やし資産運用で将来不安を無くすことは必須の考えかもしれません。 金銭的な悩みから開放され、長期的にエンジニアとして働いていけるように勉強も投資も引き続き頑張っていきたいと思います。

雑多なまとめ方ですが、2020年(フリーランス2年目)の振り返りでした。来年もアクセルを緩めずに頑張ります。