Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Pythonの会社を
9年間経営してきて分かったこと

6,384 views

Published on

みんなの勉強会#27( https://startpython.connpass.com/event/58757/ ) で発表した資料です。

Published in: Internet
  • Hey guys! Who wants to chat with me? More photos with me here 👉 http://www.bit.ly/katekoxx
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Pythonの会社を
9年間経営してきて分かったこと

  1. 1. Pythonの会社を 9年間経営してきて分かったこと 〜Pythonistaの仕事、Pythonとの良いかかわりかた 株式会社ビープラウド 佐藤治夫 2017/8/9 @みんなのPython勉強会#27
  2. 2. ユニフォーム登壇正装化へ
  3. 3. 自己紹介 •名前 佐藤治夫(Sato Haruo) •株式会社ビープラウド代表取締役社長 •Twitter http://twitter.com/haru860 •connpass企画・開発・運営 •IT系勉強会 BPStudy 主催 •PyCon JP 2015 Keynoteスピーカー担当 •一般社団法人Pythonエンジニア育成推進協会 監事
  4. 4. アジェンダ - Pythonを採用して会社に起こった変化、起きたこと - Pythonistaの仕事での文化・特徴 - Pythonの効果的な学び方 - Pythonistaの個人ブランディング
  5. 5. 転機
  6. 6. 2008年4月 会社のメイン言語にPythonを採用
  7. 7. 当時の日本では、 Pythonをシステム開発、 特にWebで使っている会社は皆無
  8. 8. Pythonを採用した場合の心配 ・技術者いるの? ・人がいない場合、保守大変じゃない? ・仕事あるの?
  9. 9. なぜ、Pythonを採用したか 新しい時代の企業をつくりたい! ↓ 企業を創るにはまずはヒト! ↓ しかし、Java、PHP、Rubyやっても採用で大企業に勝てない ↓ ・周りのひとが、Pythonやってた ・Pythonやってる人はPythonで仕事がしたいのでは ・LL(Lightweight Language)ブーム ↓ Pythonでやります!と言えば優秀な人が来るのでは!
  10. 10. Pythonのバラドックス —- The Python Paradox http://practical-scheme.net/trans/pypar-j.html より ポール・グラハム(「ハッカーと画家」の著者)2004年 私が最近行った講演は、たくさんの人を 怒らせてしまったようだ。 Javaのプロジェクトよりも Pythonのプロジェクトの方が賢いプログラマを集められる という部分だ。
  11. 11. Pythonのバラドックス —- The Python Paradox 新しい言語を学ぶには 相当の努力が必要だ。 〜(中略) プログラムが本当に大好きで、それまでに知った言語に 満足できなかったから 学んだわけだろう。 まさにこのことから、自分からPythonを学ぼうという人こそが、 会社が求めるべきプログラマということになる。
  12. 12. 結果
  13. 13. 「BePROUDっていう会社 Pythonやるってよ」
  14. 14. Pythonコミュニティからのエンジニア紹介、入社 2008年8月、1人 2008年11月、1人 2009年1月、1人 リーマンショック→2008年11月 2009年9月2人、2009年10月3人 2009年12月1人、2010年1月1人 2010年4月2人 2009年8月からTwitterで採用開始 Pythonコミュニティ からの採用 その後も続き 2011年には30人超
  15. 15. その後、Pythonでの開発実績を積んだ ①Pythonプロフェッショナルプログラミング 上梓 (2012年4月) ②Pythonプロフェッショナルプログラミング 第2版 上梓 (2015年2月) ③オンラインPython学習プラットフォームPyQリリース (2017年4月) ④いちばんやさしいPythonの教本 上梓 (2017年8月) New! New!
  16. 16. ここで、発売記念(2017/8/11)で 限定3名様に、プレゼント
  17. 17. アジェンダ - Pythonを採用して会社に起こった変化、起きたこと - Pythonistaの仕事での文化・特徴 - Pythonの効果的な学び方 - Pythonistaの個人ブランディング
  18. 18. 会社がPythonコミュニティ化した Pythonが好きな人たちの集まり (ビジネスライク・合理的にPythonを採用したのとは違う) ↓ ・同じことに感動できる ・最新の情報の交換、ノウハウ・技術交換 ・日々、お互いに切磋琢磨できる(教えたり、教わったり) ↓ 会社がPythonコミュニティに!
  19. 19. 会社がブランディングされた Pythonに絞った ・プログラミング言語=道具だから何でも良いのでは? ・できる人も減るし、仕事もなくなるのでは? ↓ ・採用やりやすくなった(11年間で採用コスト合計5万円) ・Pythonのノウハウの蓄積 ・実績の蓄積 ↓ 会社がブランド化された!
  20. 20. よいお客さんばかりになった ・やりかたは任せますよというお客さん vs やり方も指定してくるお客さん → 前者だけが残った ・良いお客さんは良いお客さんとつながっていて、紹介してくれる → 良いお客さんが増えた
  21. 21. アジェンダ - Pythonを採用して会社に起こった変化、起きたこと - Pythonistaの仕事での文化・特徴 - Pythonの効果的な学び方 - Pythonistaの個人ブランディング
  22. 22. どの言語を選択するか? Python, Ruby、Perl Java , Scala , Go etc.. = 宗教戦争(思想の違い) に近い
  23. 23. 言語ごとの思想の違い Perl TIMTOWTDI(there's more than one way to do it) あることをするのにいくつものやり方がある Ruby 「多様性は善」(Diversity is Good)
  24. 24. 言語ごとの思想の違い Python There should be one-- and preferably only one -- obvious way to do it. 誰にとっても明確な手法が,一つだけあることが好ましい
  25. 25. 仮説:言語選択はその人の思想に影響される? Python 誰にとっても明確な手法が,一つだけあることが好ましい Ruby、Perl 多様性 思想の違い =Pythonが好きな人は深層的な思想は同じ
  26. 26. The Zen of Python >>> import this Beautiful is better than ugly. 醜いより美しいほうがいい。 Explicit is better than implicit. 暗示するより明示するほうがいい。 Simple is better than complex. 複雑であるよりは平易であるほうがいい。
  27. 27. The Zen of Python Complex is better than complicated. それでも、込み入っているよりは複雑であるほうがま し。 Flat is better than nested. ネストは浅いほうがいい。 Sparse is better than dense. 密集しているよりは隙間があるほうがいい。
  28. 28. The Zen of Python Readability counts. 読みやすいことは善である。 Special cases aren't special enough to break the rules. 特殊であることはルールを破る理由にならない。 Although practicality beats purity. しかし、実用性を求めると自然さが失われることがある。
  29. 29. The Zen of Python Errors should never pass silently. エラーは隠すな、無視するな。 Unless explicitly silenced. ただし、わざと隠されているのなら見逃せ。 In the face of ambiguity, refuse the temptation to guess. 曖昧なものに出逢ったら、その意味を適当に推測してはいけない。
  30. 30. The Zen of Python There should be one-- and preferably only one --obvious way to do it. 誰にとっても明確な手法が,一つだけあることが好ましい Although that way may not be obvious at first unless you're Dutch. そのやり方は一目見ただけではわかりにくいかもしれない。オランダ人にだ けわかりやすいなんてこともあるかもしれない。 Although never is often better than *right* now. でも、今"すぐ"にやるよりはやらないほうがマシなことが多い。
  31. 31. The Zen of Python If the implementation is hard to explain, it's a bad idea. コードの内容を説明するのが難しいのなら、それは悪い実装である。 If the implementation is easy to explain, it may be a good idea. コードの内容を容易に説明できるのなら、おそらくそれはよい実装である。 Namespaces are one honking great idea -- let's do more of those! 名前空間は優れたアイデアであるため、積極的に利用すべきである。
  32. 32. 私が見てきたPythonistaの特徴 ・まずルールを決める ・ドキュメントを書くのが好き ・曖昧な発言は諭される Special cases aren't special enough to break the rules. 特殊であることはルールを破る理由にならない。 Explicit is better than implicit. 暗示するより明示するほうがいい。 In the face of ambiguity, refuse the temptation to guess. 曖昧なものに出逢ったら、その意味を適当に推測してはいけない。
  33. 33. 深層的な思想が同じ ↓ 「いいね!」と思うことが同じ ↓ 組織としてまとまりやすい
  34. 34. Pythonの効果的な学び方
  35. 35. アジェンダ - Pythonを採用して会社に起こった変化、起きたこと - Pythonistaの仕事での文化・特徴 - Pythonの効果的な学び方 - Pythonistaの個人ブランディング
  36. 36. 書籍で学ぶ 文法を学ぶ ライブラリを知る より良い書き方を学ぶ 仕事のPython開発 (Web,ツール,環境) (私の観測範囲で良く名前が出て来る書籍) 「プログラミング」から学びたい人 (1〜2日で読む、キーボードに打ち込んでみる) ジャンル別書籍 ・スクレイピング ・データ処理 etc
  37. 37. 写経してみる 写経のメリット ・理解が浅くても、気軽に始めることができる ・実際に動かして体で憶えることができる ・書き写す過程で理解が深まる(ただ写す場合も少しずつ人は理解する) ・そのまま写したつもりでも、うまく動かないことは多い → 動かないものを解決した時に、理解が深まる ・少しずつプログラムを変えながら、動作を確認し理解を深めることができる 写経=プログラムを書き写し、実際に動かしてみること
  38. 38. PyQ ・オンライン学習プラットフォーム(http://pyq.jp/) ・写経で学んでいく ・自学自習をコンセプトにしている
  39. 39. とはいえ、サポートも受けられるのでスムーズに学習できます
  40. 40. 学んだら アウトプット、アウトプット、アウトプット!
  41. 41. アウトプットその1 ブログなどにアウトプット ・1行でも10分でもいいから書く!(@shimizukawa) ・暗黙知→形式知へ(分かるところと分からない所の区別がつく) ・例:ブログから勉強会開催へ(くろのて)
  42. 42. ・アウトプットしていた人は、経験上、 あとでプログラマーとして伸びた人が多かったと思います ・一時期は、Pythonで分からないことをググると、ほとんどビープラ ウド社員のブログにぶつかるという時期も アウトプットその1 ブログなどにアウトプット
  43. 43. アウトプットその2 プロダクト、サイト、ライブラリつくる 企画 設計 実装 運用 問題 発生 技術的実現性 使用技術 作り方 生産性 保守性、性能 企画→設計→実装→運用を1サイクル体験すると知識がつながる フィードバックループ(学び) 学習 文法 実務 知識の使いどころが 分からない 知識とつながらず うまく作れない プライベート プロジェクト でやってみる
  44. 44. 「Pythonやりたい」は同じでも ・伸びた人 → 実務経験はなくても、自分で何かを作っていた人 ・伸びない人 → ツールなどをインストールして、動かして終わり アウトプットその2 プロダクト、サイト、ライブラリつくる
  45. 45. アウトプットその3 勉強会・カンファレンスで話す ・話そうと思い立つ ・自分の中で、他の人に話せることはないかと考え出す ・スライドなどにまとめる ・暗黙知→形式知へ(←これが大事)
  46. 46. 暗黙知と形式知 知識 知識 知識 知識 知識知識 知識 知識 知識 知識 知識 知識 知識 知識 知識 知識 暗黙知とは: 経験や勘に基づく知識のことで 言葉などで表現が難しいもの ・なんとなくプログラムが動いている ・言葉で説明できない 言葉で説明できる 暗黙知 形式知 知識 知識 知識 知識 知識 知識 知識 知識知識 知識 知識 知識 知識 知識 → プロアマ←
  47. 47. コミュニティに参加する ・書籍、ブログ、その他メディアに 書かれていない最新の情報を得られる →実際のところ、どうなのかを聞けるチャンス ・ブログの情報=すぐに陳腐化する ・書籍:翻訳だと1年以上遅れていたりする
  48. 48. Pythonのおすすめコミュニティ(私の観測範囲) PyCon JP PyData Hack-a-thon もくもく会 PySpa PyLadis 例:Python mini Hack-a-thon Python忘年会 Django Girls Start Python Club 新星
  49. 49. アジェンダ - Pythonを採用して会社に起こった変化、起きたこと - Pythonistaの仕事での文化・特徴 - Pythonの効果的な学び方 - Pythonistaの個人ブランディング
  50. 50. Pythonistaの個人ブランディング ・ブログ ・github ・勉強会・カンファレンスで発表 PyCon JP プロポーザルを出してみる ・書籍執筆 コミュニティつながりで話あるかも IT業界は、話す側、書く側になる参入障壁が低い
  51. 51. プログラミングの 学習曲線 独習Python入門より ここまで続けましょう!
  52. 52. (ご参考)ブログ書くなら、ライティングも勉強すると楽 私が学んだ手法 エンパシーライティング 2017年8月7日 2017年7月18日 2017年6月15日 使ってるツール ブログをなかなか書けなかったのが (2017年5月まで1件)
  53. 53. まとめ - Pythonを採用して会社に起こった変化、起きたこと Pythonコミュニティ化、ブランディング、良いお客 - Pythonistaの仕事での文化・特徴 ルールを決める、ドキュメント書く→深層は同じ思想 - Pythonの効果的な学び方 書籍、写経、アウトプット、コミュニティ - Pythonistaの個人ブランディング 聞く側、読む側から、話す側、書く側へ

×