プログラミング勉強方法
プログラミングの参考書を購入したけど、どうやって勉強するん?
って思った方はいらっしゃいませんか?
私も初めてプログラミングを学ぶ際に思いました。
文法って全部覚えないといけないのか。
又、参考書に書いてあるソースコードの意味はなんとなく理解できる。説明されたらわかる。
でも、いざ自分で書くってなると何から書いていけばいいのかわからない。
そのような悩みを解消する手助けが出来たらいいな〜と考えています。
文法は覚えなくていい
この見出しを見て「え?」と思われる方もいらっしゃると思います。
でも私の個人的な考えとしては文法を完全に暗記する必要はないです。
その理由を説明します。
みなさんはこれまでの義務教育を経験する中で丸暗記をするといった機会がほとんどだったと思います。
数学であれば公式の暗記、英語であれば、単語・文法・構文の暗記など・・・
なぜ暗記しなければいけなかったのか。
それはテストにおいてカンニングは許されないからです。
一方、プログラミングにおいてはどうでしょうか。
プログラムを書くときに参考書を見てはいけないルールみたいなものはありますか?
ないですよね?
カンニングし放題です。
(大学や専門学校等の期末テストを受ける際には話が変わってきますが・・・)
結論
文法書(入門書)は一通りやるが、全てを暗記する必要はない。
手を動かして理解する
文法を覚える必要がないのであれば、参考書を眺めるだけでいいのか。
そんなことはありません。
参考書を進める上で重要なことは理解することです。
眺めるだけでは理解したつもりになっているだけで、
理解できていない場合があります。
これを改善するためにソースコードを実際に自分で書いてみましょう。
最初は丸写しでかまいません。
自分でプログラムを書いて動かす中で、エラーがでてくるとおもいます。
そのエラーをなくしていく作業が理解をするための手助けをしてくれるはずです。
以下の例を考えてみましょう
12行目と15行目のprintでなにが出力されるでしょうか?
答え
12行目の部分:6
15行目の部分:6
解説
1〜3行目のkeisan(x)で起こっていること
関数の中に入ってきたxがあり、
yにx+1を代入して
yを返してください
5〜7行目のkeisan2(x)でおこっていること
関数の中に入ってきたxがあり、
yにx+1を代入して
xを返してください
要は計算してるけど、計算結果を返すのではなくて、
計算前の値を返しています。
よって
15行目の部分は7ではなく6が出力されます。
自分でプログラムを書く時はプロトタイプをイメージ!
プロトタイプとは大きな枠組み(不完全)と思っていただいて大丈夫です。
以下の例を見てください
よく見てみると、keisan(x)とkeisan2(x)の中で行われる処理内容が書かれていません。
でもいいんです。
プログラムを書く時は大まかな枠組みを先に書いてしまいます。
それが出来たら細かい部分を書いていきます。
例えば、家を建てるときに設計書を作らずにいきなり組み立てる大工さんはいないと思います。
プログラミングも同じです。
短い行で済むプログラムを書くなら必要ないかもしれませんが、
長くなるにつれて、なにから書いていけばいいんだろうか?と悩んでしまいます。
そのような方は紙でも良いので、プロトタイプを書いてみてください。
上記の例より簡単なものでも構いません。
全体の骨組みを考えることが重要です。