自走プログラマー 執筆トークネタ
イベント
タイトル:
書籍『自走プログラマー』が我々に必要だった理由
概要
書籍『自走プログラマー』は「プログラミング入門者が中級者にランクアップ」するのに必要な知識をお伝えする本です。実際の現場で起こった具体的な問題に対する120のベストプラクティスを紹介します。本書を企画したきっかけと、執筆によって起きた効果を紹介します。
本書の目的
BP社内の「Python入門者(Rookie)」を「中級に引き上げる」
ベストプラクティスを言語化し、Rookieがハマったときに「これ読んで /icons/heart.icon」と渡す
開発プロジェクト全体を網羅するトピック(120)で、知識のピースを埋める
企画のきっかけ
デキる技術者なら知っている、がとても多い
ビープラウドに入社して今年で10年目、何度も何度も教えるトピックがある
教えたこと・教わったことをWikiにまとめよう、という活動を2013年10月に始めた
Wikiの内容は有用だけど、玉石混淆で磨きが足りないものが多かった
足りないピースを埋める情報をまとめたい
Python入門系の本は言語そのものを教える「プログラミング言語の体作り」。「Pythonistaならこう書く」といったPythonicな書き方がなぜ必要なのかといった解説はしていない(しても覚えきれないし)。 DjangoやScrapyを扱う本は、フレームワーク自体を解説。「フレームワークの技・体」
タイトルに込めた想い
BP基準
「独学プログラマー」は関係ないです
本書前書きより
私たちにとってプログラマーとは,設計書をコードにする単純作業者のことではなく,やりたいことをまとめ,設計からコードにし,そしてリリースするまでをすべて1人でできる人のことを指しています。本当にすばらしいサービスやアプリケーションをつくり出すには,自走できるプログラマーが必要です。 とはいえ,すべてのプログラマーがはじめから自走できたわけではなく,組織のメンバーは常に入れ替わっていき,新しく参加するメンバーの中にはこれからいろいろなことを学んでいく人もいます。それは,技術的なつまづきと学びを繰り返して,その背景にある原理原則をメンバーそれぞれが見つけていく,長い旅のようなものです。ビープラウドには,この学びの旅をサポートする「教え合う文化」が根づいており,つまづいたときには先輩が親身になって助けてくれます。そこで先輩達が教えてきた履歴を見ると,新しいメンバーがなぜか必ずつまづいてしまうパターンがいくつもあることがわかってきました。こういった,設計からコードまで書けるようになるために知っておいてほしい技術的なトピックを集め,この本にまとめました。 本書は,プログラミング入門ならぬ,脱入門者を目指す開発者向けの指南書です。自走できるプログラマーであれば知っているであろういろいろな手法や観点を元に,「プロジェクトの各段階でプログラマーがやること」「その選択をどう判断するのか」「どうコードを実装して実現していくのか」を紹介します。一部の最新技術に注目するのではなく,実際のプロジェクトに適用して,プロジェクトを完成させるための指針をまとめました。 執筆によって起きた効果
開発プロジェクトで伝えたい情報が言語化されている
コードレビューやSlackチャットでベストプラクティスを伝えたいとき、原稿のGitHub URLで理由説明を伝えられた
何度も同じを事を説明せずに済んだ
説明する文章が洗練されているので受け入れてもらいやすかった
社内で実際に呈示した章
2020/01/07: 値が存在しない場合にもNULLでデータ登録したい
49. NULLをなるべく避ける
2020/01/09: クラスのメソッドをCeleryタスクにしたらselfがうまく渡せない
95. Celeryのタスクにはプリミティブなデータを渡そう
2020/01/31: dictからの値取得に fruits.get(order.fruit)
63. 臆さずにエラーを発生させる
2020/02/12: Pythonの最新を使うにはソースコードからビルドしてインストール
80. OSが提供するPythonを使う
2020/02/19: 動作確認できるようになるまでレビューに出せない
34. 一度に実装する範囲を小さくしよう
2020/02/20: IPアクセス元で制限している環境に社外からアクセスするには?
106. ssh port forwardingによるリモートサーバーアクセス
2020/02/28: 非同期処理が失敗したらFileNotFound例外
66. 専用の例外クラスでエラー原因を明示する
原稿への反映
ベストプラクティスを伝えたいとき、執筆した内容が適用できそうか、できないとしたらなぜかを考えて反映した
実践してもらった結果を聞いて、原稿に反映していった
メモ
プロフェッショナル・プログラマーは、プログラミングだけではなく周辺技術を活用できてはじめてプロジェクトのQCDを守れるという、ある意味厳しい環境で仕事をしているといえるでしょう
「今この人にこの章を読ませたいから、はやく本が出版されてほしい」と思う事が多かった