Home > Archives > October 2009

October 2009

京都の地より、IT勉強会を再考してみる #4

今度は中級者に対して何ができるか考える。 これがけっこう難しい。中級者ともなれば、求めるものは人により様々で多様性が生まれているだろうからだ。

また、中級者に上級者が教える、という形式は現実的に困難かと思う。 毎回、上級者が来てくれるかわからないし、そもそも上級者にとってメリットが少ない。 つまり以前にも書いた、「教える側(上級者)が成長しない」というジレンマに陥るだろう。

色々難しそうだが、とりあえず考えてみた。

「コーディング比較・検討」形式

最近うちの社内でguccyonが企画して上々の滑り出しをしたので、それを使わせてもらおうかと思う。 あるプログラミング課題を全員で作成し、それぞれの実装方法などを発表しよりよい方法を学ぶ、というものだ。 guccyonの企画では色々なプログラミング言語で実装することを前提としているが、それをあえてFlex/AIR, ActionScriptに限定した課題にすることで、特有の言語やフレームワークに依存した突っ込んだ議論も盛り上がりそうに思う。

何より僕のように業務でFlex/AIRに携わっていない、そういう機会に恵まれない人は、現場の経験者がどのようにアプリケーションを作るのか知りたい。なぜかというとFlex/AIRを勉強するには書籍やWEBのサンプルに頼るケースが多い状態なのだが、そのようなものは本来必要なエラーハンドリングやMVCの分離などは紙面の都合上省略している。だから自分が見よう見まねで作ったものが経験豊富な人の作り方とどう違うのかぜひ知りたいと思う。

「オンエアバトル」 形式

職場のダル(ダルビッシュの皮を十分に伸ばして被ったヲタク)のアイデア。普通の講演形式ではあるが、事前に発表内容を公開し投票を受け付ける。そして一定数以上の希望者がいた講演のみ発表してもらうというもの。これマジ立候補したくないんですけどw落選するの怖すぎるしw

でも皆が落選に馴れてきたら盛り上がりそう。落ちて当たり前、受かればラッキーくらいのスタンスでできれば楽しいかな。 聴衆も自分たちが必要とする講演をたくさん聞けてハッピー。

「オンエアバトル(改)」 形式

これも上のと似てるけど、少し違う。たとえばFlexハック集のような細かいテクニックをたくさん紹介する。紹介ってのは「こんなことができますよ~」という触りだけで、どうやるかまでは喋らない。そして、希望者が多かったいくつかのハックのみ、手法も含めて解説する、と。

上のアイデアと合わせて、基本理念は聴衆が求めていないものは解説しなくてよろしい、という非常に冷血感あふれる企画なのでした。怖い怖いw


う~ん、中級者向けは難しいなぁ。とりあえず一回実施したときにアンケートや聞き込み調査で、みんなが何を求めているのか探るしかない。 あれこれ頭の中で考えるのは一回おいといて、次は実施に向けて実際に行動を起こしていきます。

11月21日(土)を予定。京都にいるFlex/AIRに興味のある人はまず一度覗きに来てください。貴方と僕のための勉強会を目指します。

京都の地より、IT勉強会を再考してみる #3

前回あげた懸念点をうまく回避すべく、色々な勉強会の形式を模索してみる。

「ハンズオン + 講演」形式

やはりどうしてもハンズオンはやりたい。しかし、前回も書いたように環境の問題がまず大きい。全員がノートPC持ってくるわけじゃないので、みんなのPC準備できんのかってこと。ノートPCを持ってくる人だけを対象に開催するのも一つだろうと思う。だけど、もう一つ考えてみたのがこの形式だ。

どういうことか端的に言うと。

PC持参のグループ: 与えられた課題作成に一人で取り組む。
PCを持ってないグループ: グループ内で代わる代わる一台のPCを操作して課題作成。その模様はプロジェクタで共有。

PCを持参していない人はライトユーザ、つまりより初級者の割合が高いのだろうという予測に基づいている。 なのでPCを持っていない人には講師のPCを操作させてあげて、講師の指導のもとに課題作成を進める。他の人、PC持参している人もその内容を見ながら参考にできる。

