Lean Baseball

No Engineering, No Baseball.

「Pythonもくもく会を一年運営した」ふりかえりとこれから #rettypy

f:id:shinyorke:20180715171308j:plain

めちゃくちゃ暑いですね...こんばんは、野球とPythonの人です.

私が主催として昨年からはじめた「Pythonもくもく自習室」ですが、前回(7/14)で無事に開催一周年を迎えました.

(写真はその一周年の成果発表タイムです)

参加者の皆さま、快く会場を提供してくださっているRettyの皆さまそして、「#rettypy の慈悲深き終身主催者」である私に付き合って運営に協力くださっているiwanagaさん、takenoさん、tsutsumiさん、本当にありがとうございます!

TL;DR

やってて良かったもくもく会、良い学びも多いのでこれからもガンガンやります!

※ただし、飽きたら(やる気を無くしたらorできなくなったら)辞めます

おしながき

もくもく会について

もくもく会についての一年のふりかえりとこれからについて.

【おさらい】Pythonもくもく自習室 #とは

Python(とその周辺に関する何か)について、自分でお題を持ち込み、もくもくする会です.

週末の昼下がりに、Pythonに関するやりたいことを各自持ち寄り、ゆるゆると「自習」を進めていく会です。

  • 本を読む

  • PythonやDjangoなどのチュートリアルをすすめる

  • コミュニティの作業や執筆etc...

他の参加者と情報交換をしたり学んだり

おいしいご飯と共に楽しむ(?)

など、Python使いおよびエンジニアライフのオアシス&知見を身につける「自習室」としてゆるくご活用いただければと思います。

※イベントの説明文(テンプレ)より引用

昨年(2017)7月に、(当時Rettyの社員だった)私が「#pyhack*1みたいなもくもく会をやりたくて」はじめた会です.*2

はじめた時の経緯や会の主旨などは、過去にこのブログでも紹介させてもらっていますのでこちらを御覧ください.

shinyorke.hatenablog.com

このエントリーでは「はじめて一年を経過して」からのdiff(差分)と今のお気持ちを語ります.

一年間のふりかえり

唯一のフル出場参加者*3なので(主催なのでそらそうよ)、気がついたことが結構あります.

参加者の「自主性」を促す&助ける

週末の昼下がりに、Pythonに関するやりたいことを各自持ち寄り、ゆるゆると「自習」を進めていく会です。

※イベント説明文より

このもくもく会で一番重要視している価値観であり、参加する方全員に守ってほしい決まりごとです.

会の主催・運営・ファシリテートにランチ・おやつ・成果発表.

これらは全て,

参加者の皆さんが「自ら持ち込んだテーマを気持ちよく進めるかつ,学びが残るようにするためにはどうすればよいか?」

という原点に立ち返って決めて実施していると同時に,参加される方々の「自主性」を助けるモノでしかないと思っています.

幸いにもその想いが伝わっているのか,今日に至るまで「参加者の自主性」は保たれているような気がします.

参加者のツイートや成果発表,後日の感想ブログを拝見する限り,

  • 集中してもくもくができた
  • 学びが多かった
  • また行きたい

という感想が多く見受けられるので,今後もこの価値は大切にしていきたいと思っています.

イイゴハン(ランチ・おやつ)

ランチとおやつについて

参加者同士の交流を深めたり,学びを増やすと同時にRettyを会場にしているもくもく会なので,ランチとおやつを重要視しています.

ランチについては,

  • 2〜4グループに分かれる*4
  • 各グループは私もしくはRettyメンバーがランチに引率する*5
  • Rettyメンバー(と元Rettyの私)がオススメする麻布十番ランチを楽しむ

スタイルで行っており,これは人気のコンテンツの一つとなっています.

「食を通じてエンジニアリングの学びを深める&楽しめる」もくもく会は#rettypyが唯一無二の存在、と本気で思っています!

また,途中で提供するおやつタイム(おやつ代は参加者のドネーション)についても,私自身が前日まで考慮しつつ季節やトレンド,予算感を考慮し工夫してやっています.

ランチ&おやつセレクション(Twitterより)

そんなランチ・おやつはこんな雰囲気です.

参加者の多様性

「慈悲深き終身独裁主催者」としては,

良いごはん屋さん,良いお店には良い常連がいる...というのはよくある話だと思いますが,

もくもく会でもこの空気を作るべく,「強者」「Pythonコミュニティスタッフ」「常連」という枠を設置しました.

