プログラミングは自らタイプが大事と実感
どうも、じぇいかわさきです。
プログラミングを勉強するに当たり、みなさんが注意する事ってなんですかね?
過去にも同じような記事を書きましたが、ここの所、本当に自分でタイプする勉強法が大事だと実家しました。
どんな所に実感したか説明します。プログラミングを始めたばかりの人、是非参考にしてください。
自分はこれで、プログラミング覚えました。
どんなに簡単なコードも自分でタイプする
タイプミスによるエラーは、参考書では教えてくれない
エラーが自分を強くする
エラーを発生させる事が知識を増やす
学習方法って、たくさんの種類が有ると思いますね。
オンラインで受ける教育が、実際にプログラミングスクールに行くようで良いんじゃないか。
以前はそう思っていましたし、実際にドットインストールの学習もやっています。
オンラインと言えば、穴埋め問題式に自分でコマンドを選びながら学ぶ、Progateも良いとの評判です。
しかし、オンラインでもどうしても聴く側になってしまい、分かった気になるのは否めません。
Progateで穴埋めしてく場合も、表示された中から選ぶ方式です。
確かに文法構造を学ぶには良いかもしれませんが、依然にこちらで書いたように、プログラミングは暗記じゃないので、本当は良くないのかも。
ドットインストールにしても、学ぶコースによっては自分でタイプする事も有りますが、基本は型通りに一方的に教えるタイプ。
本当は、自分でタイプする事のメリットが一番で、その理由はエラーを誘発してくれるからです。
実際のプログラミングスクールに通ったとしても、発生するエラーの対処方法までは事細かくは指導してくれません。
発生したエラーを解決する事で、どんなエラーは何が原因で発生するのかが、体験として身につきます。
だから、自らタイプして動作させる事が重要なんです。
エラーを修正するのはパズルを解くと同じ
さて、エラーは宝だって言ったとしても、初心者にとっては、なかなか一筋縄では行かないものです。
逆に考えれば、単に教わるだけではなく、自分で考えて解決する為、しっかりと脳裏に刻み込まれるんです。
特にタイプミスによるエラーは、状況により発生エラーコードは多岐に渡りますね。
例えば、関数として定義する場合だと、タイプミスすると文法エラーとして出ます。
これを変数として使用した場合には、文法エラーではなく、変数が定義されていないと言うエラーになったりします。
どちらが発生するかなんて予測できないし、故意にさせて学習するなんて事も無いですよね。
この前のスクレイピングを学んでいるときにはこんなエラーも出ました。
Traceback (most recent call last):
File "/Users/*******/Documents/chap2-7-1.py", line 9, in <module>
for element in topic.find_all("a"):
AttributeError: 'NoneType' object has no attribute 'find_all'
>>>
これは、find_allで探しているaが見つからないと言っているんですね。
でも実際には、その前のaが入っている部分を抽出できていない事が、主たる原因で結果としてaが見つからないと言うエラーになっているんです。
この場合も、何がNoneTypeなのかを自分で調べなければいけませんよね。
エラーコード表ではAttributeErrorの意味までだけですから。
またこんなのも有りました。
Traceback (most recent call last):
File "/Users/******/Documents/chap2-5.py", line 8, in <module>
chap2 = soup.find(id="chap2")
NameError: name 'soup' is not defined
>>>
これは、ここではchap2に引き渡すsoup.find(id="chap2")の内、soupという名前が、コード内で見つからないと言っております。
でも、これも調べていくと、引数のタイピングがsoupではなくsuop担っていたのが原因でした。
エラーコード表で、エラーの内容は学べますが、どのような場合に発生するかまでは学べません。
しかし、コードを自分でタイプして実行させる学習方法だと、予期せぬタイプミスからエラーが発生。
原因を突き止めて、コードの正常化するまでは、まるでパズル🧩を解くような作業になります。
しかし、一度経験すると、同じようなエラーが発生した場合には、勘所を覚えていますので、直ぐに対応が可能になります。
これが自分でタイプすると言う事の利点なのです。
文法学習とエラー対処学習が同時に行えるのは、自分でコードをタイプする方法しか有りません。
エラーを制する者はプログラミングを制す
今回は学習方法の中で、どんなに短いコードでも自分でタイプする事が、最良の学習方法だと言うお話でした。
プログラミングで言語を覚えるのは、忍耐の要る学習だと思うのは、多分暗記方式の事を言っているからだと思います。
しかし、今回紹介したように、エラーが発生した時、何で動かないのだろう?
そう思えてゲームをする感じでエラーをクリアしていく気持ちが有ると、プログラミングの習熟度はグンと早くなると思います。
何事も楽しむ気持ち、これが大事ですね。
じぇいかわさきです。生産技術者として35年、今まで培った経験とスキルを元に、ものづくりに関わる世の出来事に対して思ったことをホンネで書いてます。ノウハウやアイデアもありますよ。 また写真も全力で撮っています、気に入った写真があればサポートや感想をぜひお寄せください。