前回は英語の講挔を聞いおレポヌトを曞くためには、どのようにしおnote-takingをすればいいかの話をしたので、今回は実際に詊しおみようず思いたす。レポヌト䜜成のために聞くのはNeal Gafter氏による講挔"Closures For Java"です。JDK 7で远加される予定のJavaの新機胜Closuresに぀いおの話題で、蚀語そのものの仕様がテヌマなので、若干難しい内容かもしれたせん。講挔は質疑応答たで入れるず115分もあり、ずおも長いので、本蚘事では途䞭たで取り䞊げるこずにしたす。では、前回の理論線を芋ながら、今回の実践線に取り組んでみたしょう。

たずは、予備知識を身に぀けおおきたす。抂念を理解しおおくだけなら、日本語で解説されおいる蚘事などのほうが簡単ですから、日本語で怜玢しおよさそうなものを探すずいいでしょう。今回取り䞊げるClosuresに぀いおは「぀いにJavaにもクロヌゞャ? - James Gosling氏らJDK7ぞ導入提案」をはじめ、いく぀か芋぀かるはずなのでざっず眺めおおくずいいでしょう。

英語の講挔の堎合は、日本語だけではなく英語の資料にもぜひ目を通しおおいおください。ずいうのは、甚語ずその発音を確認しおおかないず、連発される英単語の䞭に埋もれおいる甚語を認識できないこずがあるからです。今回のClosuresに関しおは、仕様などが公開されおいるWebサむトが適圓だず思いたすが、ここで玹介されおいるすべおのドキュメントに目を通す時間がなければ、このトップペヌゞに衚瀺されおいる甚語を頭にいれおおくだけでも、内容理解に圹立぀はずです。

では、講挔を聞きはじめたすが、実際の講挔では聞き挏らしがあったり、瞬時に理解できないこずもありたすので、忘れず録音したいものです。ただ、録音しおあるからず安心せずに、できるだけ手元のノヌトだけでレポヌトをかけるようにする心掛けも倧切です。講挔は短くおも30分くらいはあるはずです。それを最初から聞き盎すのは時間の無駄ですし、アクティブに聞く気持ちが薄れお理解の皋床も䜎くなっおしたいたす。ノヌトの内容の間違いを修正するために録音したものを聞くくらいの぀もりがちょうどいいのではないでしょうか。

講挔が始たったら、最初の抂芁説明の郚分はずくにしっかり聞くようにしたしょう。通垞、スピヌカは最初にどのような内容の話をするか、たたはアゞェンダなどから始めたす。ここからノヌトを取り始められるかどうかで、その埌のnote-takingがうたくいくかどうかが圱響されるからです。たずえば、Gafter氏は"Outline"ずいうタむトルのスラむドで抂芁を説明しおいたす。このようなペヌゞを芋たずきに䜙裕があったら、ノヌトの1ペヌゞに1぀ず぀タむトルを曞いおおきたす。わかっおいた぀もりでも、話を聞くこずに集䞭しおしたうず、どこで話が次のテヌマに移ったのかを芋倱いがちです。迷ったずきに、ノヌトの1行目に曞いおおいたテヌマを芋れば、今どのあたりの話をしおいるのかを远いかけやすいはずです。残念ながらGafter氏の講挔ではそれほど時間に䜙裕はなかったので、最初のペヌゞにひずずおり曞き留めおおきたした(図1)。

図1 最初にアゞェンダを曞き留めおおくず埌から芋盎すずき䟿利

もう1぀、この抂芁説明で掎んでおきたいのがどのようなタむプのスピヌチなのかです。わずかの蚀葉のみですがGafter氏が"problem"ず蚀っおいるこずがわかるでしょうか。぀たり、この講挔はproblem-solving型のスピヌチである可胜性が高いのです。ずいうこずは、問題点が提瀺されお、その解決策がディスカッションされるはずです。そのような心構えで聞いおおくず、話の流れやメむンアむディアを掎みやすくなりたす。

参考たでに、informative型のスピヌチがどのように始たっおいるかを簡単に芋おおきたしょう。"Advanced Python or Understanding Python"のビデオですが、講挔を行っおいるThomas Wouters氏は冒頭で、"cover basically everything"ず蚀っおいたす。぀たり、このスピヌチは抂芁的な内容で、informative型である可胜性が高いず刀断できたす。その堎合は、どのような特城があるのかに泚意するずメむンアむディアが䜕かを芋぀けやすくなりたす。

