プログラミングを勉強し始めて1年半が経ったので初心を忘れないうちに振り返る


ということで、1年半を振り返る。これからプログラミングを勉強しようと考えている人は参考にしてほしい。特に、[後悔していること](#後悔していること)だけでも読んで、反面教師にしてほしい。

## 勉強した内容
### 言語
* HTML/CSS（3ヶ月）
    * [ドットインストール](https://dotinstall.com/)で基礎を勉強
* Python（1年）
    * [独学プログラマー](https://www.amazon.co.jp/%E7%8B%AC%E5%AD%A6%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC-Python%E8%A8%80%E8%AA%9E%E3%81%AE%E5%9F%BA%E6%9C%AC%E3%81%8B%E3%82%89%E4%BB%95%E4%BA%8B%E3%81%AE%E3%82%84%E3%82%8A%E6%96%B9%E3%81%BE%E3%81%A7-%E3%82%B3%E3%83%BC%E3%83%AA%E3%83%BC%E3%83%BB%E3%82%A2%E3%83%AB%E3%82%BD%E3%83%95-ebook/dp/B07BKVP9QY/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3VLZE2BH5CUH6&keywords=%E7%8B%AC%E5%AD%A6%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC&qid=1637386699&s=digital-text&sprefix=%E7%8B%AC%E5%AD%A6%2Cdigital-text%2C296&sr=1-1)を一読（1~2週間）
    * [独習Python](https://www.amazon.co.jp/%E7%8B%AC%E7%BF%92Python-%E5%B1%B1%E7%94%B0-%E7%A5%A5%E5%AF%9B-ebook/dp/B087JDXCX9)に沿って基礎文法の勉強（1ヶ月）
    * **個人アプリ開発をする過程で勉強**（半年）
    * [LeetCode](https://leetcode.com/)で問題を解く（1年）
* C（半年）
    * [新・明解C言語 入門編](https://www.amazon.co.jp/%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3C%E8%A8%80%E8%AA%9E-%E5%85%A5%E9%96%80%E7%B7%A8-%E6%98%8E%E8%A7%A3%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E6%9F%B4%E7%94%B0-%E6%9C%9B%E6%B4%8B/dp/479737702X)を用いた学校の授業で勉強
* Go（数週間）
    * [Udemy](https://www.udemy.com/course/go-fintech/)で勉強

### フレームワーク
* Django（1年）
    * [Djangoのツボとコツがゼッタイにわかる本](https://www.amazon.co.jp/Django%E3%81%AE%E3%83%84%E3%83%9C%E3%81%A8%E3%82%B3%E3%83%84%E3%81%8C%E3%82%BC%E3%83%83%E3%82%BF%E3%82%A4%E3%81%AB%E3%82%8F%E3%81%8B%E3%82%8B%E6%9C%AC-%E5%A4%A7%E6%A9%8B-%E4%BA%AE%E5%A4%AA/dp/4798062219)で基礎を勉強（半年）
    * **個人アプリ開発をする過程で勉強**（半年）


### その他
* Github（半年）
    * **個人アプリ開発をする過程で勉強**（半年）
* Docker（1ヶ月）
    * [Docker/Kubernetes 実践コンテナ開発入門](https://www.amazon.co.jp/Docker-Kubernetes-%E5%AE%9F%E8%B7%B5%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E9%96%8B%E7%99%BA%E5%85%A5%E9%96%80-%E5%B1%B1%E7%94%B0-%E6%98%8E%E6%86%B2/dp/4297100339/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=docker&qid=1637388418&s=books&sr=1-7)で勉強（数週間）
    * **個人アプリ開発をする過程で勉強**（1ヶ月）

* ネットワーク（半年）
    * [イラスト図解式 この一冊で全部わかるWeb技術の基本 ](https://www.amazon.co.jp/%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E5%9B%B3%E8%A7%A3%E5%BC%8F-%E3%81%93%E3%81%AE%E4%B8%80%E5%86%8A%E3%81%A7%E5%85%A8%E9%83%A8%E3%82%8F%E3%81%8B%E3%82%8BWeb%E6%8A%80%E8%A1%93%E3%81%AE%E5%9F%BA%E6%9C%AC-%E5%B0%8F%E6%9E%97-%E6%81%AD%E5%B9%B3/dp/4797388811/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=7G8Z2J6XRJD&keywords=web%E6%8A%80%E8%A1%93%E3%81%AE%E5%9F%BA%E6%9C%AC&qid=1637388684&s=books&sprefix=web%E3%81%8E%E3%81%98%E3%82%85%2Cstripbooks%2C295&sr=1-1)を一読（数週間）
    * [マスタリングTCP/IP―入門編](https://www.amazon.co.jp/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0TCP-IP%E2%80%95%E5%85%A5%E9%96%80%E7%B7%A8%E2%80%95-%E7%AC%AC6%E7%89%88-%E4%BA%95%E4%B8%8A-%E7%9B%B4%E4%B9%9F/dp/4274224473/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=24OFL5MY5FCNZ&keywords=%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0tcp%2Fip&qid=1637388582&s=books&sprefix=%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%2Cstripbooks%2C305&sr=1-1)を用いた学校の授業で勉強（2ヶ月）
    * **個人アプリ開発をする過程で勉強**（半年）

## 後悔していること
* 勉強を始める前に、**明確な目的意識**を持つべきだった。
    * [某ドラマ](https://www.ntv.co.jp/anaban/)の影響でプログラミングをしたいと思い、HTML/CSSから勉強を始めたが、目的が漠然としていたため成長が遅かった。
    * [作りたいもの](https://github.com/yagikota/fudai_app)が決まってからは、モチベーションが出てきて、成長角度が大きくなった。
* 基礎の勉強に時間を取られたので、**基礎勉強を早めに切り上げて**実践に入ればよかった。
    * 実践を通して基礎は身に付くので、基礎が65%くらい理解できたら、実践へ移行すべきだった。
    * 実際、オブジェクト指向については、基礎勉強中はいまいち理解できなかったが、アプリ開発を続ける中で理解できるようになった。
* **トレンドに敏感**になるべきだった
    * 技術の移り変わりが速いので、早いうちからアンテナを張ってトレンドを意識すべきだった。具体的には、
        * twitterなどSNSでgeekな人をフォロー
        * [こちらのサービス](https://qiita.com/tag1216/items/da1b078270c0cb6c07df)で調査など
* **アウトプットの重要性**に早く気づくべきだった
    * [勉強した内容](#勉強した内容)にも書いたように、**個人アプリ開発をする過程**で学べたことが非常に多い。
    * インプットよりもアウトプットの方が脳に負荷がかかるので、勉強になる。
* 「考える」よりも**「調べる」を重視**すべきだった
    * エラーが出た時は、エラー内容を考察するよりも、コピペで調べた方が速い。
    * ある処理をする関数を自作しようとする時は、すでにライブラリとして提供されている可能性があるので、一旦調べる。無かったら、自作する。
* 早めに、**Githubに登録**すべきだった
    * Githubは、エンジニアのギルドカードのようなもの。自身のスキルを証明するのに必須。


## 得られた成果
* **思考が最適化**された
    * プログラミングを勉強する過程で、日常生活にも応用できる思考回路を習得できたと。例えば、プログラミングには、[DRY原則](https://e-words.jp/w/DRY%E5%8E%9F%E5%89%87.html)という考えがあるが、この考えは文章を書くときなどにも適用できる。
* **アイデアを具現化**できるようになった
    * 「世の中に存在する様々な①問題を発見し、②解決策を考案し、③それを具現化する。」という①〜③の流れを一人で実現できるようになった。
    * つまり、具現化系能力者になれた。

## 参考文献
以下に、勉強する際、参考にした本やサイトをまとめる。

### 本

|題名|内容|おすすめ度|
|-|-|-|
|[独学プログラマー](https://www.amazon.co.jp/%E7%8B%AC%E5%AD%A6%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC-Python%E8%A8%80%E8%AA%9E%E3%81%AE%E5%9F%BA%E6%9C%AC%E3%81%8B%E3%82%89%E4%BB%95%E4%BA%8B%E3%81%AE%E3%82%84%E3%82%8A%E6%96%B9%E3%81%BE%E3%81%A7-%E3%82%B3%E3%83%BC%E3%83%AA%E3%83%BC%E3%83%BB%E3%82%A2%E3%83%AB%E3%82%BD%E3%83%95-ebook/dp/B07BKVP9QY/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3VLZE2BH5CUH6&keywords=%E7%8B%AC%E5%AD%A6%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC&qid=1637386699&s=digital-text&sprefix=%E7%8B%AC%E5%AD%A6%2Cdigital-text%2C296&sr=1-1)|プログラマーの心構え|★★★★☆|
|[達人プログラマー](https://www.amazon.co.jp/%E9%81%94%E4%BA%BA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC-%E7%AC%AC2%E7%89%88-%E7%86%9F%E9%81%94%E3%81%AB%E5%90%91%E3%81%91%E3%81%9F%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E6%97%85-David-Thomas/dp/4274226298/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=T15NVJ96TK7R&keywords=%E9%81%94%E4%BA%BA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC&qid=1637395898&sprefix=%E9%81%94%E4%BA%BA%2Caps%2C287&sr=8-1)|プログラマーの心構え|★★★★☆|
|[エンジニアの知的生産術](https://www.amazon.co.jp/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E7%9F%A5%E7%9A%84%E7%94%9F%E7%94%A3%E8%A1%93-%E2%94%80%E2%94%80%E5%8A%B9%E7%8E%87%E7%9A%84%E3%81%AB%E5%AD%A6%E3%81%B3%E3%80%81%E6%95%B4%E7%90%86%E3%81%97%E3%80%81%E3%82%A2%E3%82%A6%E3%83%88%E3%83%97%E3%83%83%E3%83%88%E3%81%99%E3%82%8B-WEB-PRESS-plus%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA/dp/4774198765/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=677JHETOOP4W&keywords=%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E7%9F%A5%E7%9A%84%E7%94%9F%E7%94%A3%E8%A1%93&qid=1637395943&sprefix=%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%2Caps%2C318&sr=8-1)|勉強法|★★★★☆|
|[今すぐ使えるかんたんPLUS+ HTML5&CSS3 完全大事典 ](https://www.amazon.co.jp/%E4%BB%8A%E3%81%99%E3%81%90%E4%BD%BF%E3%81%88%E3%82%8B%E3%81%8B%E3%82%93%E3%81%9F%E3%82%93PLUS-HTML5-CSS3-%E5%AE%8C%E5%85%A8%E5%A4%A7%E4%BA%8B%E5%85%B8-%E4%BB%8A%E3%81%99%E3%81%90%E4%BD%BF%E3%81%88%E3%82%8B%E3%81%8B%E3%82%93%E3%81%9F%E3%82%93PLUS%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA/dp/4774198110/ref=pd_vtp_14/355-3946954-8569457?pd_rd_w=Aan9l&pf_rd_p=ae64b7f5-458b-4e9a-9b07-1feecb909091&pf_rd_r=RH6T1RY3KCA15H7NFTC6&pd_rd_r=ce2a9138-a6d7-4755-b241-fa2734e6b202&pd_rd_wg=MDizr&pd_rd_i=4774198110&psc=1)|HTML/CSSの基礎|★★★☆☆|
|[独習Python](https://www.amazon.co.jp/%E7%8B%AC%E7%BF%92Python-%E5%B1%B1%E7%94%B0-%E7%A5%A5%E5%AF%9B-ebook/dp/B087JDXCX9)|Python|★★★★★|
|[Djangoのツボとコツがゼッタイにわかる本](https://www.amazon.co.jp/Django%E3%81%AE%E3%83%84%E3%83%9C%E3%81%A8%E3%82%B3%E3%83%84%E3%81%8C%E3%82%BC%E3%83%83%E3%82%BF%E3%82%A4%E3%81%AB%E3%82%8F%E3%81%8B%E3%82%8B%E6%9C%AC-%E5%A4%A7%E6%A9%8B-%E4%BA%AE%E5%A4%AA/dp/4798062219)|Djangoの基礎|★★★☆☆|
|[現場で使えるDjangoの教科書 基礎編](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B-Django-%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8%E3%80%8A%E5%9F%BA%E7%A4%8E%E7%B7%A8%E3%80%8B%EF%BC%BB3-2-LTS-%E5%AF%BE%E5%BF%9C%E7%89%88%EF%BC%BD/dp/B09K235CTP/ref=sr_1_1?adgrpid=105605458300&gclid=CjwKCAiAs92MBhAXEiwAXTi25187EdRb5SUZ9uE2z6QPmmQ7DfpIeAz0DgulPUbg3BL_tZeIzkxymhoCHV4QAvD_BwE&hvadid=449902466097&hvdev=c&hvlocphy=1009527&hvnetw=g&hvqmt=e&hvrand=4873856708498264455&hvtargid=kwd-598563989965&hydadcr=27269_11561182&jp-ad-ap=0&keywords=%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8Bdjango%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8&qid=1637394870&sr=8-1)|Djangoの基礎|★★★☆☆|
|[現場で使えるDjangoの教科書 実践編](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B-Django-%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8%E3%80%8A%E5%AE%9F%E8%B7%B5%E7%B7%A8%E3%80%8B-%E6%A8%AA%E7%80%AC-%E6%98%8E%E4%BB%81/dp/B09KN7Z13L/ref=sr_1_2?adgrpid=105605458300&gclid=CjwKCAiAs92MBhAXEiwAXTi25187EdRb5SUZ9uE2z6QPmmQ7DfpIeAz0DgulPUbg3BL_tZeIzkxymhoCHV4QAvD_BwE&hvadid=449902466097&hvdev=c&hvlocphy=1009527&hvnetw=g&hvqmt=e&hvrand=4873856708498264455&hvtargid=kwd-598563989965&hydadcr=27269_11561182&jp-ad-ap=0&keywords=%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8Bdjango%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8&qid=1637394870&sr=8-2)|Django|★★★★★|
|[新・明解C言語 入門編](https://www.amazon.co.jp/%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3C%E8%A8%80%E8%AA%9E-%E5%85%A5%E9%96%80%E7%B7%A8-%E6%98%8E%E8%A7%A3%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E6%9F%B4%E7%94%B0-%E6%9C%9B%E6%B4%8B/dp/479737702X)|Cの基礎|★★★☆☆|
|[Docker/Kubernetes 実践コンテナ開発入門](https://www.amazon.co.jp/Docker-Kubernetes-%E5%AE%9F%E8%B7%B5%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E9%96%8B%E7%99%BA%E5%85%A5%E9%96%80-%E5%B1%B1%E7%94%B0-%E6%98%8E%E6%86%B2/dp/4297100339/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=docker&qid=1637388418&s=books&sr=1-7)|Docker/Kuberbetes|★★★☆☆|
|[図解即戦力 AWSのしくみと技術がこれ1冊でしっかりわかる教科書](https://www.amazon.co.jp/%E5%9B%B3%E8%A7%A3%E5%8D%B3%E6%88%A6%E5%8A%9B-Amazon-Web-Services%E3%81%AE%E3%81%97%E3%81%8F%E3%81%BF%E3%81%A8%E6%8A%80%E8%A1%93%E3%81%8C%E3%81%93%E3%82%8C1%E5%86%8A%E3%81%A7%E3%81%97%E3%81%A3%E3%81%8B%E3%82%8A%E3%82%8F%E3%81%8B%E3%82%8B%E6%95%99%E7%A7%91%E6%9B%B8-%E5%B0%8F%E7%AC%A0%E5%8E%9F/dp/4297108895/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=AWS&qid=1637396099&sr=8-7)|AWSの概要|★★★★☆|
|[イラスト図解式 この一冊で全部わかるWeb技術の基本 ](https://www.amazon.co.jp/%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E5%9B%B3%E8%A7%A3%E5%BC%8F-%E3%81%93%E3%81%AE%E4%B8%80%E5%86%8A%E3%81%A7%E5%85%A8%E9%83%A8%E3%82%8F%E3%81%8B%E3%82%8BWeb%E6%8A%80%E8%A1%93%E3%81%AE%E5%9F%BA%E6%9C%AC-%E5%B0%8F%E6%9E%97-%E6%81%AD%E5%B9%B3/dp/4797388811/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=7G8Z2J6XRJD&keywords=web%E6%8A%80%E8%A1%93%E3%81%AE%E5%9F%BA%E6%9C%AC&qid=1637388684&s=books&sprefix=web%E3%81%8E%E3%81%98%E3%82%85%2Cstripbooks%2C295&sr=1-1)|Webの基礎|★★★★☆|
|[マスタリングTCP/IP―入門編](https://www.amazon.co.jp/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0TCP-IP%E2%80%95%E5%85%A5%E9%96%80%E7%B7%A8%E2%80%95-%E7%AC%AC6%E7%89%88-%E4%BA%95%E4%B8%8A-%E7%9B%B4%E4%B9%9F/dp/4274224473/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=24OFL5MY5FCNZ&keywords=%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0tcp%2Fip&qid=1637388582&s=books&sprefix=%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%2Cstripbooks%2C305&sr=1-1)|ネットワーク全般|★★★★☆|

### サイト

|サイト名|目的|おすすめ度|
|-|-|-|
|様々な公式ドキュメント|辞書的な利用|★★★★★|
|[Github](https://github.com/)|辞書的な利用|★★★★★|
|[Qiita](https://qiita.com/)|辞書的な利用|★★★☆☆|
|[ドットインストール](https://dotinstall.com/)|基礎学習|★☆☆☆☆|
|[Youtube](https://youtube.com/)|サクッと学習|★★☆☆☆|
|[Udemy](https://www.udemy.com/)|サクッと学習|★★★★☆|
|[LeetCode](https://leetcode.com/)|データ構造・アルゴリズム学習|★★★★☆|
|[stackoverflow](https://stackoverflow.com/)|質問|★★★★☆|
|[teratail](https://teratail.com/)|質問|★★★☆☆|

## 最後に
この記事が少しでも多くの人の役に立てたなら幸いです

では、**Arrivederci !**