Pythonを使い始めて10年以上経過するが、仕事や研究で使っているわけではないので、それほど深い知識があるわけではない。
使い始めたころは、公式サイトのチュートリアルとヘルプが教科書で、書店へ行ってもPerlコーナーの片隅にPython本が何冊か置いてあるくらいだった記憶がある。
それが今では機械学習の主要言語のようになったおかげで、毎月のようにPythonの入門書が刊行されている。
せっかくPythonを使っているのだから、もう少しPythonの細かな機能について学ぼうと考え、入門書をいくつか手に取っては見たが、どうしてもオブジェクト指向の詳しい説明のあたりで挫折してしまう。
一応、機能を説明してある文章やサンプルコード自体は理解できるのだが、分かった感が薄く、果たしてその機能を必要とする機会があるのだろうかと考えてしまう。
オブジェクト指向の継承とかダックタイピングなども説明を読んだときに意味は理解できたが、自分から使う機会もなく既に忘却の彼方である。
個人がちょっとしたスクリプトを書いて実行する程度なら、クラス(モジュール)の使い方を知っていればたいてい解決してしまうことが多く、新たにクラスを作成する必要はないように感じられる。
他にもデコレータについてしっかり理解しようと思い、公式ドキュメントを繰り返し読んでテストコードを書き、デコレータの作り方という記事にまとめたが、結局その時以降使っていないので、もう使い方を忘れてしまった。
結局のところ、瞬間的にある機能を理解したとしても、実際にある程度の頻度で使用しない限りその知識は忘れ去られていく、という当たり前の答えにたどり着く。
だから、Pythonをどこまで学ぶかは、自分がPythonの機能をどこまで必要としているかに左右されることになる。
あくまでPythonは手段なので、自分がやりたいこととPythonにできること、もしくはパッケージを追加すればできることをよく見極めて上手に使いこなしていくことが必要なのだという当然の結論に至る。
とはいえ、ちょっとした好奇心から細かな機能や構造について調べていくと、思いもかけない発見にぶつかることもあるので、あまり手段の一つという割り切り方をせず、自分の理解の範囲で楽しみながらPythonと付き合っていこうと思う。