2011年12月10日

Python の学習資料

Python の学習資料を公開しました。

対象は次のイメージです。

  • 何となく動くソフトウェアを書ける。
  • 自分の環境では動くけど、別のマシンで動かすときは苦労している。
  • デグレードに悩まされて仕事から帰れない。

資料のアウトライン

全体的な内容としては次のものを予定しています。

  • 環境構築と基本的なスクリプト
    • Virtualenv + pip (Windows)
    • Fizzbuzz
    • コマンドラインスクリプトのテンプレート
  • CSV ファイルの読み込み
    • zip / dict 関数、クラス定義
    • 文字コードの扱い
    • O/R マッパー - SQLAlchemy
  • コマンドライン操作
    • ファイルシステムとのやり取り
    • 設定ファイルの持ち方、環境変数
    • Fabric によるリモートサーバ操作
  • テストの方法
    • unittest / doctest
    • Nose による実行
  • Web アプリケーションの作成
    • Django チュートリアル
    • URL のルール
    • テンプレートエンジン
  • ドキュメントの構成方法
    • Sphinx と CI
    • テーマの作成
  • プロジェクトの構成方法
    • パッケージング
    • ビルドツールいろいろ

実際に書き終わっているのは CSV ファイルの読み込み部分までです (もう少し更新はあるだろうけど)。 Web アプリに関しては微妙なとこです。やっぱり書かない (or 書けない) かもしれません。 3月くらいまでには書き終えたいなぁ、と。

そもそもの動機

ソフトウェア系の会社で働いていると、 ちょっとしたスクリプトを書けば業務改善が図れることは多いと思います。

標準的なスクリプティング方法が統一されている会社もあるでしょうし、 個人がまちまちに管理していることもあるでしょう。 個人的には、それなりの規模の会社で働く場合は、 周りの人と協力して作業できるように環境を整備しておくことが大事だと思っています。

当たり前といえば当たり前のことですが、意外とそこは重視されにくいようで、 「XXX というプログラミング言語を使ったことはありますか?」と聞かれたことはあっても、 「XXX で NN 人が効率的に仕事をするためにどうするべきですか?」 といった類の話題は少ない気がします。

がむしゃらにソフトウェアを書いてみても良いとは思いますが、 せっかく会社で仕事をするなら、協調できる方法を模索するのも悪くないと思います。 自分の手元で動くから完成、膨大な手順書があるから機械的に運用できる、 そうした幻想を抱くのではなく、どこでも気軽に動かせるソフトウェアが増えて欲しいな、と。

そんなこんなをもう少し現実的な地点に落とし込むと、 基本的なコマンドラインスクリプトを書ける人が増えて欲しいなぁ、 ということで、冒頭の資料を作成することにしました。

Python を使う

管理ツールなどの補助スクリプトとして Python を使う方法を学びます。 テキストファイルに対する処理、シェルスクリプトに代わるものを Python で記述することにより、 チーム開発の生産性を向上させます。

なぜ Python か?という部分にはいくつかの理由がありますが、 なぞのコーディングルールを定めなくともそれっぽく記述がそろいますし、 記号を多用する必要がなく、多くの Linux にデフォルトでインストールされている、という点が挙げられます。 あと、Windows でも簡単に始められます。

ともあれ、ひとつの言語でスクリプトを記述できるようになれば、それを他の言語に適用することは簡単になるはずです。 「この言語を使うんだ!」と明確な指針が定まっていない限り、とりあえず Python を勉強してから他のことをやっても、 さほど遠回りにはならないでしょう。 むしろ、あれやこれやと考える前に取り組める人の方が好ましかったりします。

Python だと実行速度が不安... という話もあるみたいですが、 そもそも性能要求が厳しい部分で使うことは想定していません。 実行速度よりも実装速度が求められる部分で力を発揮すると思います。 乗り物で例えるなら、一方通行の狭い道を移動するときは大型車より自転車の方が速かったりします。 何事も適材適所ですね。

終わりに

公開した資料をベースに、社内で勉強会を開催しています。 ちょっとした糊付けプログラムはサラッと Python で実装できる人が増えてくれれば嬉しいなぁ、と思います。

効率化のためにソフトウェアを開発しているわけですから、 効率的に仕事を進められるようになりたいですね。

  • 中竹竜二氏が語る「世界で勝つために」必要なこと (2/2) (スポーツナビ)

    ユース世代がスコットランドに勝ちましたが、当然だと思っています。 ユース世代で世界で一番練習しているのは日本です。 毎日練習して週末も練習している。こんな国はほかにありません。 それでも世界で一番強くなれてないのは練習効率が悪いからです。 忙しいと言うなら練習を減らして準備して振り返って考える、考えさせる時間をつくってくださいと言っています。

コメントを投稿