始めに
こんにちは〜まんじです。
今回はPythonの勉強法のようなところで、プログラミング言語自体の勉強にフォーカスせずに、「なんか作りながらPythonを勉強していくのってどうなん?」ってところについて解説したいと思います。
結論から書くと、文法を直接勉強しまくるよりも「作りながら覚える」で問題ないというよりもむしろPythonの文法自体の勉強を真面目にするよりも効率が良いと個人的には思ってます。
作りながら覚えていくことが効率良い理由はざっとこんな感じです。
- 何かを作りながら不明点を調べて勉強するほうが本当に必要なことを学べる
- 文法自体を勉強するよりも身につきやすい(文法自体を勉強してもこれで何ができるんだ?感)
- 普通に勉強するよりも作りながらのほうが楽しいことが多い(人によるけど)
自分も0から独学でプログラミングを始めた時はドットインストールを2週間~1ヶ月程度しかやりませんでしたし、ウェブアプリ作るために調べながらコピペしたり真似してたら勝手にPythonをそれなりに書けるようになっていたなーと思います。
本をじっくり読んだりオンライン教材で勉強しまくってもそこまで書けるようにならんのですが、なんか作りながら調べてその都度知識を増やしていくと徐々に言語自体の理解も深まっていくという感じです。
この記事ではここら辺の内容についてもう少し深めに解説します。
そもそも、Pythonで作れるものについて
Pythonを勉強する場合に作れるというか、Pythonを使って作りやすいのは以下です。
- ウェブアプリ(主にサーバーサイド)
- GUIアプリ
- 自動化
- スクレイピング
- API開発
- 機械学習
- データサイエンスなどの統計的な処理
Pythonの主な用途としてはAI系、データサイエンス系、ウェブアプリ系(API含むサーバーサイド)の3つだと思います。
どの用途で使っていても1ヶ月単位ぐらいの幅を持って使うことでPythonの文法自体の理解も深まっていきます。
配列とか連想配列とか分岐処理とかループ処理とかそこらへんの定番のオーソドックスな文法は別に勉強する気がなくても必要になるので身につきます。
(もちろん、作りながら不明点をAIとか検索で調べたりする必要はあります)
何かを作りながらググりつつ動画なども参照すればOK
大体こんな感じの流れで作りつつ勉強をするといいと思います。(例として)
- 掲示板のようなウェブアプリを1個作ると決める
- ↓
- そのためにPythonとフレームワークのDjangoを使う
- ↓
- 作ろうとしていたら、、、
- ↓
- 配列がよくわからない
- ↓
- 「Python 配列とは」みたくググって調べる
- ↓
- 実際にそれを見ながら使う
こういう流れをひたすら繰り返していくのがプログラミング言語自体の勉強法としても効率が良いです。
「え、ググる量多すぎなんだが」とか「昔調べたのにまた忘れた…」とか最初は感じたりするものの、ある程度ググりまくってくると知ってることが蓄積されたり反復されて覚えるのでやがてそんなにググる必要がなくなってきます。
ちなみに歴数年ぐらいのウェブエンジニアで働いてる人もある程度はググりながら書いてたりすることも多いです。(定番のこととかはググらないですけど)
あとはググるのも良いのに加えてAI(ChatGPT含む)も使うのはおすすめです。
ただ、ChatGPT(AI)に聞くことでしか問題解決できなくなるとAIが回答をうまく出してくれない時に終わるので、ググりつつAIにも聞くという2つのアプローチができたほうがいいです。
実際、AIがうまく出してくれない場合も結構あります。
その他、動画に関しては適当に暇な時にドットインストールやYoutubeで文法を流し見するとかでもかなり勉強になるので暇な時に見るぐらいで良いのカナーと思います。
動画見てるだけだと書けるようにならないので、注意が必要ですけど!
あと、暗記は不要
- Pythonは動的な片付け言語でありウンヌン
- Pythonには2系と3系があり、現在は3系がメインで使われているウンヌン
- PythonのフレームワークにはDjango,Flask,〜〜があり、ウンウン
- Pythonのmap関数にlambdaの無名関数を渡すことでウンウン
こういった部分を最初の頃はノートに書いたりしてしまいがちですが、実際はいらないです。
何度もググったりしてると嫌でも目に入ってきて覚えられるので暗記は不要で、ちょっと気になったらググればいいだけです。
プログラミングは受験勉強のように覚えていくというよりも、何か目的のために書いたりコピペしたりしていると自然に覚えて使えるようになってくるっていう感じのマインドでやるのが大事です。
メモったりする場合も、ノートにきれいにメモるというよりかは、Notionとかに適当にコードを貼っておいてたまに参照するぐらいのが効率がいいです。
自分は仕事で使ってる覚えにくいコマンドとかコードで定期的に使うものや始めて勉強した内容のコマンドなんかは、NotionかVSCODEに貼り付けていて、それを必要な時に参照しています。
こんな感じでコメントの内容自体もそんなにガッツリとは書いていなくて、適当に書いてます。
長いコマンドは覚えるのは無理ではないけど覚えても意味ないので、外部に記憶を置いておくみたいな感じです。
という少し脱線しましたが、暗記はいらん!というお話でした。
なので作りながら適宜調べて、勝手にPython含め、プログラミング言語が書けるようになるのが理想的というかみんなそんな感じです。
学校の勉強の暗記科目と違って、覚えようとして覚えられるのではなくて、使ってたら勝手に覚えられます。
例外: 少し中級の文法は別途学習が必要かも
- オブジェクト指向
- リスト内包表記
- lambda(callback)と関数型処理を使った処理の記法
- デコレータ記法
- async await
- ジェネレータ
- イテレータ
Pythonのこれらの内容はある程度作る経験を得てから別途学習が必要カナーと思います。
実務で使っていれば勝手に登場すると思うんですけど、独学とか1人で勉強したりしているケースだとそこまで使う必要もないので、何かを作っていたとしても勝手には身につかないってのはあります。
(実際、出てきたら勉強して覚えたりすればいいだけなのだけど…)
中級っぽい文法に関しても勉強して網羅していくってよりかは、使ってて不明点が出てきた時についでにちょっと調べて真似して書いて〜ってのを繰り返していれば勝手に覚えられます。
そこらへんの内容はこの記事にも書いています。
まとめ
「作りながら調べてればPythonは勝手にできるようになるぞ!」という1行を伝えたい記事でした。
実際、プログラミングは真面目に勉強するとあんまりできるようにならなくて、何か目的のための手段としてコードを書いたり調べたりしていると3ヶ月スパンぐらいで実力が爆上げぽよぽよされていきます。
「プログラミングの勉強頑張る!」ってよりかは、ウェブアプリ作ったり、目的のためにコード書いたりとかそういう活動がすごく大事です。
ウェブアプリ作ったり仕事でプログラミング使っていたりすると、プログラミング言語自体の理解度も上がっていくし、毎回調べなくても手が勝手に動くようになりやすいです。
ってことで終わりなので、良かったら下の記事もぜひ!