PCを持っていない人数に応じて、共有するPCは複数台準備したほうがいいかもしれない。その場合は一台の共有PCごとに一人のサポーターが付いて指導する形。課題をうまく準備できればひょっとしたらきれいに回るかもしれない。もちろん、最適な課題ができた場合は以後使いまわして利用する。そうすると、講師さえ準備できればいつでも特定テーマについてのハンズオン学習ができるカリキュラムが徐々に完成していく。そのデータベースは公開して自由に利用してもらう。

「読書会 + 講演」形式

これも発想は上と同じ。つまり全員をひとまとめにできない事情があるのなら2つに分けてしまえ、というもの。 ズバリ書籍を読む人読まない人だ。 手順は以下。

  1. 参加者のニーズに応じて、今読むのに一番ふさわしい書籍を一つ選択する
  2. その書籍を読んで成長したい、読書会に継続して参加したいと思う人を数人募る
  3. 次の勉強会までにどこまで読んでくるか決める
  4. 家で読む
  5. 次回の勉強会で、自分が詰まったところ、理解できたところ、簡単なまとめなど分担して発表する
  6. 理解できなかったところのQ&Aコーナーもあり
  7. 次の勉強会までにどこまで読んでくるか決める(読む人はずっと同じ)
  8. 以下読み終わるまでループ

Flex勉強会@大阪の活動にヒントを得て、それをもうひとひねりしたいのだが、このままではほとんど変化がない。 違いがあるとすれば全員で書籍を読むのでなく、誰が読むかを固定的に決めているところくらいだ。

なぜ固定化したかというと、読む書籍を5冊程度に増やして「電波少年的 人は半年でFlexの達人になれるか?」みたいな実験まで広げたいと思っている。むしろ自分が実験台になりたい。これなら書籍を読まずに聞いている人も楽しめるだろうか。

そして、本当に1人でもこれでFlexの達人が生まれれば、次回からは希望者殺到だったりして。30過ぎても夢見がちな自分。

このアイデアはもう少しブラッシュアップが必要・・・と。

「質問会」 形式

今抱えている開発上の課題やQ&Aなどを、経験豊富な先輩たちに自由に質問できる場を作る。 教える人のレベルに応じて初級者向けのサポーター、中・上級者向けのサポーターに分かれて各自のレベルに応じた課題に取り組むことで教える人も成長する。

質問者は質問するために必要な材料、開発環境やエラー画面などを持って来てもいいが、「こんな感じの処理はどうすれば実現可能か?」というようなアバウトな質問でもOK。 それが初級者向けの質問か、中・上級者向けの質問かの切り分けをした上で必要なサポーターに割り振る。サポーターが解決できなければより上位のサポーターに質問する。 また、その場で解決しそうにない課題であれば次回以降の勉強会の場で、それに取り組むハンズオンなどを企画する。

これを実施するには恐らく当日に質問を募集するよりも、勉強会実施前からメールなどで質問を集めたほうがいいだろう。そうすれば準備もできるし、参加者のニーズもより詳しく把握できる。


初級者向けのアイデアは今のところこんなもん。もう2、3個アイデアが欲しいところだなぁ。引き続き中級者向けのアイデアを考えてみる。

京都の地より、IT勉強会を再考してみる #2

前回、自分らしい勉強会の目標設定をしたところ、コメントやメールなど意外に反響があったので驚いている。 今回は前回決めた目標である成長と教育の有機的サイクルを実現するために、どのような方針が必要かもう少しブレークダウンした具体策を考えていきたい。

最初に、僕が一番難しい問題と認識していることを書いておかなければいけない。 それは

月に1度、数時間の勉強をした程度で人は成長しない

ということ。だって年間40時間程度でしょ?5年頑張ったとしても200時間。大体1ヶ月の勤務時間に等しいけど、1ヶ月の勤務時間で得られるものってそんなに多くない。僕たち開発者は技術を身に付けた後に何を作るかが大切なわけで、必要な技術を身につけるだけで5年や10年かかってたら意味がないと感じてしまう。技術は常に進化するということもあるし。

では勉強会そのものが無駄かというとそうではない。勉強会に出席するために事前準備として勉強しておくとか、勉強会に出席したことで自分の実力の無さを痛感し家で勉強に励むとか、そういう行動を促す契機としての機能を備えればいいと思っている。

