はじめに
こんにちは、都内の企業でフロントエンドエンジニアをしているすずきと申します(2022/7現在)。
気がついたらエンジニアになって二年経ってました。
エンジニア一年目はとにかく業務外のインプットに努め(学習内容は以下の記事をご覧ください)、二年目は発信も意識し、Qiitaでのアウトプット活動を開始しました。
そのおかげで、転職ドラフトでスカウトをいただいたメガベンチャーに転職でき、年収を300万以上アップすることができました(営業時代よりも上がった!)。
スタートアップでのアプリ開発の複業もはじめたことで、一年目よりも学習に割ける時間は減りましたが、さらなるスキルアップのためにいろいろ勉強したので、今年も学習で使用した技術書やUdemyをまとめようと思います。
余談ですが、Golangの資料が多めなのは、会社のマイクロサービス案件に関わろうとしたためです。
そんな感じでバックエンド寄りにシフトしていくつもりだったのですが、なんかいろいろあって2022/8から従業員10名以下のスタートアップでAIエンジニア(未経験)として働くことになりました。
ちなみに複業については、私を含む業務委託のエンジニアが全員クビになって今月(2022/7)で辞めました。
...人生何があるかわからないですね
React(Native)/JavaScript
Reactハンズオンラーニング 第2版 ―Webアプリケーション開発のベストプラクティス
JavaScriptにおける関数型プログラミングの項とメモ化の項がとても勉強になった。
邦訳も自然で読みやすく、今まで読んだReact本の中で一番よかった。
実務でReactを使い始めて数ヶ月後くらいに読むとよさそう。一冊目でもいいかも。
Clean Architecture for React
クリーンアーキテクチャをReactとReduxの設計をクリーンアーキテクチャにあてはめて説明する本。
フロントエンド設計に関する本は貴重なので勉強になった。
React Query / TanStack Query: React Server State Management
公式Docsで読んだ内容の理解をさらに深めたいときにみると効果的。
React Queryのテストに関する項もありおすすめ。
React Native Design Patterns
React Nativeのデザインパターンが学べそうだと思って購入したが、例がClassコンポーネントだったりライブラリのバージョンが低かったりと、さすがに内容が古すぎだった。
最初のコンテナコンポーネントパターンだけは勉強になったが、普通にググればでてくるのでこの講座を受けるまでの価値はない。
Design Patterns in JavaScript
デザインパターンの知見がなかったのでJavaScriptで入門しようと思い購入。
かなりボリュームがあるので、自分の会社で使っているパターンだけ勉強してみるのがいいと思う。
Webpack 5 in 2022: The Complete Guide For Beginners
理解できていそうでできていなかったWebpackまわりの知見を補強。
Webpack特化の講座だけに解説がとても詳しい。
NestJS
NestJS: The Complete Developer's Guide
JS系のUdemyで超有名なStephen氏の講座。
バックエンドの経験があれば、かなりスムーズに学習を進められる。
公式Docsの次に参考になるくらい解説が丁寧。
Master NestJS - The JavaScript Node.js Framework
こちらの講座も解説が丁寧だが、Stephen氏の方がカリキュラムが網羅されている上にわかりやすい。
Stephen氏の方をやれば十分。
Golang
スターティングGo言語
分厚すぎずに基本内容が網羅されているのでGo学習の一冊目に最適。
構造体やポインタまわりの解説が丁寧。
みんなのGo言語
実務でGoを使っている人向けのTips集で、独学の段階ではまだ必要なかった。
実務でGoを使うようになったら脇においておきたい本。
Go: The Complete Developer's Guide (Golang)
スターティングGo言語のような基本内容に加えて、Go Routineについても詳しく解説されている(90分くらい)。
Stephen氏の講座なので間違いない。
Working with React and Go (Golang)
Goでバックエンドを構築してReactでWebアプリをつくりましょうというモダンな講座。
Rest APIだけではなくGraqhQLを導入する項もあるのがすごい。
未経験エンジニア転職を目指している方がポートフォリオつくりの参考にするのに丁度いい講座だと思った。
gRPC [Golang] Master Class: Build Modern API & Microservices
マイクロサービス案件の参画を目指していたのでgRPCにも入門した。
4時間と短い講座の割にかなり内容が凝縮されている。
基本ハンズオンなので眠くならないのもいい。
Kotlin
The Complete Android 12 & Kotlin Development Masterclass
React NativeのBare workflowによる開発でネイティブ言語の知見が必要だったので、Kotlinに一瞬入門した。
Kotlinの基本解説のあとは簡単なアプリを10個くらいつくる構成になっており、クイズアプリの項を参考にSASUKEクイズをつくってみたりした。
カメラやマップなどネイティブの機能をつかうアプリもつくるので普通にためになるが、ボリュームがすごい(48時間)ので自分にとって必要なところだけをやった方がいいと思う。
WebRTC
WebRTC 2022 - Create Zoom Clone Video Group Call Application
ZOOMクローンつくろうぜ!という講座。
本業、複業、転職先のすべてでWebRTCの知見が必要だったので、真面目に取り組んだ。
Socket.IOサーバを構築する5章が特に参考になった。
また、フロントエンドがReactなところもいい。
機械学習/統計
ビジネスの現場で使えるAI&データサイエンスの全知識
機械学習案件をやることになったものの、AI?なんそれ?のレベルだったので基本知識を学ぶために読んだ。
技術書よりも読みやすく、一冊目としてよかった。
いちばんやさしい機械学習プロジェクトの教本
Kindle unlimitedで無料だったので読んだ。
機械学習プロジェクトの進め方を学べた。
AIエンジニアの実務と知識がこれ1冊でしっかりわかる教科書
AIエンジニアやデータサイエンティストとはなんたるか?を学ぶために読んだ。
内容はよかったが、ボリュームは本屋でパラパラ読みできるくらいだったかも(立ち読みは済ませるのはよくないよ!)。
エンジニアなら知っておきたいAIのキホン 機械学習・統計学・アルゴリズムをやさしく解説
統計やアルゴリズムまわりの内容を期待して読んだ。
解説パートはわかりやすかったのだが、章末のコラムパートの内容があまりにも酷くて(女性蔑視、一線をこえたセクハラ系)途中で読むのをやめた。
出版社はなんでこの内容をOKしたんだ...という感じなので、そういう内容が苦手な人にはおすすめしない(リンクもおかない)。
コピペで簡単実行!キテレツおもしろ自然言語処理 PythonとColaboratoryで身につく基礎の基礎
自然言語処理って何?というレベルの人向けの内容。
美味しんぼやジョジョなどの漫画ネタが豊富でクスッと笑えるが、一気読みすると胃がもたれるので休憩の合間とかに読むのが丁度いい。
最短コースでわかる ディープラーニングの数学
数学の復習に丁度いい本だったが、ディープラーニングをやっていく上でこの本の内容だけで十分なのかは疑問。
データ分析に必須の知識・考え方 統計学入門 仮説検定から統計モデリングまで重要トピックを完全網羅
統計学の入門書として購入。
仮説検定、ベイズ統計まわりの理解が難しく、何度か読み返し中。図解が多い点がいい。
2022 Python for Machine Learning & Data Science Masterclass
機械学習の基本的なアルゴリズムとPythonのライブラリを学ぶために受講。
44時間とかなり濃い内容で満足度が高かった。
Courseraの有名な機械学習コースと違ってPythonで学習を進めていくので、今どきはこちらの方がおすすめなのでは?と思った。
UI/UX
iOSアプリ開発「UI実装であると嬉しいレシピブック おもしろ編」
本業アプリのWebっぽいUIを改善するべく、UI設計の参考に購入。
普通に参考になる。
インタフェースデザインの心理学 第2版 ―ウェブやアプリに新たな視点をもたらす100の指針
本業アプリで変な仕様がおりてきたとき、上の人を説得するために重宝する本。
フロントエンドエンジニア必読。
続・インタフェースデザインの心理学 ─ウェブやアプリに新たな視点をもたらす+100の指針
高齢者がつかう可能性のあるアプリを開発する上で有用な知見が書かれており、とても参考になった。
こちらも必読。
Webコピーライティングの新常識 ザ・マイクロコピー[第2版]
UIはいいのにアプリ内の文言が適当だと感じているのであれば、絶対に読むべき。
サービスに誇りをもっているプロ意識の高いエンジニアであればなおさら。
Learn Figma - UI/UX Design Essential Training
Figmaの基本的な使い方講座だが、実務で使っていれば普通に知っている内容なので改めて受講する必要はない。
開発全般
UNIXという考え方―その設計思想と哲学
UNIX系OSの何がよいのか?という疑問から読んでみた。
実務で使えるかは別として、普通に勉強になるので読み物としておすすめ。薄いので2~3日あれば読める。
アジャイルサムライ――達人開発者への道
チームにアジャイルを導入する手順が書かれた良本(結局今の会社ではTDDはおろかリファクタリングさえ根付かせることができず無念)。
PMやEMに読んどいてほしい。
カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで
チーム開発におけるプロダクトオーナーやデザイナーとの働き方を学べる。アジャイルサムライ同様、どちらかというとマネージャ向きの本。
小説形式なので業務に疲れたときの気分転換に読むのがおすすめ。
プロダクトマネジメントのすべて 事業戦略・IT開発・UXデザイン・マーケティングからチーム・組織運営まで
基本的にPM向けの本だが、UXデザイン、プロダクトのCore、プロダクトの品質、チームビルディングなどの話についてはエンジニアも読んだほうがいいと思う。
結構分厚い本なので、興味のありそうな項目だけ読むのがいい。
エンジニアのためのマネジメントキャリアパス ―テックリードからCTOまでマネジメントスキル向上ガイド
テックリード、EM、PM、CTOなど、各キャリアの段階で求められる仕事の内容を学べる。
マネージャとの付き合い方を学べるので、エンジニアにもおすすめ。
プリンシプルオブプログラミング
「UNIXという考え方」と「達人プログラマー」のいいとこ取りのイメージな本。
5章以降のエンジニアとしてのプロ意識の話はキャリアが浅いうちに読むべき(7章のプログラミングのアンチパターンが特におすすめ)。
達人プログラマー ―熟達に向けたあなたの旅
言わずとしれた本らしいが、「プリンシプルオブプログラミング」とほぼ同内容な上にこちらの方が読みやすい。
自己啓発感が強いのでモチベーションを高めたい人にはこちらの方がおすすめかも。
Clean Coder
こちらもエンジニアとしてのプロ意識学習本。
9,10章の時間管理と作業見積もりの項はキャリアが浅いうちに読んでおいた方がいいと思う。
コーディングを支える技術――成り立ちから学ぶプログラミング作法
普段使っているプログラミング言語はどういう背景で生まれたのか?というのを学びたくて購入。
新しい言語を学ぶ際の参考になると思う。
良いコード/悪いコードで学ぶ設計入門―保守しやすい 成長し続けるコードの書き方
コード設計、リファクタリング、コードレビューのすべてにおいて参考になる良本。手元においておきたい一冊。
ツール
Gitが、おもしろいほどわかる基本の使い方33
Kindle unlimitedにあったので読んでみたところ、Source treeの使い方本だった。
git初心者が読むのに丁度いいと思う。
Vim Masterclass
Vimに苦手意識があったので受講してみたところ、なかなかよかった。
ただ、フロントエンド専業になってからVimをつかうことがなくなってしまったのが無念。
API
Web API: The Good Parts
API設計の良本。前職でバックエンドをやっていたときに重宝した。
表紙の蛇が気持ち悪いのでブックカバー推奨。
BFF(BackendsForFrontends)
BFFのユースケース紹介本。
本業のマイクロサービス化にあわせて構築してみたかったが、その前に退職することになり無念。
コンピューターサイエンス(CS)
プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識
大学でCSを専攻していない分、最低限このあたりの内容は勉強しておこうと思った。
基本情報技術者の参考書だと説明が簡素なので、これくらいのボリュームの本はしっかり読んでおいた方がいいと思う。
データベース(DB)
達人に学ぶDB設計 徹底指南書
バックエンドもやっていたときに重宝。
基本情報技術者や応用情報技術者をうける人も読んでおいたほうがいいと思う。
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ
ネットワーク
ストーリーで学ぶ ネットワークの基本
ネットワークはなぜつながるのか
URLを入力してからWebページが表示されるまでのネットワーク全体の動きを学ぶ本。
マスタリングTCP/IP 入門編
ネットワーク関連の辞書本。
分厚いので、以上の2冊で理解できなかったところを補強する用に使ったほうがいいと思う。
Linuxで動かしながら学ぶTCP/IPネットワーク入門
ハンズオンでTCP/IPについて学べる本。
これを読むことで、以上の本で学んだ内容についての理解が深まる。
Kindle unlimitedで無料。
セキュリティ
入門 監視 ―モダンなモニタリングのためのデザインパターン
サーバ監視だけではなく、フロントエンド監視などについても書かれている本。
アンチパターン→説明の順で進んでいくので読みやすい。
図解まるわかり セキュリティのしくみ
基本情報、応用情報レベルのセキュリティ知識を学べる。バックエンドやるならしっておきたい。
AWS/インフラ/設計
インフラ設計のセオリー --要件定義から運用・保守まで全展開
ネットでインフラエンジニアの方がおすすめしたので読んでみたが、普通に実務者向け。読み物としてはおもしろかった。
はじめよう! 要件定義 ~ビギナーからベテランまで
謎機能をたくさん提案してくる会社の事業部の人マジで読んでくれ...と思った。
はじめよう!システム設計 ~要件定義のその後に
AWSコンテナ設計・構築[本格]入門
AWSのドキュメントで挫折した人向けのコンテナ設計本。
実務でつかう人向け。
AWSエンジニア入門講座――学習ロードマップで体系的に学ぶ
AWSって何?というレベルの人が読むと丁度いい本。
インフラエンジニアを目指している人だけではなく、SAA取得を目指している人が一冊目に読むといいかも。
関係ないが、実は著者が運営しているSlackコミュニティに参加している。ただ、たまに変な人(いわゆるくれくれくん?)がいて最近はあまりログインしていない...
ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本
エリック・エヴァンスの敷居が高そうだったので手を出してみたものの、やはりDDDは難しい。
2周してようやくなんとなくわかってきた感じ。実践する自信はまだない...
おわりに
エンジニア系YouTuberの方が「業務で使用していない技術スタックを自宅学習するのは圧倒的に効率が悪い!」とおっしゃってましたが、スキルアップの面で考えると本当にそのとおりだと思います。
ただ、転職の面で考えると、未使用スキルを学習してブログ(Qiita, Zen)でアウトプットするだけで、かなり採用者の目に止まりやすいです。
そんな感じで、学習内容は自分の目的にあわせて考えるのがコツです。