descjop で遊ぼう day 13 : Clojure ワークショップでTAしてきた話

descjop (Electron + Clojure) Advent Calendar 2015 - Adventarの13日目です。

今回は番外編です。

Story Permalink

12月12日に、東京日本橋のサイボウズ株式会社にてClojureワークショップが開催されました。

主催は、サイボウズスタートアップの_ayato_pさん。

今回はワークショップということで、40人ほどいる参加者のうち、おそらく詰まった人は誰かと一緒に問題解決していくというスタイルになるので、TAと呼ばれる質問に答えたりする人が7人くらい運営側にまわりました。

僕もTAとしてイベントに参加してきました。

このワークショップ自体は夏ぐらいからじんわりとみんなで内容を詰めていって実現できたものなので感慨深いです。

当日用意されたカリキュラムはこちらになります。

どこにつまづく人が多いのか

まず、当日は初級者、中級者、上級者というざっくりとした区分けが行われました(そういう名前じゃなかったかもしれませんが...)。もちろんここでの上級中級とかいうのは、あくまでこのワークショップの独自判断での分類です。

初心者というのは、ほぼClojureはじめての人。

中級者というのは文法はわかっているので、実用的なサンプルを改造するという形で会に参加する人。

上級者は自分でやりたいことをやったり、アルゴリズム系の実装をしたりなどのお題がありました。

割合としては、初心者ほとんど(7割くらいいたんじゃないかと)で、中級者が少し、上級者ほんのちょっと(数名くらい?)という感じでした。

僕が見た範囲ですが、初心者でClojureでつまづく人は、エディタ(もしくはIDE)から、REPLに接続して実行結果が出るのを繰り返すという状態にたどり着くまでが一番苦心していたように思えます。

逆に、ここのプロセスを通過した人は、実際にコードを書き、その後評価をし、結果を返すまでを短いサイクルで繰り返すことになるので、たとえつまづいても、短時間で解にたどり着くケースが多かったようです。

Middlewareは一つのつまづきポイントかも

続いて中級者コーナーのところで悩んでいるケースが多かったのが、ClojureのRingとルーティングまわり。

RingとそのMiddlewareは、ClojureでWeb開発をするときに必要となるデファクトスタンダードなライブラリ&仕様です。

ルーティングから何が渡ってきて、どう処理されているのか、何が起きているのか、何が返ってくるのかがよくわからないという感想を持ったようです。

新しいルーティングを見よう見まねで作成すると、何か得体の知れないエラーが出てしまう。

このときに、エラーメッセージとともにスタックトレースが大量に出るのですが、ここで慣れていない人はエラーの原因自体を探せないようです。

関数が主体だから関数の使い方がわかれば話ははやくなる

引数の数が足りない、もしくはおかしいなどのエラーも見かけました。

この段階になって参考になるのは、コアコードやライブラリのソースコードとドキュメントだったりします。

mapという関数なら、REPL上から(docs map)とやるとドキュメントを見ることができますし、必要なら(source map)とやればソースを見ることもできます。

Clojureのドキュメントで

というのがあるのですが、これは使い方だけでなく、コミュニティ主導による実用例なども掲載されています。

mapの例でいうと、

このように実例も書かれています。これらを駆使し、わからないときはコードを見たりすると、何を渡せばよくて、何が返ってくるかわかるようになります。

今回はLispの方言であるという前提知識があってきてくれた人が多かったせいか、Lispぽいところがネックでどう読んでいいかわからないというような人はあまりいなかったように記憶しています。

Clojureは、括弧が複数種使われているおかげで、適切なインデントがあれば普通のプログラミング言語程度には読みやすくなると思います。

そのほか、チュートリアル的に

を片っ端から解いていっている人もちらほら見かけました。

4clojureは、一問一答式の穴埋め問題で、たとえば、

(= __ (.toUpperCase "hello world"))

上記の__の部分を埋めよという感じで問題が出ます。

ブラウザで解くことも出来るし、Androidならアプリもあります。

問題は沢山あり、簡単なものから難しいものまで様々です。

に取り組んでいる人もいたようです。

LTもしました。

最後、LTタイムがあったので、LTをしました。これは当日即興でつくったスライドです。

このアドベントカレンダーのことを一人でも多くの方に知っていただけたらと思い、紹介しました。

内容は、このアドベントカレンダーのこと、descjopのこと、Electronで出来たアプリの最新事情などです。

参加された皆さん、主催者の_ayato_pさんお疲れ様でした。