そして、勉強会の事前に準備として勉強するのと、事後に触発されて勉強するのでは前者が好ましいと考える。期限付きで自分を追い込めるからだ。後者の頑張ろうという気持は大抵長続きしない。

まとめ

勉強会に向けて多くの参加者が何らかの準備をしていて、当日にその結果を確認し、また次の勉強会のためのレールが準備される、というようなサイクルを生み出せれば理想だ。

これらの前提を元に色々と考えてみよう。


まず、今一般的に開催されている勉強会とは、どのようなものがあるかを分析したい。 こちらを参考にした。

読書会からBoFまで。IT勉強会を5つに分類 - @IT自分戦略研究所

これに自分なりに内容や対象者のレベルなどを追加してみた。

勉強会の分類

分類 内容 講師 対象者のレベル
講師講演(LT) 講師と聴衆に分かれて発表や説明をする(LTは5分程度) 初級者~上級者
ハンズオン 参加者が実際に手を動かして実践する 初級者~中級者
ハッカソン 参加者が実際に手を動かして実践する 不要 中級者~上級者
読書会(コードリーディング) 全員で同じ書籍を読みながら討論、もしくは誰かが読んだ結果を報告する。コードリーディングはソースコードを読む 不要 中級者~上級者
BoF、パネルディスカッション 複数の登壇者が意見交換や発表を行う 初級者~上級者

ハンズオンとハッカソンは違いがよくわからなかったので、指導者としての講師がいるかいないかという違いで解釈した。ハッカソンは講師もいないのでより上級者向けとなる。

今回の勉強会企画の中で一番大事だと考えていることは、初級者に向けて何ができるか。 まずはそこをメインに考えてみる。初級者向けとなりそうなものは

  • 講師講演(LT)
  • ハンズオン
  • BoF,パネルディスカッション

一つずつ検討してみよう。

講師講演(LT)

これは実は講師にとって非常にメリットの多い方法だと思っている。前で喋るためにはそれなりの準備が必要だし勉強もする。一度喋るとまた次回も発表したくなる。という風に上で述べていた成長のサイクルを描ける。問題点を挙げるなら聴衆の成長が少ないと思えるケースが多いことだ。事前にどんな講演がなされるのか予備知識が足りない。だから自分も講演を聞くための準備をしようと思えない。また、一方的に聞くだけなのでそもそも準備の必要性を感じない、というところも問題だ。

勉強会はそれを主催する人、講演する人、聞く人、全員のためのものだ。大多数である聞く人のメリットが少なくなるような問題点は何とか排除したい。対策としては以下のようなところだろうか。

  • 発表内容の資料を事前に公開する

    これにより聴衆側も何らかの準備ができるかもしれない。また、自分にとって必要の無い講演だと判断できれば参加すらしないだろう。効率的に成長してもらうためには、不必要なことに時間を割かず、その間に別のことをしたほうがいい。必然的に当日のタイムスケジュールも明確に提示する必要がある、と結論付けられる。大学の授業のように出たいコマだけ出る、という感じになるだろうか。

    この案の問題点は講師側の負担が高まってしまうことだ。資料を事前に用意する労力もさながら、自分の発表内容が魅力的でなければ聴衆も集まらないというダブルパンチ。正直自分でもやりたいと思うかどうかは微妙・・・。

ハンズオン

実はこれが一番僕の理想に近い。手を動かしている間は少なくとも参加者は成長しているはずだ(もちろん参加するテーマによるので、そこはまた事前情報により選択してもらう)。

