はじめに
2021年7月でエンジニアになって1年経ちました。
エンジニア転職直後に年収が300万くらい下がり、爆速で市場価値をあげなければ!!というモチベーションで一年間いろいろ勉強してきました。
これまでその内容を振りかえることもなかったので、この機会に自宅学習で使った技術書とUdemyをまとめてみることにしました。
参考資料選びに悩んでいる方の助けになれば幸いです。
ちなみに、転職して半年間は学習の成果も市場価値の向上も全く感じられなかったのですが、最近になってようやくそれらを感じられるような出来事が増えてきています。
- WantedlyやQiita Jobsで有名企業(Y社とか)からスカウト
- 転職ドラフト初参加で4社から指名(2社から700万提示)
JavaScript
JavaScript本格入門〜モダンスタイルによる基礎から現場での応用まで
JSの歴史やシングルスレッドについて触れられており、非同期処理(Promise)やPrototypeの項が特にわかりやすかった。
JS学習の2冊目としておすすめ。
TypeScript
##プログラミングTypeScript - スケールするJavaScriptアプリケーション開発
邦訳の癖やたまに入るつまらないジョークのせいで内容が全く頭に入ってこなかった。
初心者向けの本ではないことは確か。2冊目以降に読む本。
実践TypeScript ~BFFとNext.js&Nuxt.jsの型定義~
基本的な部分(typeガード、constアサーション、インデックスシグネチャなど)からReactへのTypeScriptの導入についても書かれている良本だった。
React and TypeScript: Build a Portfolio Project
ReactへのTypeScriptの導入がテーマの講座。
前半のHooksやReduxの型定義の部分が非常に勉強になった。
TypeScript: The Complete Developer's Guide
TypeScriptのハンズオン講座。
TypeScriptとあわせてオブジェクト指向プログラミングについても学べる素晴らしい講座。
React
The Complete React Developer Course(w/ Hooks and Redux)
Reactを独学し始めた頃に初めて購入した講座。
前半のReact基礎と後半のHooksの項が超わかりやすい。
中盤のReduxの項が初見だと難しい。
Modern React with Redux Training Course
Reduxの概念を図解してくれる神講座。
Reduxで挫折しかけたときに救ってくれた。
Discordのコミュニティがあり、そこで質問を投げると世界中のエンジニアから秒で答えが返ってくる。
また、講師のStephen氏の講座は全部わかりやすい。
Complete React Developer in 2021(w/ Redux, Hooks, GraphQL)
GraphQL(ApolloClient)との連携、PWA化、パフォーマンス向上(メモ化)にまで踏み込んだ初級~中級者向け講座。
図解がほとんどなくて英語も早いので、初見の理解が難しい箇所がいくつかあるが、理解できたときに成長を感じられる。
Testing React with Jest and Testing Library
Reactテスト(Jest, Testing Library)の専門講座。
指導経験が豊富なマダムっぽい方が講師で、受講者が疑問に思いそうなところをわかりやすい図とともに説明してくれる。
MockedProviderの項は特にわかりやすかった。
React Native
実践Expo React NativeとFirebaseで、SNSアプリを最速ストアリリース!
入社して最初に渡された本。
正直公式Docs読めば十分だったかも。
React Native 〜JavaScriptによるiOS/Androidアプリ開発の実践
アニメーションの実装で参考にした。
分厚い割に内容はそこまで深くなかった。全部読む本ではない。
The Complete React Native + Hooks Course
業務でReact Nativeを使うことになって初めて手をつけた講座。
React Nativeがどんなものかということを理解できたが、Reactを知っていれば公式Docsを読むだけで正直十分だったかも。
あと、現時点で内容がすでに古くなっている可能性あり。
PHP
PHP+MySQL (MariaDB) Webサーバーサイドプログラミング入門
PHP(Laravel)でバックエンドもやることになったときに、以下の講座を一夜漬けした。
この講座でPHPの基礎を大まかに掴んだあとは、公式Docsで調べながら実装していった。
Laravel
PHPフレームワークLaravel Webアプリケーション開発
Amazonレビューがよかったので購入。
Laravelに慣れた頃に読むと勉強になる。
Requestのバリデーションルールについても詳細に書かれており、公式Docsの補助本として重宝。
Mastering Laravel PHP for Beginners and Intermediate
LAMP環境の構築、MVCの基本的な書き方、Seederの書き方を学習。
講師がハンズオンを端折りがちで頻繁に内容に追いつけなくなる。
エラーを解消する過程が勉強になることもあるが、どうしようもなくなったときに講師に質問しても回答が返ってこない。
また、英語の癖も半端なく自動英語字幕も機能しない。
長々しく書いたが、要はおすすめしない。これ以外のLaravelのUdemyもほとんど外れだった印象。
LARACASTS
Udemyで外れを引きまくったので評判のよいLARACASTSを受講。
無料講座だけでもLaravelの基本を抑えることができてとてもよかった。
SQL
スッキリわかるSQL入門
SQL学習の一冊目として非常に良い本だった。
ドリルを解かなくても辞書的に使える。
15時間でわかる MySQL集中講座
SQLのパーティションについてはこちらで補強。
The Complete SQL Bootcamp for the Manipulation and Analysis of Data
一通りのSQL文を打てるようにこちらの講座で練習した。
GraphQL
初めてのGraphQL - Webサービスを作って学ぶ新世代API
オライリーの邦訳本は文章の癖が強くてやたらとスターウォーズネタをいれてくるのがウザいので一冊目に読むもんじゃない(私見)。
慣れてきたくらいのときに読み返すと勉強になるんじゃないだろうか。
フロントエンドエンジニアのためのGraphQL with React 入門
ハンズオンのスピードが早すぎて最後の方はあんまり覚えていないが、前半の内容(REST APIとの違い、GraphQLの特長)は勉強になる。
ブランチをきって実装→masterにマージという流れで進んでいくので、Git操作の勉強にもなる。
The Modern GraphQL Bootcamp (Learn Node.js and Apollo)
Modern GraphQL Bootcampとは名ばかりで、旧バージョンのPrisma V1を学ぶことになる。
技術の進化は早いんだなぁということを知ることができた。
AWS
徹底攻略 AWS認定ソリューションアーキテクト - アソシエイト教科書
へーこんなサービスあるんだーくらいの知識を身につけるための本。
これだけでSAA-C02の合格は無理。
AWSクラウドの基本と仕組み
上記と似た位置づけの本。どちらか読めば十分。
これだけでOK!AWS認定ソリューションアーキテクト - アソシエイト試験突破講座
AWS SAA-C02取得のために、講義と問題集の講座を受講。
講義の方は、講師の方のいい間違えが多かったり音質がひどかったりであまりよくなかった。
一方、問題集の方は本番レベルより上の良問がたくさん収録されていて非常によかった(おかげで一発合格できた)。
AWS認定ソリューションアーキテクト - アソシエイト模擬試験問題集
AWS AppSync & Amplify with React & GraphQL - Complete Guide
GraphQLのマネージドサービスAppSyncや簡単なコマンドでバックエンド(DB, API)を構築するサービスAmplifyの使い方を学ぶことができる。
アプリで個人開発をすることになったら使うと思う。
Master AWS CloudFormation: Deploy Your Own Infrastructure
CloudFormation講座。
コンソールでのインフラ構築も危ういレベルで受けたので正直言って消化不良だった。いつかリベンジ。
AWS Lambda and the Serverless Framework Training
社内勉強会でServerless Frameworkの便利さを語ってた同僚がいたので、この講座で勉強してみた。
REST APIを簡単に実装することができてサーバレスめっちゃ便利だなってなった。
Amazon ECS & Fargate Master Class - Docker on AWS
ECS, ECR, CodeCommit, CodeBuild, CodeDeploy, CodePipelineという、モダンな開発のための必須サービスを学べる講座。
ECSのタスク定義やサービス作成まわりから詳細に学べる。
AWS CloudTech
昨年できたAWSのオンラインスクール(?)。
AWSの基本サービスやDockerに関する講座があり、QiitaやZenの記事の添削までしてくれて、Slackコミュニティにも入れるというすごい講座(¥15,000くらいで永久会員になれる)。
...ではあるのだが、Slackコミュニティの空気感になんとなく馴染めず(やたらとコメントが多い人に辟易してしまった)、全くログインしなくなってしまった。
とはいえ、サービス内容の充実さに加えて運営のくろかわさんの教え方も上手なので、間違いなく価格以上の価値はある(使いこなせなかった自分が悪い)。
CloudFormation講座が追加されたようなので受けてみようかな...
Docker
イラストでわかるDockerとKubernetes Software Design plus
DockerとKubernetesの仕組みを豊富な絵で解説した本。
Dockerを一度触った上で読むと理解が深まる。二冊目以降の本。
Docker and Kubernetes: The Complete Guide
Docker基礎、CI/CDパイプラインの構築、マルチコンテナのデプロイなどを学べるDocker完全講座。
イメージビルド→コンテナ実行のフローでDockerfileの記述がどのように影響しているのかを解説してくれるので、Docker初体験の方におすすめ。
上記の本を片手にこの講座を受講するのがいい気がする。
後半のKubernetes編はやってない。
GitHub Actions
The Complete GitHub Actions & Workflows Guide
GitHub Actionsの完全講座。
他のCI/CDサービスを使ったことがなかったので、CI/CDとはなにか?という部分から学ぶことができて有益だった。
Linux
新しいLinuxの教科書
Linux標準教科書とそんなに内容はかわらない。
コマンド忘れたときにたまに見返す。
もう怖くないLinuxコマンド。手を動かしながらLinuxコマンドラインを5日間で身に付けよう
VirtualBoxでCentOSを動かしながらひたすらコマンド練習できる。
5日間で身に付けようというタイトルだが1日で十分。
コンピュータサイエンス(CS)
キタミ式イラストIT塾 応用情報技術者
コンピュータの仕組み、アルゴリズム、DBなどを図解で学べる。
JSでもメモリリークのエラーなどは起こるので、CS基礎は最低限学んだ方がいいと思った。
後半のマネジメントの部分はさらっと読んでみると面白い。
アルゴリズム
問題解決力を鍛える!アルゴリズムとデータ構造
LeetCodeを解くにあたって連結リスト、スタックキュー、ツリー、ソートの部分を読んだ。
評判いいだけあって説明がわかりやすいが、問題解決力が鍛えられるのかは謎。
Coding Interview Bootcamp Algorithms, Data Structures Course
JSでコーディング面接の問題を解くというマニアック講座。
講師の解答がオーソドックスなので、そこからさらに自分でテクニカルな解答を考えてみると楽しい。
クリーンアーキテクチャ
Clean Architecture 達人に学ぶソフトウェアの構造と設計
3回くらい読み返してようやく少しだけ理解できてきた。
そろそろ4回目にチャレンジ。
リファクタリング 既存のコードを安全に改善する
コードレビューの際に参考にする本。
文章の理解に苦しむ部分もあるが、サンプルコードがJSなので助かる。
SOLID Principles: Introducing Software Architecture & Design
講師の話すスピード、図解のわかりやすさ、講座の長さ、すべてが完璧だった。
先にこの講座でSOLID原則を抑えておけばClean Architectureを読むのに難儀しなかったと思う。
テスト
はじめて学ぶソフトウェアのテスト技法
会社の方に借りた本。
境界値分析や同値分割を知らなかったレベルの自分にはとても有益だった。
フロントエンドパフォーマンス
WEBフロントエンドハイパフォーマンスチューニング
現場でフロントエンドのパフォーマンスに困ったときに手をとった本。
レンダリングの順番や表示パフォーマンスの計測法など、フロントエンドの基本事項がわかりやすく記載されておりとても勉強になった。
マイクロフロントエンド
Microfrontends with React: A Complete Develooper's Guide
いつか大規模サービスに関わってみたいなーと思って受講した講座。
ログイン画面はVue.js、その他画面はReactみたいな感じでプロジェクトをつくれることに感動。
UI/UX
インターフェースデザインのお約束
同意しかねる箇所(レビューポップアップは使うな!とか)もあったが、UIのルールについてほとんどしらないことばかりだったので読んでよかった。
UXデザインの法則
既存サービス(Slack, LinkedInなど)を例にあげて、優れた(または劣った)UXは何なのかを解説してくれる本。
有名サービスが容赦なくディスられる様をみると、なんかちょっと元気がでるよね。
オブジェクト指向UIデザイン
松屋の券売機の操作性の悪さにブチ切れるところから始まる素晴らしい導入。
サービスに機能だけを詰め込もうとすると恐ろしいことになるということを学べる本。
この本を読んでからいろんなサービスやアプリを使ってみるとものすごく勉強になる。
初心者から始めるアプリデザイン
会社にデザイナーがいないのでFigmaの使い方を学んでみることに。
なんとなく使い方がわかったところでやめた。
UXデザイン超概論〜世に出すからには使ってほしい!ターゲットに愛されるサービスを作るための必須スキルを獲得しよう
UXとはなにか?UXデザインとはなにか?を学べる神講座。
日本人のUdemyで一番わかりやすかったかもしれない。
機械学習
ゼロから作るDeep Learning - Pythonで学ぶディープラーニングの理論と実装
開発に関わっているサービスの一部にAIが使われているので、興味本位で読んでみることに。
後半から意味不になってきて、安易に手を出してみるもんじゃないなと思った。
AIのための数学講座: 少しづつ丁寧に学ぶ人工知能向けの線形代数/確率・統計/微分
学生のときに数学はやっていたので、NumPyの使い方以外で新しく学べることは特になかった。
初学ならわかりやすいかも。
Machine Learning with Javascript(JS)
TensorFlow.jsでknnなどの基本アルゴリズムを実装していく講座。
勉強にはなったけどいつか役にたつときは来るんだろうか...
おわりに
Udemyでの学習を馬鹿にする方が意外といらっしゃるのですが、学習の導入に利用して技術の概要を掴むには一番よいと思っています。
「Udemyで概要掴む→アウトプット→技術書で補強」の学習フローが私には一番あっていました。
月ごとにどんな学習をしてきたかに興味ある方がいらっしゃればそちらについてもまとめます。