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

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

『Pythonではじめるアルゴリズム入門』

こんばんは。

Pythonではじめるアルゴリズム入門』を
読みはじめました。

自分のクセで、ある分野について勉強するときは
本質的な内容が書かれた、原典からあたって
みるところがあります。

なのでアルゴリズムについても、まずは
アルゴリズムイントロダクション
(コルメン他著)』から読みはじめました。

ただ、分厚いのでなかなか読めないし、
平日の時間確保が難しい(電車の立ち読みとか、
持ち運び困難)こともあって、違う本を探していました(土日等で家で継続して読んでいます)。

別のアルゴリズムの本がないかな、と探して
いたら同じ著者(コルメン著)の『アルゴリズム
の基本』を発見しました。

これで選択ソート、マージソートダイクストラ
ベルマンフォード等、メジャーなアルゴリズム
基本原理を勉強できました。

何より持ち運びが簡単なので、電車の立ち読みも
できます。

ただ、これらのアルゴリズムを、どうやって
Pythonでかけばいいのか、分からなかった
ので、さらに紀伊国屋ジュンク堂MARUZEN
で探索していると『Pythonではじめるアルゴリズム』に出会いました。

出版されたばかりで、アマゾンの評価も低かったけど、内容は自分にピッタリだったので即買いました。

例題のPythonコードは、スッキリしていて
すぐに理解できます。コードを写経するのも
時間がかからないので、サクサク進みます。

この本のコードを繰返しマスターすれば
アルゴリズムの基本は身につきます。

他のアルゴリズム本では難しいし、
Pythonのコードで勉強したい人には
おすすめです。

今日の積み上げ

こんにちは。

今日、朝からやったこと。

『達人プログラマー』を読む。
Pythonクックブック』のコードを写経する。
デザインパターン』を読む。

読んだページ数は本によってマチマチです。

繰返し読んだ本だと進みが早いですが、
デザインパターン』は読み出して、
2週間くらいなのでまだ知らない単語が
多くて時間がかかります。

一読目はサラッと流し読みで、
知らない言葉や自分が説明できない
用語があればGoogleで調べます。

よく出てくる言葉だと、その意味を本に
書きこみます。

学生時代には「見た方が効率的に覚えられる」
と思ってましたが、意外と「調べて書きこむ」
のは知らない言葉や抽象的な概念を覚えたり、
理解するのに効果的でした。

なので、大学等の授業では先生が黒板に
書いたのをノートに写すのは、意味があった
のかな、と思います。

デザインパターン』は抽象的だし、
サンプルもC++等、馴染みがなかったのですが、
コードを書こうとしたときに「どのパターン」
を使うのか、と考えるベースになるのかな、
と思います。

多数のプログラミングコードから
パターンを抽出しているところが、
名著と言われる所以かな、と思います。

難しい本は「何回読んでも理解できないかも」
とか、不安になって読むのをやめてしまうのは
もったいない。

少しずつ理解できるところが増えていって、
ある日を境目に急に視野が広がる感覚が、
めちゃめちゃ気持ちがいいです。

一度、体感すれば難しい本に取り組むのは
抵抗がなくなるので、おすすめです。

「教えてもらう」のは長期的には非効率。

おはようございます。

仕事をしていると、何でも教えてもらわないと、
できない人に出会います。

何か課題にあたったら、
まず、人に聞こうとします。

自分で関連項目を調べたり、
調べたことをベースに考える、
ということをまったくせず、
他人に聞きます。

確かに、得意な人に聞いた方が早いし、
正確なので、急いで解決する必要があるときは
いいと思います。あと、成功例があると
その通りにすれば失敗する可能性が減ります。

ただ、人に聞いてばかりいると、
一人で解決する能力がなくなります。

また、誰かに聞いて概要するクセをつけると
仕事が遅くなります。聞く人が休みだったり、
在宅ワークだったりすると、
その分、聞くのが遅くなって仕事が遅れます。
あと、得意な人がいない課題に遭遇したときに
どうすればいいのか、分からなくなります。

人に聞くのは大事だと思いますが、
まずは自分だけで解決するクセを身につけた方がいい。その上で、自分の解決策を持った上で、
誰かに聞くのはありだと思う。解決策の確認もできるし、新たな視点を見つけることができる。

残業が続いた週末は睡眠をとる。

こんばんは。

先週は残業続きで睡眠不足になりました。

いつもなら通勤電車は本を読みますが、
先週の金曜日はまったくやる気がしない、
というより、しんどくて読めない状態に
なりました。

勉強は自分がやりたくてやっているので、
サボりたいとか関係なく、しんどくて
読めない。

こんなときは焦って無理してやっても
頭に入らない気がするので、
さっさと寝ます。

実際は字を目で追うだけでも
効果はあると思いますが。

「今日はあんまり進まなかった」
みたいな罪悪感はまったくなし。

休むのも勉強を効果的に進めるには
重要だと思っています。

これが学生時代だったら
「スランプになった」とか間違った認識で、
2週間ぐらい引きずってたと思いますが、
今は寝るだけ。

おかげで次の日はいつも通りやる気が
戻っていてどんどん読めました。

調子が悪くなったときは
メンタルよりも、睡眠不足か、
運動不足によることが多い、と思います。

『デザインパターン(通称「Gof本」)』

こんばんは。

デザインパターン』(通称『Gof本』)を
読みはじめました。

『独学プログラマー』におすすめ本として、
書いてあったので、買ってみました。

1週間で何回も読んでみたけど
ぜんぜん頭に内容が入ってきません。

smalltalkというプログラミング言語
コードが事例で使われていますが、
どんな処理をしているのか、理解できません。

概要のところも内容が抽象的なので
イメージがつかめない。

難しい本を読みはじめたときは、
いつもこんな状態になるので、
理解できなくてもまったく気になりません。

とにかく本の内容を紙に書き写してみたり、
主語と述語を確認したり、分からない用語は
ググってみたり、悪戦苦闘します。

これを三週間も続けるとだんだん分かって
きます。そのうち、当たり前すぎて
何が分からなかったのか、忘れて
しまいます。

「読みはじめは理解できなくて当たり前」

これを知ってると挫折とは無関係になります。

花粉症で集中力が上がらないとき

こんばんは。

最近、花粉症でなかなか集中力が上がりません。
薬で症状を抑えると、今度は眠気がきます。

このように、体調は万全でないけど、
相変わらず勉強を続けています。

習慣にしているので、
1日のうち、決まった時間になれば
本を開いて目で文字を追います。

内容が頭に入っているのか、
分かりませんが、とにかく読書を続けています。

いつも体調万全で頭もスッキリしていて、
読んだらすぐに理解できて、記憶もできる。

こんな状態が理想ですが、
1年のうちでなかなかこうなることはない。

それよりも、どんな状態でも続けること
の方が重要かな、と思います。

『Pythonクックブック』でコードの写経

こんばんは。

「プログラミングの一番の勉強方法は
 コードを読むこと」
と書いてあったので、
Pythonクックブック』で実践してきました。

データベースやネットワークシステム等
広範囲にかかるコードが載っています。

この本のコードをながめたり、
写経したり、手書きで写したり、
いろいろ試してきました。

結論から言うとどんな勉強方法を
とったとしてもそれなりに効果は
あると感じます。

それよりも、毎日継続することの方が
よほど重要です。

理解できていない項目もありますが、
読みはじめた頃に比べれば、格段にコードが
何をしようとしているのか、どんな構造に
なっているのか、分かるようになりました。