ただし、だからといって簡単にいかない事情がある。ここがクリアできれば僕が考える勉強会の半分以上はこのハンズオンでいいのではないかと思える。事情というのは

  • 全員分のPCなどの環境準備が必要
  • (今度は)講師側の成長が少ない

    講師の成長の件は、その講師がやや背伸びして対応できる内容にうまくあてがうことができればいいと思っている。つまり、最初はハンズオンで学ぶ立場の人が、ある程度マスターしたら今度はそれを教える側に立つ。そうしながら自分はよりレベルの高いハンズオンで学ぶ、というようなローテーションがうまく組めればいいと思う。

    実はこの形は、僕がこの勉強会で実現したい形でもある。僕が今、勉強会の発展形を考えているのは自分がその勉強会をうまく回していくことだけを考えているわけじゃない。勉強会フレームワークを作ることを目指している。そのフレームワークにならえば主催者の負担も低く、参加者も講師も成長できるような勉強会を簡単に開催できる、というようなものだ。

    「勉強会フレームワーク」という製品を作るオープンソース活動と言ってもいいのではないか。そしてたくさんの人がそれにならって勉強会を企画し、京都の、関西の、全国のいたるところで毎日色んな勉強会が開催されれば嬉しい。その時僕は、一参加者として「今日はどれに出ようかな?」と日々自分の成長を楽しめるようになるのだ。

    話がそれた。とにかく環境の準備が大変。ノートPCを皆が持参した場合、どの程度人が集まるのだろうか?そういうこと。

BoF,パネルディスカッション

これは今回は却下。これで聴衆が成長すると思えない。全員参加型にするにも初級者にはハードルが高い。てことで却下。


次回はこれらの問題点を踏まえて、その全てを同時に解決するようなウルトラF難度のアイデアが出たら嬉しい。 そんな期待を持ちながらB難度くらいでもないよりはマシ、というスタンスで色々考えてここで書こうと思う。

京都の地より、IT勉強会を再考してみる #1

僕はFlex User GroupでFlex勉強会の開催に参加しているわけだけど、あらためて勉強会というものを考えてみる機会に恵まれた。 自分にとって勉強会ってなんだろう?何を求めているのだろう?また、他の人はどうなんだろう?そんな疑問に自問自答しつつ、自分らしい勉強会の形を探ってみようと思う。

で、探るだけじゃなくてどんな勉強会を目指すかを決定する。 そして決定するだけじゃなくてその勉強会を開催する。 まあ確かにそれは失敗に終わるかもしれない。でももちろん、成功する可能性もなくはない。

失敗する時は2パターンあって、それは

  • 頭の中で考えて、無理だと判断し実行しなかった
  • 実行したがうまくいかなかった

これに対して成功するパターンは一通りだけ、それは

  • 実行して、成功した

つまり当たり前だが、実行せずに成功することはない。成功させるためには少なくとも実行する必要がある。思い立った時に行動しなければ情熱も冷めるので、今回は最速で実行に持っていくことを最優先しようと思う。そのために多少の品質低下や不整合は気にしない。


さて、ではIT勉強会の目的から考える。 僕はもともと主催がしたかったわけじゃないので、あくまで参加者として何が欲しいかを考える。

  1. 自分の知らない情報の収集
  2. 自分の技術的成長
  3. 同業種、自分と興味分野が近い人との繋がりを作る
  4. 他業種、自分と興味分野が遠い人との繋がりを作る
  5. モチベーションアップ
  6. etc

こうやって挙げると上記の中で、僕が今IT勉強会に一番求めているのは「2. 自分の技術的成長」となる。あとは3や5もある。でも一番強いのは2。圧倒的に2。

なぜだろうかと考えた。それは恐らく自分の仕事に直結するからだ。 僕は今、開発者としての自分から徐々に経営者としての自分を意識せざるを得ない状況になっている。それはある部分で誇らしくもあるが、ある部分では非常に嘆かわしい。

日々の新規事業の考案であったり、組織の統制であったり、部下の育成であったり、それらはとても大切なことでそれに取り組む自分を間違っていると思ったことはない。でも、そんなこと大して気にせずとも開発のことさえ考えておけばある程度うまく回っていくような、そんな環境もあるんじゃないか?と思ってしまう。残念ながら今、僕はその環境にはいない。

僕は経営者である前に開発者でいたかった。じゃあその道は断たれたのだろうか? う~ん・・・もう断たれたのかもしれない。でもどこかに突破口はあるのかもしれない。

僕はそれを勉強会に期待した。自分の開発者としての成長サイクルを、勉強会を軸に回していけるのではないか。長い長いマラソンの42Kmの道のりの中で、まずはあそこまで走ろうと思える一本の電信柱にできるのではないか。 僕と同じようなことを考えている人、もしもたくさんいるのなら、そんな人たちとともに成長したい。

