Eat, Play, Nap and Code

食とあそびと昼寝とプログラミング学習

JavaScript Primer合宿とは何か

はじめに

こんにちは。 所属するフィヨルドブートキャンプ(以下FBC)にて、先週木曜まで10日かけてJS Primer合宿と称した短期集中型の輪読会を行いました。

jsprimer.net

JavaScriptの入門書である↑の書籍を、数名の方と一緒に読み進めました。 合宿と言っても泊まり込みで何かをしたわけではなく、Discord上で1日5-7時間の輪読会を10日間(途中休みあり)で読み続けるというイベントです。

予想通りめっっちゃ疲れたんですが、最終的にはやってよかったな〜と思ったので、どう進めたのか軽くメモしておきます。 JS Primerをこれから読む方、合宿を主催してみたい方、次の合宿に参加したい方の参考になったら嬉しいです!

目次

開催まで

以前から、ブートキャンプの新しいプラクティスに入ったとき、参考資料を読んでもあまり頭に入ってこなくてモチベーションを保てず、集中して取り組めずダラダラしてしまうという悩みを抱えていました。 プラクティスの取り組み方についてすでに完了している方に聞いてみたり、動画教材を使ってみたりと自分なりに工夫してはいたのですが、やっていることや取り組み方に確信が持てずいろんな教材に手を出して時間やお金を無駄にする日々でした。

しかし、日々他の受講生と雑談する中で、こういう悩みを抱えている方は自分だけじゃないことを知りました。

そこで、同じくらいのプラクティスの進捗の方と一緒に、おすすめされている教材を輪読形式で読むという案が思いつきました。 どうせ1人で何日も読むことになるのであれば、人と一緒に読んだ方が理解も進むし、記憶にも残るし、何より強制力があるのできちんと読み終えられそうです。

多少無理なスケジュールで集中して数日で読み終えようと考え人を募集したところ、異常にやる気のある方が3人集まってくださりすぐに開始させることができました(開始後に追加で3人ほど増えました)。

f:id:eatplaynap329:20211025163101p:plain
異常にやる気のある人々

全日程

当初の予定は5時間*5日(1日6章)で進めるつもりだったのですが、案の定計画通りに進みませんでした。 実際に進んだ範囲とかかった時間について軽くまとめてみようと思います。

10月10日(日) 1日目

読んだ範囲

初日から6章終えられていない!

学習時間

5時間

一言

初日なので各自目標を立ててもらいました。私の目標は↓の通り。

  • JS Primerを一周して、頭の中にインデックスを作りたい

  • ケンカ別れのないよう穏やかにやる😌

10月11日(月) 2日目

読んだ範囲

学習時間

5時間

一言

合宿参加者のやつはしさん(以下Yatz)がJS Primerのリポジトリに誤字修正のPRを送ってマージされていた!

10月12日(火) 3日目

読んだ範囲

学習時間

5時間

一言

参加者のタマキ (id:shirotamaki)さんも誤字修正のPRを送り、その日中にマージされていました!

github.com

私も気になったところがあったので、issueの登録をしてみました!(後日Yatzが修正PRを送ってくれてclose済み)

github.com

10月13日(水) 4日目

読んだ範囲

学習時間

6時間

一言

当初は木曜で終わる予定ではじめましたが、全く終わりが見えずちょっと疲れが溜まってきました!

10月14日(木) 5日目

読んだ範囲

学習時間

6時間30分

一言

関数の範囲に入ってから、参加者の中でもJSに馴染みがある人と知識ゼロの人との間で理解度に大きな差が生まれてきた感じがしました。

主催者の私自身が知識ゼロ側の人間だったので、分かっている方には申し訳ないと思いつつも、復習を挟んだり理解度を確認したりして、進み方を意図的に遅らせるように変えました。

10月15日(金) 6日目

読んだ範囲

学習時間

6時間くらい

一言

thisの章がとても難しく、まる1日かけてコードを読み進めましたが、最終的には「今のJSは分かりづらいのでなるべくthisを使わない方向に進化している」というがっかりなオチでした😭

FBC卒業生のMashioSano (id:mashoo1101)さんが書かれた記事にも、thisを変数に入れる手法を「徹底的に消していきたい」と書かれています…😭

jobs.enpay.co.jp

しかし、この日の副産物として、thisを理解するためにコールバック関数の動きやメソッドの呼び出し方を復習しながら丁寧に読み、結果かなりJSのコードが読めるようになったので無駄ではなかったと思いたいです…!

10月18日(月) 7日目

読んだ範囲

学習時間

6時間

一言

やっとクラス・例外処理まで終わりました! 前日のthisが大変だった分、この日はあまり苦労せずに済みました。

10月19日(火) 8日目

読んだ範囲

学習時間

7時間

一言

山場の非同期処理なので、最初から2日に分けて読むことに決めていたので時間をかけてコードを読み解きました。 参加者のMaedaさんも誤表記修正のPRを出してくれました。Gitの履歴を見て修正していて偉い!

github.com

10月20日(水) 9日目

読んだ範囲

学習時間

6時間

一言

やっと非同期が終わり、後1日で終わりそうなのでみんなホッとしました!!

10月21日(木) 10日目

読んだ範囲

学習時間

5時間

一言

やっと終わりました!この日はほぼ落ち穂拾い的な章だったので、リラックスして最終日を迎えられました。

初日に決めた目標に対しては、↓のような感想。

  • ケンカ別れせず楽しくできたのでよかった!

  • 頭の中にインデックスも作れたので、これから迷った時どう調べていけばいいか、MDNどう読めばいいかは分かった!

良かったこと

1番良かったのは楽しく学習ができたことです!ひとりで5〜6時間本を読むのは辛いと感じることのほうが多いですが、人と一緒にワイワイしながら読むと時間がすぎるのがあっという間でした。

そして、JSをまだ自由に書けるには程遠いですが、かなり基礎知識が付いてコードが読めるようになったのは良かったです。 全部で9個あるFBCのJSのプラクティスのうち7個は、合宿後すぐに終わらせることができました。

JS Primerを1度読んだからといってメチャクチャJSが書けるようになるかというと私の場合そうでもなかったですが、合宿中に分からない箇所を周りの人にしつこく聞いたり、自分が理解できたところをコードを解説しながら人に教えた経験によって、普通に読むより理解が深まったとは思います。

あともちろんJS Primerに微力ながらコントリビュートできたのもとても良かったことのひとつです〜!

反省点

反省点はめちゃくちゃあります…。まず時間をかけすぎました。 最初から10日の予定で進めていたわけではなく、「終わるまで」という適当すぎる日程で進めてしまったため、メンバー全員の精神的負担になっていた気がします。 次やるときは、事前に決めた日程をきっちり守るようにしたいです。

そしてJS Primerに関して言うと、難しい範囲だけ輪読会で読むような進め方でも良さそうだったと思います。 個人的に難しいと思った範囲は↓です。

また、事前告知をほぼしないまま知ってる方に声をかけてスタートさせてしまったため、もっと多くの方に周知した方がよかったなとも思いました。 同じくらいの知識・モチベーションの方がもっと集まれるような工夫をしていけたら最高ですね!

おわりに

合宿スタイルのオンライン勉強会はためになるし楽しいので、これからも頻繁に開催したり参加したいと思ってます〜!

次は私がJSのプラクティス終わり次第、Vue.jsの合宿をやろうと思いますので、参加希望者は心の準備だけしておいてください!!!