TitaniumMobile勉強記

Web系エンジニア向けのキャリアアドバイザーやってましたが現在はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連(Node.js、Titanium)あたり

ハンズオン形式の勉強会を行ったので事前準備や運営上の工夫をまとめてみました

先日ですが第一回目のJavaScriptステップアップ勉強会を開催しました。

ハンズオン形式勉強会開催は過去に2回やったことがあるのですが、いづれもある会社の方と協力してやる形で今回は告知から当日運営まで全部1人でやったので開催までにやったことを振り返っておこうと思います。

なぜやろうと思ったか?

先日書いたエントリで触れたのですが、以下のが主な理由かなと。

  • PHPRubyなどの言語を利用してWebアプリケーション開発をしてる方の中でなんとなくJavaScript苦手という方の何か手助けをしてみたい
  • 最近やっていた仕事を通じて以下のような情報をひたすら脳に詰め込んでいて、この情報を吐き出したい(※アウトプットしないとこれ以上インプットするのがツライっていうのが本音かも^^;)気持ちが強い
    • フロントエンドの開発をする時に知っておくと便利なツールが色々あることを実感
    • ある程度肥大化したアプリを適切な粒度に分けつつユニットテストを整備することでアプリの設計が意識できるようになる

当日までに行った準備

細かい所含めて色々準備したのでその辺りちょっとまとめておきます。

会場手配

勉強会・イベントで何度も利用させてもらってるCo-Edoでやることにしました。インターネットが使えて適度な広さとなると、Co-Edo以外の選択肢というのはちょっと考えづらいですが、我が家からだとCo-Edoまでちょっと遠く、ふと気になってぐぐったらこういう情報も見つけたので、次回以降開催する時に改めて調べ直してもいいのかな。

告知

過去何度も利用してるDoorkeeper通じてやりました。

自分の身近な人でおそらく参加してくれそうな人がいたのでそういう人に個別にお伝えして全部で4名位申し込みあればいいかなと思っていたら、何故かはわからないけどDoorkeeperによってプロモーション↓されることになったおかげで、その後、申し込みが一気に増えて、一時期キャンセル待ちもそれなりに発生するという嬉しい状況になりました^^

f:id:h5y1m141:20160421081612p:plain

ただ、その後にキャンセルされた方も結構いたので、最終的には全部で5名の参加者で、1人でやるのにちょうど良い規模になったかなと思ってます

原稿を書く

資料のサンプルコード通りにやってもうまく動作しないということが過去経験がありました。

何故そうなる理由としては自分で書いた資料を見て、自分でコードを書いてないからなのかなと思ったので今回は、

  1. 最初にサンプルコードを考えて、動作するものを作り、それは別ディレクトリにまとめておく
  2. 上記とは別のディレクトリで作業することを前提に説明文を書く
  3. 説明文の中で埋め込んだコードが期待するような動作になってるのか自分で手を動かして動作確認

という感じで書くことで回避出来た気がします。

説明の文章自体は、過去にQiitaなどで書いた情報があるのでそれをベースにしてるので、実はそんなに大変ではないのですが強いていうと、JavaScriptに苦手意識がある人にとってどういう所がわかりづらいのかが、自分自身でうまく把握出来てないので、どこまで図解しておくのがいいのかという所でちょっと悩んでしまった所が大変だったかなと思ってます。

作った資料の共有

Markdownで書いた内容をGitBookを使って資料を作っていたのですが、GitBookコマンドラインツールの使い方の情報がとても参考になり、ローカルでビルドしてGithub Pagesを使って以下のように公開することでいつでも閲覧できるようにしておきました

http://h5y1m141.github.io/step-up-javascript/

※サンプルコードと説明の時に利用してる資料一式も以下で公開してます https://github.com/h5y1m141/step-up-javascript

上記のWebは、予習・復習みたな位置づけにしようと思っていて、やはりハンズオンだと、手元に印刷された資料があったほうが作業やりやすいと思ったのでgitbookでPDF/epub出力できるようにする(calibre)を参考にこんな感じ↓でPDFを生成&印刷したものを当日配布。

f:id:h5y1m141:20160421081638p:plain

PDF版の改行位置をちょっと微調整

ちなみにGitbookでpdfとebookを作成するで改行がツライって書いてあって実際そうで自分の場合には

<div style="page-break-before: always"></div>

をうまく使って、これを挿入する箇所で改行させるという地味に面倒な事をやってひとまず対処しました。

資料の印刷

参考情報含めてすでに100ページ超えてる資料になっていたので、2ページを1枚で印刷したとしても50ページx10円→500円っていう状態は流石につらいので、ひとまず当日利用しそうな箇所に絞って30ページ程度にしました。

2ページを1枚で印刷しつつ、5円コピーというサイトで近所で5円コピー出来る所を探して

実施時のポイントと今後の反省点

当日の実施時に心がけたこととか、実施した後の反省点について簡単にまとめておきます

極力個別質問に答える

JavaScriptスキルアップみたいな題名にすると、参加される方の技術的なレベル感や期待感にばらつきがあると思ったので、こんな感じで、ホワイトボードに自己紹介的も兼ねて今回の勉強会に関係なくJavaScriptに関連して聞いてみたいこととか、日頃難しいなと思ってることなんかを書いてもらいました

f:id:h5y1m141:20160421081104j:plain

あとは、レベル感や期待感にばらつきがある状態の中で、講義形式で一律同じペースで話を進めるのはそもそも無理があるかなと思ったので、配布した資料を見ながら各自のペースで実際に作業してもらって、私は、各自の進捗を見ながら、個別質問に答える形にしました。

日頃疑問に思ってることをその場で聞けるような空気にしたいと思っていたので今回みたいな形で運営してそれなりの手応えは掴めた気がします。

開催後の反省点

ハンズオンでの最大の問題はやっぱり環境構築っていうのをつくづく実感。

基本的にvagrant upすればOKな状態のVagrantfileを作っておいたのですが、Windows環境でどうもうまくいかないことが当日わかった・・・

手元にすぐに起動できるWindowsマシンがないので、何故こうなるのかとか、どうすれば回避出来るのかとかが、ちょっと検証出来ないのがちょっとネックだから、仕事の合間にWindows環境を作ることを考えないとダメな気もしてきた。

終わりに

取り上げたいテーマについての原稿がまだ整ってないので今回はテーマを絞りましたが、次回からは、資料の中にある内容ならどこから手を付けてもOKな形にしようと思います。

資料の中で勉強したい箇所が同じ人同士をうまくグループ化&そのグループの中でコミュニケーションが生まれるようなスタイルというのをちょっと目指してみたいので、そんなことが出来るように今後も月に1回位のペースで開催していこうと思ってます。