キーワードは成長だ。

そしてもう一つ。

僕は「教育」が好きだ。 教育するのもされるのも好きだ。 ここで僕がいう教育とはただ単に知識を詰め込むことを指すのではない。相手の立場になり、相手に何が必要かを考え、相手より少し経験の多い人が親身になって、より正しく効率的な方向を指し示してやるというものだ。 これからFlexやAIRを学ぼうという人に、先輩たちの通ってきた道のりを正しく示してやることができたら嬉しい。

僕が目指す勉強会、そのキーワードは成長教育

目標設定はまだ終わらない。 僕が上に挙げた2つのキーワードは、実はかなり両立困難なことだと知っているからだ。

教育には多くの場合教師が必要だ。その教師が一生懸命教えたらどうなるか?多分、教師自身の成長は止まる。 もちろん教えることで「教えるという技術」は向上するし、教えたことで初めて自分の中で知識が整理されるということもある。 だけど野球のコーチがどれだけバッティングフォームの指導をしようと、自分でバットを振らなきゃそのうちヒットは打てなくなるだろう。

つまり一生けん命教えれば教えるほど、教える側の人が損をするという考え方もできてしまうのだ。 「成長」と「教育」を高いレベルで両立するのは無理ということか?

いや、そんなはずはない。

そんなところで思考停止してどうする。人間は他の動物にはできないマネをさんざん実現してきた。言葉を操って複雑なコミュニケーションを取ったり、何十階もあるようなビルを建てたり、鉄の塊を空に飛ばしたりしてきた。

その人間が、「成長と教育の両立はできません」だと?あほか。

絶対にできる。いや、恐らくすでにどこかでできている。試行錯誤を繰り返せば自分にもできるはずだ。そう信じることくらいは許されるはずだ。

僕の勉強会の目標は成長と教育の有機的サイクルを実現することに決定した。

Eclipse3.4にFlex Builderプラグインをインストール

今までずっとFlex Builderを単体でつかってきたけど、サーバサイド(Java)との連携を考えるとやはりEclipseにプラグインとして入れたほうが早そうだ。 ということで最新版のEclipse(3.5)にFlex Builderプラグインを入れようとしたものの・・・

Eclipse 3.2.2、Eclipse 3.3 または Eclipse 3.4 上でのみサポートされています。

とのこと。 それならってことでEclipse3.4のAll-in-oneパッケージをダウンロードしたものの、なぜかインストールに失敗する。 どうも同様の現象は多数報告されているようだ。

Tipset » Eclipse 3.4.2にFlex Builder Plug-inを入れる

ここを参考にうまくいった手順を残しておくとする。

環境: WindowsXP / Flex Builder3.0.2

  1. Eclipse Packages | Eclipse Packagesから Eclipse IDE for Java EE Developersをダウンロードし適当な場所に解凍(eclipseというフォルダが作成される)。ちなみに日本語化は念のため最後に行う。

  2. Adobe - Flex 3から体験版としてFlex Builder Plug-inをダウンロード(バージョンは3.0.2)

  3. Flex Builder Pluginをインストールし、途中でEclipseの場所を聞かれるので上記のeclipseフォルダを指定。正常に完了したら次へ。(うまくいかないときは「Eclipseのconfigurationフォルダが必要です。」みたいなメッセージが表示される。)

  4. eclipseフォルダ内のeclipse.exeを実行し、左のプロジェクト・エクスプローラー上で「New」→「Project」としてFlex Builderの項目が存在することを確認する。確認できたらEclipse終了。

  5. NTTデータグループ・オープンソーススクエア - nttdatagroup-oss-square Wiki - nttdatagroup-oss-square - SourceForge.JP からNLpackja-eclipse-jee-ganymede-SR2-blancofw.zipをダウンロードし、2と同じ場所で解凍。

  6. 再度Eclipseを起動し日本語化されていたら完了。

どうも色んなプラグインが最初から入っていると失敗しやすいようなので、日本語化も最後に行った。Tomcatなど必要なプラグインは別途インストールする必要があるが、とりあえずこれで成功した。

続き

Home > Archives > October 2009

Search
Feeds

Page Top