みなさんこんにちは.
お店さん*1商品(FRM*2商品開発)チームでTech Lead(エンジニアリーダー)をしています, nakagawa(@shinyorke)ともうします.JOINしてから3ヶ月たちました.
FRM商品開発チームではエンジニアチームのマネジメントやプロダクト企画・開発を行いつつ,個人としてはPythonが大好きで公私共に良く触って(愛して)います.*3
このエントリーでは,最近のRettyにおけるPythonの利用事例や学び方を紹介したいと思います.
- Rettyのエンジニアチームの雰囲気を知りたい
- 機械学習・Deep Learning以外のPythonの使われ方ってあるの?
- 学ぶ際のオススメが知りたい
上記のどれかに当てはまる皆さま,是非最後までお読みいただけると幸いです.
Retty流Pythonのススメ
「RettyにおけるPython利用状況」「Python学習ノウハウ」「コミュニティ」の3つのテーマで紹介します.
使い方〜RettyにおけるPython利用状況
RettyではプロダクトのコードとしてPHP,Java,Javascript(node.js), Kotlinなど様々な言語・フレームワークが使われています.*4
Pythonもよく使われている言語の一つで,
- 機械学習・自然言語処理など,データサイエンティストなお仕事.いわゆる「PyData*5」と呼ばれる分野.
- サービスレベルでのデータ運用(ETLなど).データベースやログなどからデータを収集&活用するためのスクリプトやバッチなど.RettyではTreasure Dataとの連携周りで活用しています.
- 手元の作業(CIやデプロイなど)を楽にするためのスクリプトや便利ツール作成・運用. bashやzshで書くのには重いな...というものをPythonで開発など.
- 管理ツールなど,小規模のWebプロダクト開発. 私の観測範囲内ではWebフレームワークとしてDjango*6がよく使われています.
といった形でプロダクトやツールで目的に合致している箇所で活用しています.
ユーザーさんやお店さんが使うサービス・プロダクトへの適用については,リニューアルのタイミングでPythonでリニューアルする計画があり,徐々にではありますが進めている最中だったりします.
学び方〜RettyにおけるPython学習のノウハウ
主に私の啓蒙活動になります笑.
徐々にPythonistaが増えてきて,Pythonをはじめようかな?覚えようかな?といったエンジニアメンバーもちらほら増えてきており,オススメの学び方や本について聞かれる機会が多くなりました.
そんなメンバーの皆さんが快適かつ素早くPythonを学習できるよう,社内のQiita Teamに学習のためのTipsページを立てています.
ちなみに私は以前Python入門者向けの学習フローを公開しており,こちらで得た知見および過去の実践経験*7を元に,社内のQiita Team内にページを作成・公開しています.
ここですべてを公開できないのが残念ですが,これからPythonを覚えるぞ!という方にポイントを簡単にご紹介します.
Python 3を使うこと
- Python 2は2020年でサポートが終わる. PEP373に明記されています.
- PyDataやWebフレームワークもほぼ全てPython 3対応が進んでおり,2を選ぶ理由が限りなく少ない.
AWS LambdaやGoogle App EngineなどのPaaS系サービス,インフラ系ツール(aws cli, gcloud)などは一部未対応,ここだけ2を使う.
※AWS LambdaはPython3.6に対応がされているとのことです!リリースノート(AWS)
公式のチュートリアルを活用
- 本も良いが,完成度が高いチュートリアルを写経するのが近道だったりします.
- Python公式チュートリアル,Djangoチュートリアルなどがわかりやすいかつ効率よく学べておすすめです.
コミュニティのイベントや勉強会に参加する
- Python入門者の集い(#PyNyumon)やPython mini hack-a-thon(#pyhack)など,初心者とPythonistaが集まるイベントに参加してコードを書く&交流する.
- 学習の仕方やライブラリ・フレームワークの知識を聞いたりディスカッションしたりできるのが大きなポイント,一人で学ぶより速い.
その他いくつか細かいポイントがあるのですが,こちらはまた別の機会で紹介できればと思います.
コミュニティ〜参加・登壇の支援とスポンサー
学ぶためには社内の知見のみならず,外のコミュニティを活用して幅広く知見を得ることも重要です.
Rettyではコミュニティ主催のイベント・カンファレンスや勉強会の参加をチケット代・交通費負担などで積極的にサポートしており,DroidKaigi 2017やデータ分析基盤Nightなど,登壇するメンバーも増えてきています.
Python使いも負けてられない!...ということで,この度4/23(日)に開催される「PyCon mini Kumamoto 2017」にゴールドスポンサーとして協賛させていただくことになりました!
Rettyからはスポンサードの他,データサイエンティストの岩永が数理最適化について,そして僭越ながら私nakagawa(野球の人)はScrapy*8とRedash*9を用いた野球データ分析についてトークをさせていただきますので,お時間がある方は是非いらしてください!
まとめ
いかがでしたでしょうか?
RettyでのPython活用事例を通じて,学習の仕方やコミュニティ・イベントの参加などのきっかけ作りになってもらえれば幸いです.
最後になりましたが,RettyではPython使いを募集しています!
食やPythonに関するお話はもちろん,PyCon mini Kumamotoの土産話やこのブログに対する意見ツッコミなど,お話をしたくなった方は是非遊びに来てください!
素敵なPythonistaライフを!
*1:レストランや飲食店のこと.Rettyではみなさんへの敬意を大切にする意味でお店さん,と呼んでいます.同様の理由でユーザーはユーザーさんと呼んでいます
*2:Fun Relationship Managementの頭文字でFRMと呼んでいます,いわゆるCRMのC(Customer)の部分をお店さんから見た場合のFun(ユーザーさん)に置き換えたプロダクトとなります.
*3:Pythonコミュニティーでは「野球の人」と呼ばれています.詳しくは「野球 Python」「野球統計学」「セイバーメトリクス」で検索してみてください.
*4:言語やフレームワークの取捨選択は各チームのTech Leadとチームに委ねられているため,様々な環境が存在します.
*5:https://pydata.org/ Pythonを用いたデータに関するあらゆることをオープン化してデータ活用をもっと便利にしよう,という取り組みとコミュニティのこと.日本にもPyData.Tokyoほか,幾つかのコミュニティがあります.
*6:Pythonで最もメジャーなWebフレームワークで,海外ではInstagramをはじめ事例が多数,日本ではチケットキャンプさん,connpass(ビープラウドさん),ビザスクさんなどで使われています.
*7:仕事で触り始めたのが2011年なのでかれこれ6年ちょっとPythonにたずさわっています
*8:Python製のWebクローラ・スクレイピングフレームワーク.サイトの収集からデータ取得まで,DjangoやRuby On Railsの用にアプリとして書けるのが特徴 https://scrapy.org/
*9:Pythonベースのデータ分析・基盤ツール.TableauやMackerelと同じような用途で用いられる https://redash.io/