*この記事は実際にプログラミングを勉強しているけど上達しないといった初心者に向けて書いています。
さらに前提として実際にコードをかけるようになりたい人を対象にしています。
今回は自分が実践して有効だったプログラミング(python)の勉強法を紹介したいと思います。
あくまで。一大学生の体験談としてご覧いただき、使えそうなものがあれば自分でトライしてみて有効性を判断していただけると幸いです。
勉強法
ズバリ たくさん実験をするということです。
何かの構文をマスターしたいとき、何か疑問を思ったときに、実際に簡単なコードを書いて動くかどうか実験してみるんです。
例えば、forループを習ったとしたら
for i in range(3):
print(i)
例えば、「もし辞書型のアブジェクトで存在しない鍵を使って値を得ようとしたらどうなるのか?」と疑問に思ったとします。
test = {"banana":2, "orange":3}
test["apple"]
簡単ないうのは地味に大切です。複雑なものを書いてしまうとエラーが出たとき修正が大変ですし、本当に理解したい場所が霞みます。あくまで自分のマスターしたいことや解決したいことにフォーカスしたコードを書くのが肝です。
この勉強をするメリットは主に3つあると思います。
1、覚えやすい
実際に手を動かすわけですし、もし何も見ずに書けば小テストにもなるので、教科書を眺めるより記憶しやすくなると思います。
2、飽きずに勉強をすることができます。
これは人によるかもですが、皆さんはprint("Hello World")のコードを書いて実際に表示されたときの感動しませんでしたか?(もし共感していただけるなら)この勉強法では実際に書いたコードが正しく実行されたときの達成感や満足感を味わいながら進めれるので、前に進んでいる実感があってモチベーションが続くと思います。
3、教科書では意識していなかったことにも気づける
上の例のアウトプットがどうなるか、皆さんはご存知ですか?
正解は
0
1
2
です。
僕はよく0からスタートすることを忘れてました。(リスト型を勉強してからは0から始まることにも違和感がなくなったけど。)
このように実際にコードを書いて実行してみることで、「これ、こーなってるんだー」って気づけることは多々あります。
また、疑問に感じた箇所を実際に実験することでも新しい発見があります。
上の2番目の例を実際に実行すると
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
test["apple"]
KeyError: 'apple'
このようなエラーメッセージを受け取り、KeyErrorというエラーの存在を知ることができます。
僕はこれらを実験するためだけにcurious.pyというpythonファイルを作ってデスクトップのわかりやすいところに配置しています。
(最近は文法を習うことはないので)実際のプログラミング課題で、ふと疑問に思ったときや自分の想定していないところでエラーが出たりしたときに、実験しながら解決したりしています。
例えば
alist =[3,5,6,7,8]
alist.pop(5)
IndexError: pop index out of range
が出たとしたら
あれなんで5が消えて[3,6,7,8]にならないんだ?ん?IndexErrorが出てる?
一回5じゃなくて他のインデックスになりうる数を入れてみよう
alist.pop(2)
print(alist)
[3,5, 7, 8]
6が消えた。6のインデックスって?あ2か。なるほどpopの後にはインデックスの番号を入れるんだね。ってことは要素をそのまま指定して消去できる組み込み関数ってなんだったっけ? よしGoogle先生に聞いてみよう
ってなるわけです。
まあ、この場合どう考えてもネットで検索した方が早いので、いい例とは言えませんが苦笑
ちなみに、エラーの解決の仕方の記事あります。
もし皆さんの中で自分のプログラミングの解説に間違いを発見された場合はコメント欄で教えていただけると幸いです。
もし皆さんのプログラミングの勉強に1ミリでも役立てたら幸いです。