[プログラミングのすゝめ]プログラミングの学習手順とおすすめのPython学習教材

# はじめに
今回は「[**Pythonの学習手順とおすすめの学習教材**](https://www.cardenema.com/?p=632)」を紹介したいと思います。

初めに簡単な自己紹介とします。

- 現在大学4年生。
- プログラミング歴1年ちょっと。
- 独学で今日まで走り続けている。
- Pythonを用いた機械学習の実務とサーバーサイドの実務の２つをやっている。
- IT学校でPythonメインに質問に答えている。
- 就職先もエンジニアとして決まっている。
- ざっくりこんな感じです。

主にPythonメインに学習し続けているので、Pythonについての「**学習手順**」と僕自身が使用した「**学習教材**」について僕の経験からまとめていきたいと思います。

以下の人にはぜひ読んでいただきたいです。

- プログラミング初学者。
- Python初学者。
- プログラミングに興味がある人。
- Pythonをより深めたい人。
- Pythonの書籍や講座を購入しようと考えているが、何を購入しようか迷っている。
- タイトルに興味を持たれた方。
前置きを長くしても仕方がないので、早速中身に入っていきましょう！

# Python学習手順

僕の経験をもとに「**Pythonの学習手順**」を見ていきたいと思います。

## プログラミング学習する上で意識すること

まずはプログラミング学習する上で意識しておくと良いことを紹介します。

[独学エンジニアはこれを意識しろ](https://note.com/cardene777/n/n7e3a27820e64)

ここで書くと結構な量になってしまうので、上記の記事を参考にしてください。

ちょっと強めの口調になってしまっている部分もありますが、重要なことなのでぜひ目を通してください！

## 学習手順

「**プログラミング学習する上で意識すること**」を確認したと思うので、早速「学習手順」を見ていきましょう。

1. 作りたいものを考える。
2. 動画でインプット。
3. ブログ、個人開発などでアウトプットする。
4. 書籍や動画で知識を補強しつつ、アウトプットを継続。
5. 1に戻る。

「**え、これだけ？**」と思うかもしれないですが、全体としてはこれだけです。

シンプルですが重要なので、これから１つ１つ説明して中で手順をしっかり確認してください。

### 1. 作りたいものを考える

一番最初に「**インプット**」するわけではなく、「**作りたいものを考える**」ということに驚いたと思います。

その驚きをこの章で納得に変えていきたいと思います。

突然ですが、あなたのプログラミングを始めた理由はなんでしょう？

「**稼げそう**」、「**今流行りだから**」、「**楽しそう**」、「**周りがやってるから**」など様々だと思います。

様々な思い出プログラミングを始める中で、プログラミング学習の挫折率は高いと言われています。

僕の個人的な意見としては「**プログラミングをそこまで楽しいと感じていない人**」が挫折しているのではないかと考えています。

プログラミングを趣味でやっている人は関係ないのですが、エンジニアとして働く人はずっと学び続ける必要があります。

その理由としては、「**技術が日々進歩していき、新しい技術が短期スパンでどんどん出てきたり、既存のものがどんどんアップデートされていく**」からです。

それなのにプログラミングが「**楽しく**」なかったらなかなか苦痛ではありませんか？

そこで本題に戻るのですが、どうやったらプログラミングを「**楽しく**」感じられるのか？

僕の中での答えは「**作りたいものを作る**」です。

「**作りたいものを作る**」という目標に向けてインプットをし、実際に作ってみて完成した時の達成感はものすごいです。

そして、その過程のインプットも「**作りたいものを作る**」というゴールを意識すると頑張れますし、実際に作っているときは楽しくて仕方がありません。

そのためには、「**作りたいもの**」がある必要があります。

よく初学者にありがちなのが、「**特に作りたいものがない**」、「**今の自分にはまだできない**」など言い訳をすることです。

「**作りたいものがない**」=「**日常で不便に感じることがない**」と僕は考えています。

些細なことでも「**日常で不便に感じること**」はたくさんあると思います。

例えば、「**ゴミ捨ての日を忘れてしまう**」、「**読んだ本の内容や、覚えたいものをメモしても復習せずにそのまま忘れてしまう**」などいくらでも出てくるはずです。（ちなみにこれは僕自身の「**日常で不便に感じたこと**」です。）

「**ゴミ捨ての日を忘れてしまう**」なら、slackやLINEにボットで通知させる。

「**読んだ本の内容や、覚えたいものをメモしても復習せずにそのまま忘れてしまう**」なら、復習を定期的に促してくれるメモ帳を作ってみる。

など、まさにアウトプットになる「**作りたいもの**」ですよね。

最初っから「**作りたいもの**」がなくても問題はありません。

問題なのは、「**不便を探すアンテナ**」を立てているかどうかです。

日頃から「**不便を探すアンテナ**」を立てておくことで、「**日常の不便**」を見つけ、それを対処するために「**作りたいもの**」のアイデアが出てくるはずです。

もちろんすぐに出てくるものではないので、インプットしながらでももちろん良いと思います。

ここで言いたい結論としては「**常に不便を探すアンテナ**」を立てておくことです。

ぜひアンテナを立て続けながらプログラミングの学習を進めてください！

### 2. 動画でインプット

次にインプットの段階に入ります。

僕の考えでは、最初のインプットは「**動画**」がおすすめです。

プログラミングのインプットでは代表的なものに「**動画**」と「**本**」が挙げられます。

どちらの方が良くて、どちらの方がダメということはありません。

しかし、最初インプットとして使用する時は「動画」をおすすめします。

「**動画**」でインプットする代表的なメリットは３つあります。

見続けられる。
動きを確認できる。
コスパが良い。
この３つのメリットについて１つ１つ説明していきます。

（比較として「**本**」でのインプットを挙げます。）

#### 見続けられる

「**本**」を読むのは苦手という人はよく見かけますが、「**動画**」を見るのが苦手という人はなかなか見かけません。

「**本**」は文字がいっぱいで「**視覚**」しか使うことができないので、理解し辛いという面があります。

一方、「**動画**」は「**聴覚**」と「**視覚**」の２つを使うことができ、比較的理解しやすいです。

ある程度理解している状態で本を読む場合は理解しにくいということはありませんが、最初はほとんど知らない状態なので、「**動画**」を利用することの方が理解のしやすさの観点からおすすめです。

しかし、中にはこの記事の後半で紹介している「[**かんたんPython**](https://www.cardenema.com/?p=632#toc16)」という本のように、最初のインプットに最適なものもあります。

その共通点は「**図**」が多いことです。

「**動画**」は「**図**」を用いつつ説明をしているので、理解しやすいため、「**本**」でも「**図**」が多く用いられているものは理解がしやすいです。

と言いつつも「**図**」が多くてわかりやす本を見つけるのは難しいので、「**動画**」で学ぶようにしましょう。

#### 動きを確認できる

「**動画**」の最大のメリットは「**動きを確認できる**」ことです。

「**本**」でも写真や図で動きを確認できますが、細かい動きまで確認できないことが多いです。

それに比べ「**動画**」だと１から１０まで基本的に動きを確認できます。

「**動きを確認できる**」と何が良いのでしょうか？

それは「**同じことができる**」ことです。

「**同じことができる**」というのは、「**動画**」の手順に沿って全く同じようにできるということです。

「**本**」などの言葉の説明だけでは、「**どこに指示されたボタンがあるのか**」、「**どこに書き込めば良いのか**」などがわからない場合が多いです。

その結果途中で辞めてしまう経験をしたことがある人もいると思います。

それならば最初っ方「**動きを確認できる**」「**動画**」を活用して、１から１０まで「**同じことができる**」方が良いと思いませんか？

少なくとも僕はそう考えています。

#### コスパが良い

皆さん「**動画**」でプログラミングを学ぶとしたら何が一番最初に思い浮かびますか？

1万円くらいする教材でしょうか？Youtubeなどの無料の教材でしょうか？

どちらも存在しますが、個人的には「**udemy**」というサイトをおすすめします。

「**udemy**」は有料の「**動画**」を購入して学ぶことができるサイトです。

「**有料か〜**」

と思う人もいると思いますが、１つ講座を受けてみると「**コスパ最強！**」と感じるはずです。

[udemy](https://www.udemy.com/)

試しに上記の「**udemy**」のサイトで「**Python**」と検索してみてください。

「**１万とか２万ばっかりじゃん。嘘つきじゃん。**」

と思った方へ。

元の値段はそのくらいなのですが、重要なのは「**セール時の価格**」です。

「**udemy**」は月１くらいでセールをしています。

その時に価格を見ると、1200円~1600円ほどになっているはずです。

この時に購入するのがベストです。

そして値段が安いだけでなく中身も充実しています。

先ほどの「**udemy**」でどれか講座の詳細を確認していただくとわかるのですが、まず「**講座時間**」が17時間分や30時間分など「**量**」がしっかりしています。（全部が全部ではありません。）

そして、わかりやすい図や編集をしてある動画が多いため、理解がしやすいので「**質**」の面でも満足できます。

しかも思っていた講座ではなかったときに、返金もできるので安心です！

「**百聞は一見に如かず**」という言葉もあるように、まずは後半で紹介している講座を１つ受けてみることをおすすめします。

（くれぐれもセール時に受けることをおすすめします。また、おすすめの使い方は後半で紹介しています。）

ここまで「**動画**」でインプットすることのメリットを紹介してきましたが、いかがだったでしょうか？

「**動画**」でインプットしたい気持ちになってきたと思います。

もうここで手を止めて「**udemy**」でインプットしてみるのも良いと思います。

一通りインプットしたら戻ってきてくださいね！

### 3. ブログ、個人開発などでアウトプットする

「**udemy**」で基礎のインプットができたら、早速アウトプットの段階に入っていきます。

おすすめのアウトプットは「**ブログ**」と「**個人開発**」です。

どちらもハードルが高く感じてしまうと思いますが、アウトプットすることでインプットで学んだ内容が定着してくれます。

より効率的に成長したい方はどんどんアウトプットしていきましょう。

#### ブログ

ブログでのアウトプットとは、インプットで学んだことの中から１つ取り上げてまとめていくのが一番やりやすいです。

例えば「**Pythonのリストに関するまとめ**」だったり、「**Pythonの関数の使い方まとめ**」などです。

ググるとこのような記事はたくさん出てきますが、今回はインプットしたことを自分の脳に定着させることが目的なので、気にせずどんどん書いていきましょう。

自分用にブログサイトを開設しても良いですが、年１万円かかってしまったり

、その手順が面倒という方もいると思うので、そんな人は無料で利用できる技術ブログサイトを使用しましょう。

有名なものとしては、「**Qiita**」、「**Zenn**」などがあります。

上記のどちらか、もしくは両方を活用して学んだことをアウトプットしましょう。

慣れてきたら、「**自分が理解するのが難しかった部分**」や「**ググったけど自分が欲しい情報が載っている記事がなかった**」ものをまとめることができると記事としての価値も上がり、他の学習者の助けになるはずです。

#### 個人開発

個人的にはこちらをおすすめしたいです。

「**個人開発**」とは、「**自分が作りたいものを作る**」ことです。

ここで一番最初にやった「**作りたいものを考える**」が生きてきます。

「**日常の不便**」を解決できるような「もの」を作ることができれば、不便がなくなる上に自分のスキルが上がり、インプットしたものが定着するのでメリットが多いです。

Pythonの基礎のアウトプットとしておすすめなのが、「**オセロ**」や「**大富豪**」、「**ババ抜き**」などの「**トランプゲーム**」です。

この際に「**ルール**」を決めて作ると良いです。

「**ルール**」とは、例えば「**クラスを使って作る**」、「**関数で作る**」、「**例外処理を使う**」など、「**インプット**」したものを積極的に使うことが良いです。

他にもDjangoのインプットをしたなら、「**Todoリスト**」、「**技術ブログ**」、機械学習なら、「**好きなアイドルの画像分類**」、「**カメラで人を認識**」、その他として「**slackボット**」など様々挙げられます。

「**日常の不便**」が思いつかない人は上記を参考にしてみてください。

個人開発でよりレベルアップしていきましょう。

### 4. 本や動画で知識を補強しつつ、アウトプットを継続

アウトプットをする中でどこかでいき詰まります。

その時は新たにインプットをする必要があります。

例えばDjangoでWebアプリを作成している中で、Webページから情報を取得必要があり、スクレイピングをしたいとします。

その時はPythonでスクレイピングする方法を「**本、動画、Web記事**」などでインプットする必要があります。

このようにアウトプットに必要な知識を、インプットを通して補強していくというイメージです。

この際に活躍するのが、「**本**」です。

一番最初の「**インプット**」は「**動画**」がおすすめですが、ある程度学んだあとは「本」を利用する方が良いです。

その理由としては、「**本**」の方が「**専門性**」があり、「**量**」や「**種類**」も多いからです。

もちろん「**動画**」で目的のものがあればそれを見れば良いですが、「**本**」も有効的に活用していきましょう！

### 5. 1に戻る

この１〜４までのサイクルを回していくのが、この１年間独学で走り続けてきた僕自身の結論です。

「**アウトプット**」前提のインプットをして、実際にアウトプットをしながら「**インプット**」をする。

簡単にいうとこれだけのことですが、最初はなかなかこの通りにやるのは難しいと思いますが、だんだんと慣れていくものなので、いきなりはできなくても問題ないです。

また、自分なりの学習サイクルが出来上がることもあると思うので、まずは土台としてこのサイクルを活用してもらえればと思います。

アウトプットを常に意識することが何よりも大切なので、そのことを忘れずに成長していきましょう！

# おすすめ学習教材

こちらのの記事にまめてあるので参考になれば幸いです。

[おすすめの学習教材](https://www.cardenema.com/?p=632#toc14)

# 終わりに

今回は「**Pythonの学習手順とおすすめの学習教材**」について取り上げてきました。

前半では「**学習手順**」をみて、後半で「**学習教材**」について取り上げました。

現在Pythonを学んでいる方、これからPythonyやプログラミングを学ぼうとしている方の参考になれば幸いです。

何か質問などがあれば下のTwitterのDMを送るか、ここのコメントで聞いてください！

それでは！