継続して学ぶもくもく会つくり〜Pythonもくもく自習室 @ Rettyオフィス #rettypy - Lean Baseballより引用

という,「放っておいてもPythonに関して強い・コミットしている」人たちを巻き込みつつ,

  • 初心者の方
  • はじめて・二回目ましての方
  • Python以外のエンジニア・データサイエンスコミュニティから来る方

などを誘致・バランスよく巻き込みつつ,「どうやったら面白いもくもく会を作れるか?」というチャレンジに心がけてきました.

具体的には,

  • 参加枠を細分化(強者・コミュニティスタッフ・etc...)
  • 抽選・指名枠のフィルタリングを最適化(これは企業秘密)

を繰り返しながら参加枠を毎回調整しています.

現状の進捗としては,前回(7/14)はこんな感想が来るところまで来ました.

私が記憶にある限りでも,

  • 大企業から中小企業,スタートアップに個人事業主まで
  • Web,製造業,メーカーetc...
  • 学生
  • バックオフィス系の業務をされている方(総務、人事など)
  • 弁護士

平たく言うと、

商売でエンジニア・プログラマーしてる人じゃない方も結構来ている!

という世界が出来ています.

Pythonそのものが「もはやエンジニア・プログラマー"だけ"の道具じゃない」風潮になってる面も見逃せない所なのですが,

「エンジニアがはじめたエンジニアリングのもくもく会」

でエンジニアとは違う層の方が毎回何かしら来ているのはホント面白いなと思いました.

参加者のモラル(いい事・辛いこと)

参加者の多様性が増すといい事も辛いこともあるなという事に気が付きました.

いい事

もくもく会全体としては,一年続けた結果良い空気・文化が少しずつ芽生えてきてるかなと思えるような事も増えてきました.

  • 成果発表,ランチの会話などではじめての方や初心者の方を自主的にサポートしてくれる人が増えてきた
  • もくもく会の運営ややり方などについて,アドバイスや建設的なご意見をいただく機会が増えた
  • 「類は友を呼ぶ」じゃないですが,強者が強者を呼ぶ,みたいな流れも出来た

つらい事

一方で,モラル面においてつらい事・悲しいことも少しずつ出てきています.

参加者・登録者の中のほんの数%の人々ですが,

  • (だいぶ減ったとはいえ)前日・当日キャンセル(無言を含めたドタキャン)*6
  • 遅刻した時の対応*7
  • 他の参加者の方にとって不快(と思われる)ような言動や行動

を行う方が毎回1〜2名はいるんじゃないかなあ?と思っています,悲しいことに.

参加者を公募して行っているイベントである以上,避けられない事ではあるのですが,参加者やサポートしてくれる皆さまの迷惑や不利益に繋がらないようにしたい、というのは主催者としての最低限の責任であると思っているので参加者のフィルタリングや注意喚起で改善回すかなというのが正直なところです.

運営の変遷

開始した昨年7月から今年の1月までは(当時Retty社員だった)私が単独で主催&運営していました.

平たく言うと,会場確保から手続き,募集にファシリテート全てを私がやっていました.

社内の参加メンバーについては,

  • 参加実績あるメンバー(takenoさん他)にそっとカレンダーで予定入れる(FYI的なノリで)
  • エンジニアが多くいる社内Slackチャンネルで周知

という形でメンバーを募り,来てくれた人たちにランチの引率や運営のお手伝いをお願いしていました.

私がRettyを退職して現職(ネクストベース)に移ってからは,

  • 運営メンバーのチャット部屋で開催日を決定する)
  • 会場関係の準備(手配・設営・最終的な片付け)はRettyメンバーが担当
  • 会場以外のこと,connpass管理(参加者抽選なども含む),当日のファシリテート等などは私が担当
  • ランチの引率は全員で

というスタイルに変わりました.*8

毎回takenoさん,iwanagaさんに手伝ってもらっているだけでなく,4月から入社した新卒のtsutsumiさん*9もいい感じに巻き込み運営メンバーが増えた事は私にとってすごく嬉しいのと感謝以外の言葉が見つからない感じがします(涙).

という事情もあり,私のワンオペ時代とくらべ運営は大分楽になりました.

なお,運営メンバーの間の明確なお約束ごとは特に明文化していませんが,

  • 気楽にやる(無理をしない)
  • 辛くなるようなことはやらない

ということは主催として大切にやっています.

