アヒル本でわかったこと、考えたこと。

ヒヨコ本ヒル本(Pythonエンジニアファーストブック)が最後まで終わりました。2017年はいっぱい技術書を買ったけれども、ほとんど積ん読になってしまっています。その中で、ヒヨコ本ヒル本は最後まで脱落せずに読破できたのは、いま自分に足りてないところがちょうどいいレベルで埋められたからなのかな。学んだことを振り返りつつ、今後はどっちに進んでいこうかなーと少し考えてみました。

gihyo.jp

(ずーっとヒヨコだと思っていたらアヒルだった...)

第1章 Pythonの動向 その特徴、歴史とコミュニティの紹介

オランダ人の気持ちが前よりちょっとわかった気になった。

  • Pyconと日本のコミュニティ

非技術職の自分にとって、エンジニアのコミュニティとかOSSマインドってのは昨年まで全然知らなかった世界で、今でもほんと興味深い。色々な人の色々なモチベーションが有機的にうまく絡み合っていいコミュニティが形成されていたり、そうでなかったり。自分のいまの技術力ではテイクするばかりだけれど、そのうちにはギブしてコミュニティに恩返しすることが何かできればいいな。

第2章 最低限知っておきたいPython言語の基本

ここは省略。最低限知っておきたい基本はすでに知っていたようでよかった。

第3章 開発環境とチーム開発

Gitが使えるようになって、ファイル名の後ろに日付けを入れて名前をつけて保存というローテクなヴァージョン管理から進化することができた。チームじゃなくてもGit重要。GitHubも作った! github.com

  • venv

最初の頃は、仮想環境は個人開発だしいらないわー。そんな高レベルなことしてないし。と思ってグローバルにがんがんインストールしてたところ、pythonを3.5から3.6に上げた時に見事に動かなくなった。それからちゃんと仮想環境使っている。仮想環境って名前はいかつくて難しそうだけれど、そんな難しくなかった。もっと早く使って入ればよかった。 動かなくなった原因はなんだったか結局わからないし別にあったのかもしれない。でも、初心者でもちゃんとvenv使っていると、動かなくなった原因がちょっと前にインストールしたものなのか、それ以外なのかがわかるので、詰みにくいと思う。

SphinxってなんでSphinxって名前なのかなーとなんとなく疑問に思っていた。Python的な要素ないし。この章で、そうか、PyramidだからSphinxなのね!!と気づいてすごいうれしかった。

  • PyCharm

Pycharmは半年くらい頑張って使っていたけれど、自分には機能が多すぎてつらかったので、今はAtom使ってる。

第4章 スクレイピング

  • Scrapy

Scrapy、超便利。ヒヨコ本の内容と、Qiitaあたりでちょこっと調べただけで使えるようになった。丸々一冊スクレイピングの本も前に買っていたけれど、スクレイピングなんてスクレイピングできれば十分なのだ。

mizuecastella.hatenablog.com

第5章 PyData入門ガイド

  • Jupyter notebook

自然言語処理始めたころ、csvが大きすぎてExcelで開けなくてつらかったので、いま思えばJupyter notebook知っていたらよかった。いま思えば、仕事でExcelでゴリゴリ関数書いていた頃、Jupyter notebook知っていたらよかった。ExcelやめてJupyter notebookにしたら幸せになる人がきっといっぱいいると思う。

  • Matplotlib

Matplotlibってなんかグラフのビジュアルしょぼいよなー。種類も少ないし。D3.jsくらい欲しいなー。と思ってたけれど、自分でやってみたら十分きれいに見えた。Data visualizationってのは、自分で手を動かすと、うまく表示できたって達成感がプラスされるので綺麗に見えるんでしょうか。不思議。

  • Data Visualization

Data visualizationはきれいだし、ワクワクするし、思い入れもあるので、これからはこっちを頑張って勉強していきたい気持ちがある。ただのツールの使い方ってことではなくて。Data vizは見えていないものを見つけだして、わかりやすく人に伝えられて、人を動かす力があると信じている。自分はたぶん、観察能力とか分析能力は平均より優れているんだろうけれど、特にオーラルでの言語コミュニケーションが苦手なので、Data visualizationに惹かれるのかと思う。

第6章 Webアプリケーション開発

Django。恥ずかしながら、この章の途中まで、Djangoってウェブサイト作るホームページビルダーみたいなもんだって思ってた。adminとかsuperuserとかでてきて、あれ、管理者と一般ユーザーが最初からいるのが前提なんだ??って考えてたら、職業エンジニアの人たちがDjangoを使って何をしているかがちょっとだけわかった。

思えば、自分はpythonを使って、自分がアナログでやるにはちょっと面倒な作業を代わりにやらせる、って視点でしかなかったんだな。洒落自動生成も辞書めくるのが面倒なのでPythonにやらせているだけだし、あとは仕事でしょうもない単純作業をこっそり自動化したり。

ユーザーにサービスを提供する、ってところまで考えると、Djangoはとっても難しい。もう少し深くやってみたい気もする。趣味で細々やっているだけだと到底使いものにならないだろうけれど、Webアプリケーションの設計思想的な?ものはおもしろそう。