Colophon

編集長
Greative GK. 原一浩 ( kara_d )
製版システム
Clojure / Compojure / Ring / Enlive / markdown-clj / Jetty / MySQL
Share this magazine!
Follow designudge

Magazine Archives

vol.122

2016-2-01

Cover

台湾に行ってきました。

今回のカバーは、台湾にて撮影したものです。

自治体Webデザイントレンドこぼれ話 : ここだよマップ

CSS Niteの年末イベントShiftでやっているセッションにデザイントレンドというのがあります。

descjop で遊ぼう day 16 : Windows版のメニューを表示する

2015年の振り返り的な一人レトロスペクティブ

そういえば、まだ2015年の振り返りをマガジンに掲載していませんでした

編集後記

vol.121

2016-1-14

Cover

今回のカバーは、、、UFO?

自治体Webデザイントレンドこぼれ話 : 予告

CSS Niteの年末イベントShiftでやっているセッションにデザイントレンドというのがあります。

descjop で遊ぼう day 11 : Omのコンポーネントで遊ぼう

descjop で遊ぼう day 12 : Omのコンポーネントで遊ぼうその2

descjop で遊ぼう day 13 : Clojure ワークショップでTAしてきた話

descjop で遊ぼう day 14 : アプリケーションメニューを作ろう

descjop で遊ぼう day 15 : descjop 0.5.3をリリースしました

編集後記

vol.120

2016-1-14

Cover

今回のカバーも、初詣に行ったときのショットです。

descjop で遊ぼう day 6 : Electronがうまくダウンロードできないとき

descjop で遊ぼう day 7 : Hello Worldを出力してみるには

descjop で遊ぼう day 8 : Om basedテンプレートを使ってみる

descjop で遊ぼう day 9 : Om basedテンプレートにボタンをつける

descjop で遊ぼう day 10 : Om basedテンプレートにボタンをつけるその2

編集後記

vol.119

2016-1-10

Cover

今回のカバーは、初詣に行ったときのショット。

「descjop で遊ぼう」について

「descjop で遊ぼう」というのは年末にやったアドベントカレンダーのシリーズなのですが、前段としてまずはその解説をば。

descjop で遊ぼう day 1 : はじめに

descjop で遊ぼう day 2 : 3つのテンプレート

descjop で遊ぼう day 3 : 環境構築をしよう

descjop で遊ぼう day 4 : Helpを見てみよう

descjop で遊ぼう day 5 : デフォルトアプリケーションのビルドと起動

編集後記

vol.118

2015-10-22

Cover

今回のカバーは、Stack Overflow DevDaysのイベントをお手伝いしたときの窓からのショット。

Vaqum Web Design Review

創刊以来延々と続くWebサイトレビュー

ミカヅキClojure : ゼロからはじめるClojure入門第2回

Clojureっていうじつに面白いプログラミング言語をとりあげていきます

インフォメーション

おすすめのイベント・勉強会情報を紹介

編集後記

vol.117

2015-10-07

Cover

今回は散歩道からのショット

Editor’s Picks

designudgeで扱っている内容に近いジャンルのリソースのうち気になったものなど

U.S. Web Design Standardsを見てみる

今話題となっているU.S. Web Design Standardsの周辺情報など見てみました

Bootstrap 4徹底攻略 (3)

Bootstrap 4のアルファ版がでているので使おう

インフォメーション

おすすめのイベント・勉強会情報を紹介

編集後記

vol.116

2015-9-28

Cover

今回は帰省した際に通った三島からのショットです

Vaqum Web Design Review

創刊以来延々と続くWebサイトレビュー

みそじ過ぎからの英語再学習

40を目前に今までサボっていた英語学習をはじめました

Bootstrap 4徹底攻略 (2)

Bootstrap 4のアルファ版がでているので使おう

ミカヅキClojure

Clojureっていうじつに面白いプログラミング言語をとりあげていきます

インフォメーション

おすすめのイベント・勉強会情報を紹介

編集後記

vol.115

2015-9-13

Cover

前回と同じ開発合宿のショットから一つ

Vaqum Web Design Review

創刊以来延々と続くWebサイトレビュー

開発合宿へ行こう! : Python mini hack-a-thon 夏山合宿 2015

先週末に行ってきた開発合宿について書きました。

ミカヅキClojure

Clojureっていうじつに面白いプログラミング言語をとりあげていきます

インフォメーション

おすすめのイベント・勉強会情報を紹介

編集後記