
Advent Calendar 2013 - 25?
メリークリスマス!!

"Advent Calendar 2013" の締めを。
なんとか、"一人 Advent Calendar 2013" を最後までやり遂げたけど、一人でやるもんぢゃぁ、ないな。プログラム系の記事を 25 日連続で投稿するのは、なかなか大変だった。
もともと、職場の仲間が去年にやっていた Advent Calendar 2012 に触発されて、チャレンジしてみたものなのだが、やってみると道のりは険しかった…。
1. 動機
11 月に Python の Pandas パッケージを見つけ、どうやら R のように扱えそうな感触だった。以前から、"できれば Python だけで完結したい…" と考えていたので、自身の学習促進のために "調べたことを Advent Calendar の記事にしよう!" …と思いついたのが始まりだった。知らないことを調べながら書いていこうってんだから、そりゃぁ、大変だわなぁ…。
2. そして、英語との格闘
けして、英語に堪能ではないのだが、 Pandas の日本語の情報は潤沢とは言えず、どうやら英語の情報からは逃げられないらしい。…と、覚悟を決めて買ったのが Python for Data Analysis。
ソースコードが豊富だったので、英語力というより推理力で、なんとかかんとか読み進め、試行錯誤しながら進めていった。
3. 「記事の内容、薄くないですか?」
「記事の内容、薄くないですか?」などという、そんな残酷な突っ込みがあったのだが、まずは、データを自在に振り回せるようにならないと、解析も何もあったものではない。何かを調べようと思っても、ライブラリの操作で躓いていては、調査が進まないからだ。Pandas のような集合データの操作は、通常のプログラムとは考え方が違う (すぐにループ処理を書こうとしてしまう) ため、使いこなすためには、脳の慣れも必要だった。
そして、濃い内容を 24 日間も書き続けるのは、私には無理だ…。
4. 強制的な学習
今回の Advent Calendar は苦しかったけれども、一方で、とても有意義だった。やろうと思えば通常の Python で実現できることを、わざわざ英語の文章を読んでまで学ぶなんて…通常なら、避けて通る道だっただろう。Advent Calendar に挑戦していなければ、たぶん、Pandas を新しく学ぶことはなかった。
だがしかし…。
Pandas を使わずに、標準偏差や相関係数を自分で実装する気がまったく失せた今、挑戦して良かったと思う。統計処理以外の今までロジックを書いていたところも、使えるところは Pandas を使って記述することになるだろう。ロジックを自分で書くとバグの入り込む余地があるし、ロジックが少なくなれば、インデントの少ない可読性の高い (Pandas を知っていれば…ではあるが) コードになるから。
開発を続けているエンジニアたちに敬意を表しつつ、大いに活用させてもらうつもりだ。