これからのこと

自主性・多様性を大切にしつつ,今のまま改善を繰り返しながら続けて行きたいと思っています.

なお,次回も既に決まっています.

retty.connpass.com

PyCon JP 2018開催前に,登壇者やスタッフの方々の為に何かしらの支援ができたらと思っています.

発表の練習がしたい,スタッフ同士のMTGがしたい,アドバイスがほしい等など...特にPyCon JPがはじめてでスタッフや登壇・LTする方は是非いらしてください.*10

もくもく会の参加人数や日時は基本変えない方針*11ですが,参加枠や抽選,ランチ・おやつ・成果発表のスタイルはちょいちょい変えつつより良いもくもく会を目指していきたいと思っていますので今後もよろしくおねがいします!

私自身の感想とこれから

最後に私自身の感想とこれからの方針などについて.

コミュニケーション・交流を楽しみに続ける

私自身はこの会で「もくもくをする」事よりも,

  • 参加者の皆さんとコミュニケーションを取る
  • とにかく会話をする(もくもくの邪魔にならない程度に)
  • 困っていること・助けてほしいことをサポートする

を通じて楽しみ続けたいと思っています.

理由としては,

  • 先人たち(#pyhackなどに参加し始めた頃)の良い行動・スタンスを見習って真似していきたい
  • 得た知見や経験などをPython界隈ひいてはエンジニア界隈のために活かしたい
  • 自分の「もくもく」そのものは他のもくもく会や自己学習の時間で担保するようなセルフマネジメントを目指したい

といったあたりです.

一般の参加者の方々はもちろんのこと,私個人としてはRettyを退職した今では「月に一度,Rettyエンジニア陣と技術やエンジニアリング,食のことについて交流できる貴重な時間*12」でもあるので,このタイミングはめちゃくちゃ楽しみに過ごしたいと思います!

「#rettypy の慈悲深き終身主催者」を貫く

この発言の元はこれです.

物事を決めてやりきるのはすごく大事で,色んな人がいて揺れやすいコミュニティだからこそ,

「俺が決めたことが全てやぞ!(責任は俺が持つ)」

ぐらいの「終身的な主催者」の存在は必須だと思っています.

当然,周りの意見は提案は聞きますが最終的にはワイが決めるぞ,そのかわり良い世界作るしなんかあったら責任持つ!!!

という気持ちを貫ける様これからもやっていきます.

という訳で,この一年間に参加したりサポートしてくださった皆さまありがとうございました!!

&来年の今時期に二年目の宴が出来るよう,今後共どうぞよろしくお願い申し上げます!!!

*1:Python mini Hack-a-thonのこと.Python関係では一番老舗のもくもく会です.

*2:ハッシュタグの名前に「Retty」と入ってますが,会社云々とは関係なくでっち上げてはじめました.ちなみにタイトル「Pythonもくもく自習室」は大切にしている価値観(参加者の自主性)を表す言葉が「自習室」と思い名付けました(&Pythonもくもく会は既に #mokupy が予約済みだった)

*3:次点が2回目以降フル出場のtakenoくん,その次が多分ランチ引率おじさんのiwanagaさんと記憶しています,一般参加者は多い人で5回越えてる?そんな感じ

*4:1つのお店に全員が入るor会場にお取り寄せが理想という考え方もありますが,お店さんのキャパシティや負担,お取り寄せの煩雑さなどを考慮するとこのスタイルがベストという判断にしています.

*5:元メンバーの私含めて,引率できて当然やろ!っていう思いの元やってます

*6:過去3回のドタキャンが回あたり1〜3名なので大分減った感じはありますが,前日・当日キャンセルがなくならないのは事実.

*7:ここでは明記しませんが,前回入場時にちょっとしたトラブル(ヒヤリハット)がありました

*8:理由は明確で「私がRetty社員じゃない以上,会場の確保と準備ができないが、それ以外のことはすべてやれる」これに限ります

*9:内定者時代からもくもく会に参加してくれていたのと,入社と同時にtakenoさんや私が勧誘したのも効いているかもしれません笑.いずれにしても仲間入りはすごく嬉しい

*10:PyConJPの登壇やスポンサー担当としての相談やサポートは普通にできますので気軽にどうぞ

*11:人数については会場・ファシリテートの都合で現状がMax、むしろ2-3人程度減らすことも考えています&日時はやはり土曜日夕方までが理想的

*12:お仕事の話もちょいちょいありますが,登壇資料やら執筆した原稿のレビューしてもらったり感想聞いたり,技術トレンドの話になったりと一人エンジニアしている自分にとっては大変貴重な機会であったりします(社内で話せる人がいないので)

「Dockerによるアプリケーション開発環境構築ガイド」はプロのエンジニア必読の一冊だ(断言)

f:id:shinyorke:20180620221127j:plain

マイナビ出版社様および、著者(かつ、私から見たら元同僚)の櫻井さん(このエントリーではこの後sakuさんと称す)*1のご厚意により、一冊頂戴いたしました.

Dockerによるアプリケーション開発環境構築ガイド

Dockerによるアプリケーション開発環境構築ガイド

ありがとうございます!

結論から言うと、タイトルの通り

プロのエンジニアを名乗って一人前に仕事するなら一冊個人なり会社なりで持っておけ!!!

っていうくらい(元同僚バイアスを抜きにしても)よくできている本なので、感想(書評)と自分のDockerなお話を書きたいと思います.

TL;DR

  • Dockerはじめての人も使ってる人も「Dockerによるアプリケーション開発環境構築ガイド」は手元においておけ、それぐらい良い本だぞ!
  • サーバーサイドの人はもちろん、フロントエンドもデータサイエンスもエンジニアはDocker使いこなせると楽できるぞ

おしながき

私のDocker歴

後の方(Appendix)でも細かく書きますがザックリ言うと、

  • 自分がやりたいことは一通りやれる、なおKubernetesはまだ使ったことない(これからやる)、というレベルです
  • Dockerは2015年(3年前)から本格的に使い始めた
  • はじめは個人プロジェクトと自分のPCの開発環境に、Rettyに入社した2017年より本番での保守・運用を実践(ゼロから開発もやった)
  • サーバーサイド(Python/PHP)、フロントエンド(node.js/Vue.js)、データサイエンス(Python/Airflow/Luigiで基盤作った)で運用経験あり
  • 拙作で恐縮ですが、AirflowのDocker ImageをDocker Hub上で公開しています

「Dockerによるアプリケーション開発環境構築ガイド」の感想

感想をザックリ書くと

初心者がDockerを覚えるのにも、中〜上級者がDockerの使い方や運用のヒントを得たい時にも使える非常にバランスが良く取れた良著です.

そもそもどんな本なのか

本書は主にDocker初心者〜中級者の方に向けて、Dockerの概念やコマンドについてはわかってきたんだけど、じゃあ実際にどういうふうに現場で使えるの?といった疑問にお答えするための書籍となっております。

Dockerによるアプリケーション開発環境構築ガイド「はじめに」より引用

ホントこの通りの本で、コンセプトから終始ブレていないかつ、絵図が多い&解説も程よいこともあり、読みやすい本です.

(私がRettyにいた去年に)sakuさんからDocker本を書いてる&コンセプトも軽く立ち聞きしてたので個人的にはホント楽しみにしていたのですが、いい意味で期待値通り(いやちょっと越えてる)本で興奮しました.

目次と概要

章ごとに何が書いてるかという簡単な解説を.

Chapter01:Dockerとは

タイトルの通り、「Docker #とは」という内容.

コンテナ化・Immutable InfrastructureといったDockerに欠かせない思想・考えから二章(Chapter02)以降の内容に進むための準備・必要知識について書かれています.

Chapter02:Dockerの基本的な使い方

Dockerのインストールからコマンドの解説、イメージの作成・レジストリ共有、Docker Composeによる簡単なコンテナの管理について

Chapter03:オンプレの構成をコピーしたDocker環境を作成する

オンプレで動いてるサーバー環境をコピってDocker環境を作るのがメインコンテンツ.

Baseimage-dockerを使ってみよう!というチャレンジから始まる

Chapter04:本番環境からローカルのDocker環境にポーティングする

AWSやGCPで作った環境をアプリケーション・サーバーのみならずDB含めて完全にローカル環境に作っちゃおう!という説明.

この本のオリジナルなコンセプト・思想が味わえる醍醐味ある章です.

Chapter05:ローカルのDocker環境を本番環境にデプロイする

ローカルで最初からDocckerベースで環境構築→本番のクラウド環境に対してデプロイする流れからのKubernetes入門.

これは今求められてる(&私がすごくやりたい)内容.

Chapter06:Appendix

Dockerfileのデバッグ、CIベースのイメージビルド、プロキシやホスト容量問題への対処法etc...

開発者なら一度はハマるポイントが載ってる.

所感・感想

ザクッと箇条書きで

網羅性が高い

Docker初心者が思うところである、

  • Docker何それ美味いの?
  • インストール〜動かすまでどうやってやるの?

という初歩から、ちょっと使い慣れると考える(&ハマる)

  • Dockerfileのお作法とかdocker-composeの使い方など、細かいところ
  • 今あるオンプレの鯖からDockerに載せ替えたいのだが?
  • Kubernetesって何者&どうやって始めればいいの??

っていうポイントまで網羅的かくポイントを外さずもれなく書いてある辺りがホント良い本です.

(多すぎるPython本*2ほどではないにしても)Dockerもそれなりに本が多く、どれをチョイスするか悩ましいポイントもありますが、最初の一冊として相応しいのではと思いました.

細かいことを知りたくなったときは他の本を読む、Docker使いが多そうなコミュニティ*3に行くなど、そういう選択肢を取りながら使うのに良いんじゃないかと.

サンプルコード・絵図が充実している

ちょっとわかる人なら、本文をサラッと読んで絵図とコードを見て進められるのでは!?

っていうくらいサンプルコードや絵図がわかりやすく書かれていて良いと思いました.

私は全体把握がてらサクッと斜め読み*4したのですが、それでも内容が残るぐらいわかりやすかったです.

初心者だと初手では辛そうなAWSアカウント作りやサービスを使う部分もスクショを交えて解説してるのでサクサク進むのではと思います.

辞書代わりに使える(中級者以上の人は特に)

  • オンプレから移行どうしよう
  • Kubernetes使いたい

みたいなシチュエーションの時に「わかってるところ」を飛ばしつつ、「わからないところ」を読んで理解してすすめる、みたいな使い方がしやすい印象を受けました.

章ごとのコンセプトが明確なので、「読むべきところ」「飛ばしてもいいところ」がわかりやすく別れてるのではと.

私は今後Kubernetes覚えて使いたいので六章ちゃんと読んで覚えるぞ!みたいな判断がしやすいのは非常に助かります.

本自体は400ページ超えの大作ですが、ページ数ほどの重さは(いい意味で)無いので良いかなと思いました.

これからDockerをやろうかな?と思った方へ

Dockerによるアプリケーション開発環境構築ガイド」を使った具体的な進め方と個人的なアドバイスを2つほど.

「Dockerによるアプリケーション開発環境構築ガイド」の二章まで手を動かして理解しよう

これは私の経験則ですが、Dockerを仕事レベルで使うなら、

  • 自分で作ったモノ(アプリとか)を含めたDockerコンテナをローカル環境で動かせる
  • 動かすためのDocker imageを自作のDockerfileからビルドして使う
  • Docker Composeで複数コンテナをコントロールする

ぐらいできれば何とかなると思います.

という意味ではこの本の二章をちゃんと理解できたら何とかなります.

ということで、

  • なにか適当にWebアプリを作る(DjangoでもRailsでもnode.jsでも、得意な言語で良い)
  • 適当に作ったアプリが動くDocker imageを作る
  • DBを含めた環境をDocker Composeで立ち上げて動かす(ローカルでOK)

ぐらいまでやれればよいのではと思います.

「プロのエンジニア」として、「手を動かして、自分の理解範囲で意のままにDocker使えるぜ」っていう状態まで持ってきたらその後の事もやりやすいんじゃないかなと思います.

身近の詳しい人に教えを請う(コードレビューなど)

Dockerもだいぶ枯れてきた技術で、使ってる人も慣れてる人も3,4年前と比べれば増えていると思います.

ので、職場なりコミュニティなりで使ってる・詳しい人の教えを請うのが覚える&実践する近道かと思います.

これは私がRettyにいたときのエピソードなのですが、社内Slackのtimesチャンネル(times_shinyorkeという名前でやってた)にて、

ワイ「よっしゃ!アプリとDockerfileできたしimageビルドしてローカルでも動いたから開発環境にデプロイするぞ」

sakuさん「お、ちょっと見せて」

ワイ「ファ!?(と言いつつリポジトリのURLを渡す)」

結果、sakuさんから沢山のコメントを貰う→直してレビューしてもらってLGTMをもらう、という事が何回かあり、まさにこの本に書いてあった事もいくつか学ぶという事がありました.

社内にDocker警察エバンジェリストがいるってのはホントに大切ですね!とこの時は思いました.*5

そんなsakuさんが書いた「Dockerによるアプリケーション開発環境構築ガイド」ホントにオススメなので、夏の課題図書にぜひぜひ読んでみてください!

Dockerによるアプリケーション開発環境構築ガイド

Dockerによるアプリケーション開発環境構築ガイド

【Appendix】私とDocker

この先は「私とDocker」というちょっとしたメモです.

馴れ初め&Docker歴

  • 覚え始めたのが2014年、このときは使いこなせず
  • 翌年(2015年)に当時在籍していたリクルート(SUUMO)の社内勉強会でDockerをやることに→「中川やってよ!」っていう話で独学して覚えてなんとか使えるように
  • PyCon JP 2015のデータ分析環境(野球)をDockerで作ってAWS上で運用、これが事実上のDockerデビュー
  • その翌年2016年(ビザスク時代)にE2Eテスト環境(ローカルで実施)をDockerベースで構築・運用(Docker得意なインターン生と共に共作)
  • Rettyにいた去年(2017年)はすでにあるDocker環境(PHPだったりnodeだったりPythonだったり)を保守運用、データ管理の基盤をDocker + Luigiで構築・ローンチ
  • PyCon JP 2017の発表で使ったAIrflow環境をDocker Imageにして公開(コードと共に)
  • 現在(ネクストベース)では手元の環境を全部Docker化しつつ、本番への展開などをもくろんでいる

実績(仕事)

やった仕事レベルでいうと、

  • Webアプリケーション・サーバー(Python)
  • node.jsのビルド環境(社内配布用)
  • E2Eテスト環境
  • データ分析環境(Redash)
  • データ基盤

Redashは当時在籍していたビザスクのブログにて書きました.

tech.visasq.com

また、データ基盤については去年Rettyのアドベントカレンダーに書きました.

qiita.com

実績(個人)

このブログ内の野球エントリー及び過去の野球アプリをDocker化.

例えばAirflow

shinyorke.hatenablog.com

Djangoのアプリも(これはちょっと古いので作り直したい)*6

github.com

*1:だいたいみんなそう呼んでる気がする.ちなみに日本酒担当(元とんかつ担当)で、日本酒のことも沢山教わりました(感謝!w)

*2:今年さらに増えたのでもう一度書評エントリーを書きたいお気持ち(質問とか増えてる)

*3:Dockerそのもののミートアップもいいかもですが、meguro-devあたりが良さげ?sakuさんもメンバーなので.ちなみに#rettypy も聞けそうな人はちょいちょい居ます(私とか)

*4:というかすべての技術書を斜め読みから始めるのが私のスタイル

*5:これを社内ボランティア?オーナーシップを持ってやってたsakuさんがホントに偉いしエンジニアとして素晴らしいと思った瞬間でした

*6:Django 2.0 + Vue.jsでなんとかしたいお気持ちがあります、やるかどうかは気分と時間次第

すべてのエンジニアに「言語化」「選球眼」の大切さを伝えたい!という話 #PyDataOkinawa #PyBegiOkinawa

f:id:shinyorke:20180618195334j:plain

ワールドカップと野球、絶妙にタイムゾーンが違ってて丸一日楽しい私ですこんばんは.*1

沖縄から帰ってまいりました.*2

以前のエントリーで「基調講演するよ!」と話をさせてもらった 「PyData.Okinawa + PythonBeginners沖縄 合同勉強会」ですが、(悪天候にも関わらず)沢山の方々にお越しいただき*3、本編から懇親会(二次会含む)まで楽しくやらせていただき無事終わりました.

pydataokinawa.connpass.com

PyData.Okinawaおよび、Python Beginners沖縄の皆さま、スタッフそして応援していただいた皆さま誠にありがとうございました!

このエントリーでは、そんな合同勉強会の振り返りと、私のエンジニア哲学である「言語化」「選球眼」について軽くポエムしたいと思います.

TL;DR

  • データサイエンスの人もWebの開発者も、すべてのエンジニアは「言語化」「選球眼」を大切にしてほしい!
  • 沖縄のエンジニア・コミュニティは相当アツいので仕事or観光のついでに行くと楽しいぞ

おしながき

発表と勉強会について

自分が発表した内容と勉強会の雰囲気を少々.

【基調講演】エンジニアの選球眼

speakerdeck.com

基調講演デビューしました.

私がPythonやアジャイル(特にリーンスタートアップ)、仕事そしてコミュニティで様々な経験をして学んだ中でもこだわりがあった、

  • プロセス・技術を「目利き」して「選んで」やりきる「選球眼」
  • 物事をはじめるときには何よりも「言語化」「ストーリー作り」が大切

というお話をさせてもらいました.

自分がこだわっている「選球眼」「言語化」を起点として、

  • 技術選定の審美眼」にある、「変わるもの×変わらないもの」「Simple/Easy」という話って見極める(識別する)目のことだよね?
  • 仕事ではじめる機械学習」の第一章より、「問題を定式化する」「機械学習をしなくて良い方法を考える」を読んで思った「ユーザー価値を実現するための技術の使い方と言語化の大切さ」を自分なりに改めて言語化したい
  • 言語化といえば「アジャイルサムライ」、データ分析プロジェクトという視点で改めて構造的に言葉にする大切さを伝えたい

というモチベーションの元、得意の野球分析を絡めつつ作りました.

スライドは前々日に完成、勉強会のメンバーそして元同僚の@takegueさん*4にレビューをお願いして無事なんとか発表ができました.

PyData.Okinawa + PythonBeginners沖縄 合同勉強会

合同勉強会の様子は運営メンバーの@Intel0tw5727さんが早速ブログにまとめて頂いてるのでそちらをご覧いただければと.

twdlab.hatenablog.com

ここでは開催前から当日、懇親会までの話をざっくり.

開催前

きっかけは一通のメッセージでした.

「野球エンジニア」として夢を実現された中川さんは学生に夢を実現する手法をレクチャできる稀有な方と思っております。

(中略)

沖縄で機械学習エンジニアを目指す学生や社会人に学びの機会を与えて頂きたいと考えております。

※オファーのメッセージより抜粋

デブサミの話および、過去の野球データ解析の話が世に広まり、これが主催者に刺さってオファーが来ました*5

(機械学習エンジニアではないですが*6)オファー内容に納得感があったこと、昨年の合同勉強会で登壇されたPyData.Tokyoの山本さんにも色々と情報や感想を伺った上で受けることを決めました.*7

準備はスライドを作るぐらいでしたが、結構スライド作りが難航しました.*8

なお、台風接近の中移動しましたが、幸いにもコースとか色々ハズレたこと、(何かあったら嫌と思い)移動を前日(前乗り)にしたのでノートラブルで到着しました.

当日

移動は宿からタクシーで.思ったより安く済みました.*9

途中歩いて移動しました(散歩がてら)、琉球大学はとても広く、こんな案内もあって軽くgkbrしました(震え*10

着いてしばらくして勉強会スタート. PyData.OkinawaおよびPython Beginners沖縄の紹介があったのち、私の講演がスタートしました.

なお、発表は久々に「正装」でやりました.

反応は上々で、掴みおよびオチで入れた野球の話で盛り上がり*11、本編の「選球眼」「言語化」の話も凄い聞き入ってくれた感がありました.

ちなみに、「辛いです...」の件は見事辛いまま終わりました.*12

続いて登壇した真嘉比さん、中澤さんの話がいい感じに違う分野・視点の話だったのと、学生さんLTが正統派のLTからしょうもないネタまで楽しくやりきってる感があり、それぞれのパートで笑いや感動、学びがとても多かったです.

その後のトーク・セッションはSNSでの公開禁止!というルール*13のもと、

  • 転職・就職のキャリアのヤバい話
  • 学習や勉強などのノウハウ

その他色々(多少脱線しつつ)お話ができて楽しかったです.

クロージングがまさかの飛び入りLTで吹き飛ぶという面白いアクシデントがあり笑、ホント楽しいまま終わって最高でした.

なお、まだまだ募集中だそうです(真顔)

connpass.com

懇親会

懇親会は、本編の楽しいノリのまま進行しました.

正直酔っ払って何を話したか覚えていませんが笑、自分よりも年齢が18いや下手したら20歳離れてる若い方たちに発表の感想やエンジニアリングの事を聞いたりして、私自身が学ぶことが多かったです.

トーク・セッションでも「エンジニアになるまでどうやってキャリア積んだのか」みたいな話もあったりしましたが、考えてみれば自分がやったのは20年も前だし、、、って思うとホント歳食ったなと思いました.

二次会(ちゅらデータさんのオフィスで宅飲み的な流れ)含め、データサイエンスやコミュニティ、近況のお話まで楽しく深い話をたくさんさせてもらいました.

翌日

翌日も沖縄滞在で観光とか色々しようと思いましたが、二日酔いで死んでました(震え)*14

感想と反省

天候や当日の(いい意味での)ハプニングなど色々ありましたが、全体的に楽しく・学びが多い会だったと思います、ご挨拶させてもらった皆さんも満足そうにしていて良かったですし、資料やこのブログなどを通じて振り返りとかもできたらなお良いかなと思っています.

一方、懇親会で若い人たちから頂いたフィードバックとして、

  • 話が難しかった
  • 直近のフェーズ・状態でのアドバイスが欲しかった.具体的には「就職のタイミング」「具体的に学ぶべきこと」などなど

自分が想定していたよりも若い方が多く(これは私自身の見積もりがしくじった)、もっと優しい話を用意するもしくは、スライド中にある「独学」「コミュニティ」の話を前段に持っていくだけでもだいぶ解消できたかなあと思うと反省と学びが多かったのが正直なところです.

一方で、資料は公開している&補足としてこのブログもあるので数ヶ月後もしくは半年後に読み返したり思い出してもらえると「あの時言ってたことはあれか!」みたいな感じになってくれればと勝手に期待しています(真顔)

すべてのエンジニアに「言語化」「選球眼」の大切さを伝えたい

「言語化」「選球眼」の大切さって伝えるの難しいな、と思った矢先に一行で書いてある良い文章を見つけました.

プロフェッショナル・プログラマーは、プログラミングだけではなく周辺技術を活用できてはじめてプロジェクトのQCDを守れるという、ある意味厳しい環境で仕事をしているといえるでしょう(だからこそナレッジワーカーとしてのプログラマーの仕事の価値があります)。

「Pythonプロフェッショナルプログラミング 第3版」は、10年の取り組みの集大成 - ビープラウド社長のブログより

単にプログラミングやPython、機械学習が出来るだけではダメで「周辺技術を活用する」「QCDを守る」という「プロフェッショナル」の文脈があるからこそ、「言語化」「選球眼」ってホント大切だなと思っています.*15

データ分析やプログラミングが脚光を浴びる、大切だ!というのはエンジニアの端くれとして認識しているかつ、実際やってる事ではありますが、本質的な事・大切なことをちゃんと今後も伝えたいなと思っています、野球を絡めて笑

以上、長くなりましたが参加レポートと所感でした!

*1:ロシア時間、アメリカ西海岸、東海岸そして日本と絶妙にタイムゾーンが異なるので頑張れば24時間なにかしらの試合が見れるし被らない

*2:結果的に台風に会いに行くようなスケジュールになりましたがなんとほとんど濡れること無く無事でしたw

*3:幸いにも開催地(琉球大学)含む沖縄本島南部は大して雨風吹かなかった

*4:彼が機械学習・Web開発両方で成果を出している優秀なエンジニアであると同時に、一緒に働いていたときからエンジニアリングの話題・視点で語れる仲間でもあるのでお願いをしちゃいました.良いコメント・レビューもらってマジで感謝thx!

*5:のと、主催メンバー達とは真嘉比さんを通じて親交があったのでオファーがしやすかったのかもってのもあります.発表でお話した「Networking」ですね.

*6:この辺野球のこともあり、良くも悪くも誤解が多い、私は「野球エンジニア」なので(真顔)

*7:Pythonやデータ分析関連だと山本さんがある種の師匠なので、師弟関係?でリレーしたことになります、偶然にも笑

*8:Twitterおよび職場で一日一回は「辛いです」と言ってたかも

*9:普段タクシーあまり乗らないのですが、東京と比べやすい感じがしたので積極的に使いました.

*10:北海道で言うところのヒグマ注意!ぐらいのやつだが、ヒグマと異なり頻繁に出没するらしい

*11:バレル・ゾーンの話がすんなり入ってくれたのは楽だった

*12:護摩行のイラストのこと

*13:これは私の方から希望しました、来てくれた方だけに「ココだけ話」をすることによって、学び・気づきそして思い出に残ると良いなと思い

*14:昼まで寝てた

*15:このブログのリリースが自分の発表のちょっと前で読んだ瞬間いい意味で「やられた!」と思いました.なおPythonプロフェッショナルプログラミングは自分の愛読書です.