データ分析チーム内でPython勉強会を始めた話


この記事は Feedforce Advent Calendar 2020 の 7 日目になる。6 日目はメンダコ氏による「三日坊主の私でも続けられているゆるダイエットの話」だった。
去年はゆるい糖質制限をして成果も出していたが、今年はコロナを言い訳に全く制限しなかったので、来年からはまたゆるい糖質制限に戻したい (願望)。

さて、勤務先の株式会社フィードフォースではここ1年ほどデータ分析チームを立ち上げた。データ分析をするにあたり、

  • データ分析チームは、社内の開発チームでよく使われている Ruby ではなく numpy など数値演算ライブラリが揃っている Python を使う傾向があること。
  • 目的スタートで何かしらの言語を学ぶとどうしても使うところのみ学ぶ傾向にあり、体系的に学ぶ機会が少ないこと。
  • 体系的に学ぶことでさらなる仕組み化が可能になり、結果としてよりクリエイティブな方向に時間を使えるようになること。
  • 自分自身、Python でサンプルコードを書くことはあってもそれ以上のアウトプットはなかったこと。

から、チーム持ち回りで Python 勉強会を始めた。

この勉強会に関して、勉強会の回し方、非エンジニアと勉強会をやってみた気づきなどについて緩くまとめてみたい。

課題書の選択

元々の課題感として、オブジェクト指向について説明しないといけない機会があり、そういった言語に依存しない概念的な部分を抑えるのであれば一つの言語を体系的に学んだほうが色々と捗るだろうというところになる。

データ分析チームはデータアナリスト1名、新卒の機械学習エンジニア1名という少数構成で、特に体系的にコンピュータサイエンスを学んできているわけではなかったので課題図書を選ぶのは若干悩ましかったが、中途半端なものを選ぶよりそれなりに定評があり、網羅的に書かれている

オライリーの「入門 Python 3」を選択した。

勉強会の回し方

やり方はシンプルで、データ分析チームに自分を含めた 3 名が持ち回りで週 1 時間、「入門 Python 3」の説明をしていく。

ただだらだら説明していくだけでなく、実際にコードを走らせて説明しなければいけないスタイルとした。

また、チーム外からも参加者を募っていて、質問があれば Slack のスレッドで質問し、データ分析チームのメンバーがそれに回答していくスタイルにしている。

実際にやってみて……

正直、データ分析チームだけのこじんまりとした勉強会になるかと思ったが、ソーシャルPLUSチームのビジネスサイド、広告運用部門である Feedmatic チーム、そして財務経理チームとそれぞれ異なる文脈を持つ非エンジニアの参加があり、チーム外からデータ分析チームの人数の倍以上の参加者を迎えられることとなった。

また、エンジニアのバックグラウンドを持つ自分からすると、普段何も考えずに使っている概念を改めて考えさせられる機会となった。

例えば文字列がイミュータブルで配列がミュータブルである、といったことは何も考えずに使っているが、なぜそうなのかをファイルとメモ用紙に例えて説明するなど、回答するにあたって結構考えるタイミングが出てくる。

そういう点では発見というべきか、改めて考える機会が多い機会となった様に感じる。

一方、言語を体系的に学ぶ上では目的が必須に思う。特にデータ分析チーム外の参加者に対してなぜそれを体系的に学ぶのかを見せられないといずれ飽きが来ると思っていて、そこが課題ではある。

実務ではどのように使うか、Python を使って手抜き自動化する上で気をつけるべき点などを都度エンジニア視点でフォローアップはしているが、そこの頻度をもう少し上げた方がいいように感じた。


明日の Feedforce Advent Calendar 2020 は人事マネージャなべはる氏による人事についての真面目な話。たぶんゲームか何かに例えた何かになると思っているので期待度高め。

また、先般 Engineer’s Principles を更新したので、更新内容について 24 日に書く予定。乞うご期待。