WEBエンジニアに転職して1年経ったので1年目の自学を振り返ってみた（言語編）



# はじめに
2021年の10月に都内のWEBエンジニアになりました。
自身の内省と今後の学習方針を整理するために、WEBエンジニア1年目の自学で使った参考書や教材を覚えてる範囲で記録に残そうと思います。

1年目の時に、意外とこういった記事を見かけず「1年目の自分が喜びそうな記事」を書きました。

今回は言語編に絞ってます。

※使用言語：
フロントエンドはTypeScript × React 
バックエンドはJava
## フロントエンド
### TypeScript
#### 【世界で4万人が受講】JavaScriptエンジニアのためのES6完全ガイド
入社して2ヶ月目あたりで、自社サービスをjQuery → TypeScriptに移行しようという流れになったので、学ぶ必要性が出てきた。
そもそも入社前にほぼvanila.jsも触ったことなかった状態でした。（progateやったくらい。DOMって何？ってくらい無知な状態だった。）

最新のES6の記法をこの動画で学びつつ、DOMの取得方法などは都度ググっていた。
個人的にreduceにまだ苦手意識がありマス。


https://www.udemy.com/course/javascriptes6/
#### 最速で学ぶTypeScript
無料でできるし、とっかかりには最適な動画だと個人的に思った。
kazuさんの声が優しくて好きです。。



https://www.udemy.com/share/103kcy3@Rtt2q0F7vneAU_47-2mw0z7r-II9mbHADR8XnTqSvHFnZCflV5KxJZ-1kSWQU9oDSA==/

####実践TypeScript ~BFFとNext.js&Nuxt.jsの型定義~ 


以下の動画をたまたまみていた時に王と名乗る人物が賞賛していた参考書。
体系的にまとまっており、"最速で学ぶTypeScript"よりも深い内容になっていた。
TSのジェネリクスはJavaのジェネリクスよりも複雑に感じる...

