2009-03-12

Code Reading スライド作り 10 のポイント

Python Code Reading 08 で講師というか、しゃべりをしてきたわけですが、資料をどうやって作ったのかと何人かに聞かれました。ので、書いておきます。



基本的に、そこらへんのプレゼン本、文書指南書、レポート書き方ハウツー本のとおりにやっているだけです。卑屈に聞こえるかも知れませんが、私ができることは、学校で習ったことと、本に書いてあることのサブセットです。



0. とりあえずダウンロードしてインストール
python.org から 3.0 と 2.5 の tar 玉をダウンロードして make する。時間がかかるので、その間に...



1. さらっと調べる
Google で「python-3.0」を検索して、さらっと読む。で、かたっぱしから、はてなブックマークや Evernote にメモメモ。検索結果のトップ10くらいを読めば、私が話した内容以上の情報が得られます。



2. コードをメモする:
What's New in Python 3.0 に書かれている新機能を、2.5 と 3.0 で比較しながらメモします。たとえば、最初は print 文から print() 関数への変更です。2.5 フォルダで grep -n "print " *.py | less したり、3.0 フォルダで grep -n "print(" *.py | less してコードを眺めます。



なんとなく面白そうだなと思ったファイルを、テキストエディタで開いて、2.5 と 3.0 の違いを見付けて、memo.txt とかにひたすらコピペ。気付いたことがあったらメモしておきます。len(a) == a.__len__() とか。



ひととおり終わると、ここは集中して話したいなぁとか、ちょwイミフww みたいな箇所が、なんとなく絞られています。



3. ポジショニング
「2.5 よりも 3.0 が優位になる条件は何だろう」と考えて、3.0 を 2.x と差別化します。__cmp__() 廃止は可読性や一貫性に大きな影響が出て、StringIO のモジュール階層の変更や oct() や hex() の導入などは瑣末な変更であることが見えてきます。「Python 3.0 のベネフィットが読みやすさと書きやすさ」というのは、この時点でだいたい出てきました。ベネフィットに直接関係なしないコードは思い切ってカット。



4. コードのスライド作り
上のポジショニングに影響する機能とコードを、スライドにコピペです。PowerPoint 使っています。重要でない行や変数は「...」で済ませます。実は最初、この種のスライドは、2.5 と 3.0 を、左右に並列させていました。



5. 導入とまとめスライドを作る
導入として、状況の説明、当事者意識を持たせる、当事者の期待、課題提示、解決策を提示するスライドを作ります。今回は3枚くらいでしたっけ。もくじは「その後」です。この方法は Cliff Atkinson の「Beyond Bullet Points」という本で提案されている方法です。この時点ではタイトルだけ書いておきます。



まとめスライドは、話した内容を箇条書きにしておきます。ついでに、3.0 に以降するべきときと、するべきでないときのスライドも追加。勉強会なので、簡単に済ませました。



6. コードスライドにコメントをつける
コードの重要なところを囲ったり、吹き出しをつけます。話す順番に出現するようにします。コード読みなので「この変数がー、こっちの関数にわたってー」みたいな展開になります。スクリーンの前に立って、指で指し示しすのが嫌だったので、ぜんぶスライドの吹き出しにしました。



指や指示棒を使いたくない理由は、物理的な制約です。背が低いのでスライドの1行目を指させないときが、よくあるのです。それに最近のプロジェクタは明るいので、指や指示棒が見えないことも多々あります。レーザポインタは見にくいので論外。



7. コードスライドのフォント変更
ustream で配信することになったので、慌ててフォントを大きくしました。きっと見えないだろう、と。どうしても1枚に、2.5 と 3.0 を並べられないことに気付いたので、スライドを分割しました。それから編集中のスライド表示の大きさを、ustream の映像サイズと同じにして作業しました。



8. 写真をつける
Presentation Zen のブログや本で、言及されているように、背景にうすーく絵や写真をつけます。特に、コードではなくて、しゃべりでひっぱる導入やまとめスライドに写真をつけます。iStockPhoto から。





9. 練習
声にだして、立ってしゃべる練習をしました。