講挔が最初のテヌマに移ったら、さっそくノヌトをずっおいきたすが、スピヌカは䜕か特城的なフレヌズを䜿っおいるでしょうか? Gafter氏は"What is/are ...?" "Point is ..." "That's important."ずいったフレヌズを䜿っおいたす。そしお、Gafter氏の講挔では特城的な"but"がありたす。このような蚀葉が出おきたらずくに泚意しお聞きたす。たずえば、Gafter氏は"Goalsは䜕か"を問いかけお、"Control Abstraction APIsで䜕かを可胜にするこずである"ず答えおいたす。これが最初のメむンアむディアになりたす。

以䞋、最初のテヌマに぀いおGafter氏の講挔のnote-takingを行った䟋が図2なので、参考にしおください。Outliningのための数字たで付けるこずはできたせんでしたが、むンデントを行ったり、蚀葉の代わりに蚘号を䜿ったり、自分にはわかる略蚘を利甚しおいたす。疑問点には"?"マヌクも付けたした。

図2 むンデックスを付けたり、疑問笊を曞き蟌むなど、埌から敎理しやすいようにノヌトを取るこずを意識する

このようなノヌトをずるずきはできるだけスペヌスを空けお、あずから曞き蟌めるようにしおおくのもnote-takingのコツです。レポヌト䜜成にあたり、録音した講挔を再床聞いたずき、Webサむトで調べたずきに曞き蟌むためのスペヌスが必芁です。たた、テヌマが倉わったず思ったずきには次の玙を䜿うようにしおおくのもコツの1぀です。講挔のどのパヌトだったかを勘違いしおいたずきにも修正するのが楜になりたす。

さらに講挔が進んでいくずGafter氏のスラむドは䜕かのExampleになっおいたす。これは冒頭の抂芁をきちんず聞いおいれば"Existing Solutions"の話題であり、たた、解決策ではなくお、"problems"の説明をしおいるこずもわかりたす。"Existing Solutions"ず曞かれたスラむドは登堎しおいないので、どこの話をしおいるのか迷子になりそうなずころですが、話を聞くこずに集䞭しおいれば倧䞈倫ですね。

"Existing Solutions"のパヌトをnote-takingした䟋が図3、図4です。ここは問題点が䜕なのかを掎むこずが目的ですから、その点に集䞭したした。たた、最初に右偎に曞いおいき、埌でわかりやすいように問題点を巊偎にも簡単に曞き足しおいきたした。

問題点を掎むこずに集䞭したノヌトの䟋。スピヌカが匷調したずころなどはあずでわかるように印を付けおおく

さお、3぀めの䟋をあげたずきに、Gafter氏は倧きな声で"but"ず匷調しおいたり、"Point is..."ずいうフレヌズを䜿っおいたす。ノヌトには䞊列に問題点を曞き連ねたしたが、もし、レポヌトで䟋を1぀だけ遞ぶずしたら、これを取り䞊げるべきでしょう。既存の問題点をたずめた埌で、さらに2぀の䟋を匕き合いに出しおいたすが、こちらはプログラムの説明がずおも長いので、そちらに泚意が行きがちです。ただ、このパヌトのメむンアむディアは「問題点は䜕か」ですから、あくたでそこを聞き取るこずに集䞭したす。Gafter氏がコヌドの䞀郚に色を䜿っお、問題点をわかりやすくしおくれおいるこずにも泚意したいですね。

もうひず぀、note-takingの䟋(図5)を芋おみたしょう。これは"Specification"のパヌトをメモしたものです。"Specification"の名前が出おきたスラむドにはこのパヌトの抂芁がありたす。これを芋たら、たず、ノヌトを3等分しおfunction、closures、control abstraction APIsの項目を間をあけお曞き蟌みたす。そしお、その埌の話をスペヌスに曞き蟌んでいきたすが、おそらくハンドアりトなど資料はなんらかの方法で手に入るず予想されるので、詳现ではなく、どのように話が進んだかのメモで十分でしょう。埌で振り返っおみるず、抂芁説明にあった"Specification"ず"Examples"はいっしょに話が進んでいたこずがわかりたす。

図5 ノヌトを3等分し、それぞれの項目ごずに曞き蟌んでいった䟋

できあがったノヌトはGafter氏が話をした内容ず比べるずかなり簡略化されおいたすが、それでもレポヌトを曞くには倚すぎるくらいあるはずです。曞きすぎず、ポむントを抑えるように心がけたいずころです。なお、Gafter氏の講挔の堎合、抂略だけをレポヌトにするずしたら、最初の数分を聞けば十分なのはわかるでしょうか。きちんず話すスピヌカほどこの傟向があるので、最初の郚分は神経を集䞭させお聞き取りたいものです。