[未経験から３年でJavaScriptの王になった男
](https://youtu.be/sXOogHLGu1A)

 https://www.amazon.co.jp/dp/483996937X/ref=cm_sw_em_r_mt_dp_HRHBNS1CGMA9DF94NM0G

#### 【世界で7万人が受講】Understanding TypeScript 日本語版

正直、実践TypeScript ~BFFとNext.js&Nuxt.jsの型定義~とどちらかで良かった気がする。
苦手意識のあるジェネリクスの章がたっぷり一時間あるので利用したり、業務中に出てきて解読が難しいと感じた型（交差型など）の理解を深めるために利用した。

https://www.udemy.com/course/understanding-typescript-jp/

####TypeScript Deep Dive 日本語版
時間が空いているときに眺めていた。サラッと読んだ程度だけど、「なぜTypeScriptを使うとよいのか」から始まり、「コーディング規約」まで網羅的に書かれていて良かった。


https://typescript-jp.gitbook.io/deep-dive/

### React

#### チュートリアル：React の導入（公式ドキュメント）
progateをサラッとやった後に、公式の有名な三目並べをやった。
また業務での開発環境がReact × TypeScriptなので二周目でTS化した。

https://ja.reactjs.org/tutorial/tutorial.html

以下参考にした気がする。ありがとうございます。

https://zenn.dev/sprout2000/articles/36346c26f98e6e

#### 【旧版】りあクト！ TypeScriptで始めるつらくないReact開発 第2版
もう新版が出ているのか...
対話形式で読みやすかった。レビューを見ると難しいとあるけれど、ここで挫けたら業務のレベルに到底達せないと思い最後まで進めた。


https://oukayuka.booth.pm/items/1312652


#### モダンJavaScriptの基礎から始める挫折しないためのReact入門

まだJSに不安があったので、本格的にReactを学習する前にちょうど見つけた講座。
Reactで使うJSの記法をメインで復習&学べて個人的にありがたかった。
またじゃけぇさんのセクション間に挟まれる小話もモチベーション維持になったので感謝しています。

https://www.udemy.com/course/modern_javascipt_react_beginner/

#### Reactに入門した人のためのもっとReactが楽しくなるステップアップコース完全版
React × TypeScriptを使うセクションが実践むきで参考になった。
また、code sandboxを知ってちょっとした動作を確認する際のツールとしても現在愛用している。

https://www.udemy.com/course/react_stepup/

#### [COVID 19アプリ編] Reactで作るコロナウイルス Live ダッシュボード

React Hooks + Redux ToolKit + TypeScript を使って、COVID19 (コロナウイルス)ダッシュボードWebアプリを作った。
業務ではReduxに触れる機会がなかったので、なんとなく雰囲気を知れて良かった。

https://www.udemy.com/course/covid-19-react-live/

#### [基礎編]React Hooks + Django REST Framework API でフルスタックWeb開発
Hooksの学習メインで使おうと思ったけれど、Pythonに関するセクションが多かった気がする。
Pythonの雰囲気をなんとなく知れて良かった。

https://www.udemy.com/course/react-hooks-django-rest-framework-api-web/

#### その他
最近はバックエンドからデータを取得する処理を書くことがあり、React Queryを使用した。（2ヶ月ほど前はSWRを使っていたのでフロントエンドのトレンドの変化は早い...）

https://react-query.tanstack.com/

## バックエンド
###Java
#### スッキリわかるJava入門 第3版 (スッキリわかる入門シリーズ)

入社してサラッと三周くらい読んだ。
入社するまでRubyしか触ったことのなかった自分には、静的型付き言語は難しく感じた。
仕事終わった後に、お風呂でよく読んでた。
出てくるキャラクターが可愛くて、親近感が湧いた。



https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BJava%E5%85%A5%E9%96%80-%E7%AC%AC3%E7%89%88-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1%E6%B8%85%E5%96%AC/dp/4295007803/ref=sr_1_1?adgrpid=81631582256&gclid=CjwKCAiArOqOBhBmEiwAsgeLmWUT6HCUdnCc4dGL4IiETtNRw4O33uLq5nR6UHDR0vAnP9ZQMNlGNhoCDcIQAvD_BwE&hvadid=553838159277&hvdev=c&hvlocphy=1028851&hvnetw=g&hvqmt=e&hvrand=17365998510762876934&hvtargid=kwd-856361519193&hydadcr=22198_13289363&jp-ad-ap=0&keywords=%E3%81%99%E3%81%A3%E3%81%8D%E3%82%8A+%E3%82%8F%E3%81%8B%E3%82%8B+java&qid=1641718962&sr=8-1

#### スッキリわかるJava入門 実践編 第3版 (スッキリわかる入門シリーズ)
"2章 さまざまな種類のクラス"（日付のAPIなど）や"9章 データベースアクセス"は業務でも活かされて参考になった。
"3章 関数とラムダ式"だったりは、関数型の書き方を復習したい時にたまに読み返してる。


https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BJava%E5%85%A5%E9%96%80-%E5%AE%9F%E8%B7%B5%E7%B7%A8-%E7%AC%AC3%E7%89%88-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8B%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1/dp/429501124X/ref=sr_1_3_sspa?adgrpid=81631582256&gclid=CjwKCAiArOqOBhBmEiwAsgeLmWUT6HCUdnCc4dGL4IiETtNRw4O33uLq5nR6UHDR0vAnP9ZQMNlGNhoCDcIQAvD_BwE&hvadid=553838159277&hvdev=c&hvlocphy=1028851&hvnetw=g&hvqmt=e&hvrand=17365998510762876934&hvtargid=kwd-856361519193&hydadcr=22198_13289363&jp-ad-ap=0&keywords=%E3%81%99%E3%81%A3%E3%81%8D%E3%82%8A+%E3%82%8F%E3%81%8B%E3%82%8B+java&qid=1641718962&sr=8-3-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEzQlAzMkMwVExQSDMmZW5jcnlwdGVkSWQ9QTA1NDA1OTQyS1NRM1NXVTJYN05BJmVuY3J5cHRlZEFkSWQ9QTNRSVJYVjZKNzIwNDkmd2lkZ2V0TmFtZT1zcF9hdGYmYWN0aW9uPWNsaWNrUmVkaXJlY3QmZG9Ob3RMb2dDbGljaz10cnVl


#### スッキリわかるサーブレット&JSP入門 第2版 (スッキリわかる入門シリーズ) 
Javaを初学する上で、上記二つのスッキリわかるシリーズと合わせて、王道セットです。
セッションやスコープの概念について参考になった。
その一方で、JSPについて業務ではカスタムタグを使っていたり、タグはググったりした方が覚えやすいなと思った。

JSPについては以下のサイトとかをよく参考にしていた。
http://www.javaroad.jp/index.htm

#### Effective Java 第3版
自分同様にWEBエンジニア未経験で入った先輩にオススメ頂いた本。
"私的初心者が読んだら挫折する本 of the year"に選出した。
Java8で導入されたラムダとストリームに関する章とenumについての章を部分的に読んだ。
これからの自分に期待。

https://www.amazon.co.jp/Effective-Java-%E7%AC%AC3%E7%89%88-Joshua-Bloch/dp/4621303252/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3A11O92BGJQTZ&keywords=effective+java&qid=1641719825&sprefix=effective+java%2Caps%2C260&sr=8-1

#### 増補改訂版 Java言語で学ぶデザインパターン入門

エンジニアMTGでデザインパターンについての話が出るがついていけなかったので購入した。
業務で使うAdapterやSingletonについて理解を深めた。
個々のデザインパターンに出会ったときに、辞書的に理解を深めるのがいい気がしている。


https://www.amazon.co.jp/%E5%A2%97%E8%A3%9C%E6%94%B9%E8%A8%82%E7%89%88-Java%E8%A8%80%E8%AA%9E%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E5%85%A5%E9%96%80-%E7%B5%90%E5%9F%8E-%E6%B5%A9-ebook/dp/B00I8ATHGW/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2MNWGSQ9OFNBG&keywords=%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3&qid=1641720146&sprefix=%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%2Caps%2C180&sr=8-3

#### YOUTUBE
Java8で導入された関数型の書き方に苦手意識を抱いているので、YOUTUBEの動画を見てラムダやStream APIについて理解を深めた。
色々漁ってみたけれど、個人的に以下二人のチャンネルがわかりやすい気がした。

https://www.youtube.com/channel/UC2KfmYEM4KCuA1ZurravgYw

https://www.youtube.com/channel/UCsLo154Krjwhoz8W00N8ItA

#### ひしだまの変更履歴

会社の強強な先輩エンジニアに教えてもらったソース。
最初見た時は、内容が濃すぎて自分にはちんぷんかんで理解不能だった。
慣れると勉強になるなと思うシーンもあったりなかったり。（レベル足らず）
これがギークかというほどの情報量が網羅されていて、Javaで理解が曖昧な構文がある際には辞書的に使っている。（わからなくてググっているこのサイトにたどり着くことが多い気がする。）
サイトの独特な雰囲気がなんとなく好きです。

https://blog.goo.ne.jp/hishidama

## SQL
#### スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリわかる入門シリーズ)



1冊目として最適なレベル感だった。

https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BSQL%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E3%83%89%E3%83%AA%E3%83%AB222%E5%95%8F%E4%BB%98%E3%81%8D-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1%E6%B8%85%E5%96%AC/dp/4295005096/ref=sr_1_9?adgrpid=81631582256&gclid=CjwKCAiArOqOBhBmEiwAsgeLmWUT6HCUdnCc4dGL4IiETtNRw4O33uLq5nR6UHDR0vAnP9ZQMNlGNhoCDcIQAvD_BwE&hvadid=553838159277&hvdev=c&hvlocphy=1028851&hvnetw=g&hvqmt=e&hvrand=17365998510762876934&hvtargid=kwd-856361519193&hydadcr=22198_13289363&jp-ad-ap=0&keywords=%E3%81%99%E3%81%A3%E3%81%8D%E3%82%8A+%E3%82%8F%E3%81%8B%E3%82%8B+java&qid=1641718962&sr=8-9

### W3Schools

愛用してる。ハンズオンですぐに覚えられる。

https://www.w3schools.com/

## おまけ：No Code
現況のチームのタスク管理を点在するGoogle スプレッドシートから一元管理することになり、自身が担当させてもらえることになった。
その際に、NotionやAmazon Honeycodeでタスク管理のプロトタイプを作ったりと、ノーコードについての知見も得ることができ個人的に良かった。
（結論Notionで運用することになり、メンバーも現在使ってくれていて嬉しい。）

https://www.notion.so/ja-jp/product?utm_source=google&utm_campaign=14877655427&utm_medium=125922091617&utm_content=552465064290&utm_term=notion&targetid=aud-1188813422817:kwd-312974742&gclid=CjwKCAiArOqOBhBmEiwAsgeLmZGOnLsA96Bqk9JqpbBwoJ9NMBDIiutwYpQm9ZUIGLkRieme0NJqnBoCXyQQAvD_BwE

https://www.honeycode.aws/

#終わりに

参考書・教材選びの参考になれば嬉しいです。
1年目は言語仕様を知ることがメインになっていたので、今年は設計など考えてコードを書けるように学習していきます。
また学習の際にアウトプットを心がけたい。