40代プログラミング未経験から独学してみる

40歳未経験者がPythonプログラミングの勉強をメインに、読書や京都のことを書いていく。

『プログラミングコンテストチャレンジブック(第2版)』

こんばんは。

『入門Python3』などで、基本的な文法は
使えるようになったので、ためしに
paizaやプログラミングコンテストなどの
問題に取り組んでみた。

単純に、リストとか、for文とか、
文法を知っていれば解ける問題であれば
対応できるけど、例えば、フィボナッチ数列
第N項を求める問題だと、数式をそのまま素直に
コードにしても、時間がかかりすぎてアウトに
なったり、もっと違う知識が必要だと感じた。

そこでこの本にとり組んでいる。

読み方については、昔やった受験数学と同じで、
問題を自分で解いてみて、分からなければ
解説と解答コードを理解する、という方式を
とっている。

自分で解くことにこだわらないで、
あまり時間をかけずに、
解法やコードの組み方を理解して
身につけることに重点をおいている。

結局、プログラミング特有の解法を知らないと
解きようがなかったり、自己流のコードを
組んでも良くなかったりするので、
分からないところは、とっとと解法を
覚えるようにしている。

応用問題を解くには、
解法を複数覚えておいて、
そのうちのいくつかを素早く
組合せて解くものなので、
解法を知らない状態だと徒労になって
時間がもったいないと思う。

高校生のときは「数学を暗記科目とするのは悪」
みたいなところの本質を理解していなくて、
ムダに時間を使ってしまったことがある。

分からないところがあれば「巨人の肩にのる」。
そうしないといくら時間があっても足りない。

今のところ、この本にのっている問題の解法と
コードについて、理解して、身についている
(すぐに解答コードを再現できる)状態に
なることを当面の目標にしている。

解答やコードで、理解できないところがあれば、
とりあえず一旦、手書きで紙に写してみて、
次の項目に移る。そして、三日後位に、
もう一度、読み返したり、手書きで写したりする。

「手書きで写す」のは、ムダだと考えていた時期
もあったけど、有効だと感じている。

あとは、アルゴリズムに関する他の本を
読むと、同じ対象について違う角度から
書かれているので、理解が進んだり、
誤解していたのを修正できたりする。