開発室のエンジニアリングサポートの五十里です。普段は情シスのような事やRを書いたり、サーバーをいじったり、部署内の開発系関連のツール等を管理したり、gasを書いたり何か色々やってます。

ナイルに来るまでは、自社開発自社運営のアクセス解析ツール屋でアクセスログの解析をしていたり、重機(25tラフタークレーン)の模型につられて建設関連会社で働いてました。安易な転職ダメ絶対です。

ナイルでは部署を超えた様々な社内勉強会が開催されており、過去にはデザイナーによるUX勉強会や、エンジニアによるSQL勉強会などがありました。そこで、先日は社内の非エンジニア向けにJupyter NotebookとRを使っての統計学の勉強会を開催しました。

Jupyter Notebookとは

Jupyter Notebookは、様々なところで話題になっていますが、ブラウザ上で動く対話型のデータ解析環境です。

現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ

Jupyterがすごい勢いでやってくるからお前ら備えとけ

様々な言語のカーネルと連携させる事で、ブラウザ上でコードを書いてその結果を記録・共有するのに非常に向いています。そこで社内の統計学の勉強会やプログラミングの勉強会に使ってみましたので、いかにJupyter Notebookが統計学やプログラミングの勉強会に向いているかを社内勉強会の様子とともに説明したいと思います。

事前の準備

今回はインフラチームに、リモートサーバーを準備してもらいその上にJupyter Notebookをインストールしてもらいました。これでURLを共有する事でみんなで同じNotebookを見られ、さらに各自でNotebookを作成できるようになりました。JupyterNotebookのキャプチャ(もちろんScalaで書く事もできます)

勉強会の流れ

今回の勉強会の参加者は、インターン、役員から人事、サポート、コンサルタントやディレクターなど様々な人達にご参加頂き、予想以上の人数でした。

また、統計学と言っても範囲が広いのでひとまずは記述統計学の範囲に絞り、細かい部分は色々端折ってざっくりと前半は30分ほど統計学(記述統計学、推測統計学)とデータマイニング、機会学習のざっくりした関係を説明して、記述統計学の基本の代表値とグラフの説明をしました。

後半は60分ほどで前半のスライドで説明した代表値やグラフを出すコードとコードの説明が書いてあるNotebookを見本に、各自に自分のNotebookを作成してもらいコードをコピペしていってもらうという流れでした。

Jupyter Notebookのキャプチャ

数式やコードの羅列に拒否反応がある人がいるかな、とも思っていたのですが、その心配も杞憂に終わり。皆さん短い時間で一連の流れを完了できました。

まとめ

ほとんどの参加者が初プログラミングの中、インプットしたもののアウトプットがすぐに表示される対話型の開発環境はとっつきやすいのかなと感じました。

特に記述統計学の範囲であればアウトプットの結果の意味もわかりやすいですし、グラフなどインパクトのあるものが表示されるというのは初めてコードをいじる人にも楽しそうでした。『コピペでプログラミングなんて言えるの?』といった声もありましたが、コピペ(写経)こそプログラミングの第一歩ですw

非エンジニアにとってプログラミングを学ぶ際に大きな壁である開発環境の準備ですが、リモートサーバー上にJupyter Notebookを用意すればそれだけで同じ開発環境が揃ってしまうので、統計学に限らず初歩のプログラミングの勉強会にも利用できるのではと思いました。

それ以外にもマークダウンで説明が書けたり、Latexで数式が簡単に書けると言った点もJupyter Notebookの統計学の勉強会に向いてるところですね。

今回の勉強会でJupyter Notebookの汎用性の高さを改めて実感したので、今後もJupyter Notebookを布教していきたいものです。