プログラミング初心者に僕がpythonを勧める理由
今回のタイトルのような記事は他にも無数にあります。
特に初心者にお勧めの言語をランキング付けしているケースが多いです。
僕はあまり多数の言語に触れたことがないのでそういう比較はできないのですが、
それでもpythonを触ってみて、この言語こそ初心者が真っ先に勉強すべきだと感じました。
その理由を書きたいと思います。
結論から言えば、書くコード量が少なく、プログラミングを勉強するモチベーションを維持できるからです。
pythonではライブラリ(汎用性の高いコードのまとまり)が大量にあります。
何かを作りたいと思った際には、他人のサンプルコードを参考にしつつ、どういったコードの流れが適切かを考え、なるべくライブラリを使ってコーディングすべきです。
ライブラリを活用することで、自らが書くコード量を削減しつつ、目標のものを作れるはずです。
もちろんその最中にわからないことを調べることがpythonの勉強に相当します。
プログラミングを勉強し続けるためには「何かを作れた」という満足感が重要であるので、初めのうちは簡単なものから順に、言語の細かい仕様を理解しなくてもとりあえず作ってみる、という姿勢が重要に思います。
そのため、覚えることが少なく、かつ変数の宣言などを必要とせず、ライブラリの力を借りることができるpythonをお勧めします。
pythonを勉強するにあたっては、辻 真吾先生のPythonスタートブックをお勧めします。(ちなみにリンク先で購入しても僕には一銭も入らないのでご安心ください)
今回の記事の本筋は以上です。
が、上で「コードの流れ」という言葉を使ったので補足しておきます。
コーディングをする際には、コードを書くということも重要ですが、コードをどういった流れで構築するか?が最も重要であると僕は考えています。
僕がかつて躓いたのがこの点です。
目的の機能を達成するためにどういった要素に分割すべきか?を考えられるようになるのが、初心者日曜プログラマーがまず身に着けるべき素養だと思います。
例を挙げます。
観念的な例ですが、カレーを作るというコードを考えてみましょう。
この時に一つの考え方としては時系列で順にコードを書いていくというのがあります。
1.ジャガイモの皮をむく
2.ニンジンの皮をむく
3.ニンジンを切る
4.玉ねぎを切る
5.ジャガイモを切る
6.肉を炒める
7.ニンジン、ジャガイモ、玉ねぎを炒める
8.(続く)
……などです。
コーディングの原則としてDon't repeat yourself(DRY)があり、この原則は同じ機能を持つコードを複数個所で書くのを避けるべきと述べています。
上の例でいうのであれば、1のコードをコピペして、ジャガイモ→ニンジンと書き換えるのがDRYの原則に違反しています。
なぜならば、こういうことをすると1のコードにバグなどがあって変更を余儀なくされたときに、2のコードも併せて変更する必要が生じるからです。複数個所の修正が必要になり、変更が困難になります。
当然ですがもっと良い書き方があります。
まず、「むく」という作業を関数と捉えて、引数として野菜を与えれば、1と2のコードをひとつにまとめられます。2,3,4も同様に「切る」という機能を持ったコードにまとめられるでしょう。
結果としてカレーを作るコードに必要なのは「むく」「切る」「炒める」…などであることを真っ先に構想してから書き始めます。
このようなコードの流れの構想を習得するのがプログラミング初心者が真っ先にすべきことだと僕は考えます。
この記事を1年半前の僕に見せてあげたかった……。