我訪談過的 Staff-plus 工程師,沒有人是獨自走到這一步的。多數人要嘛透過大量閱讀,要嘛靠著經營一個強大的同儕網絡。本節整理了他們推薦的資源。

你的人際網絡#

幾乎所有人一致認為,Staff-plus 工程師最有價值的學習資源,不是書、部落格、談話或論文,而是他們的同儕與導師網絡。

如果你每天只有一小時投資在自我成長上,最好的選擇是去建立一個由相似角色的人組成的網絡。

若想找 Slack 社群,Rands Leadership Slack 裡的 #staff-principal-engineering 是個相當活躍的頻道。

部落格與文章#

以下依主題整理推薦讀物。

Staff-plus 工程師都在做什麼?
  • Being a principal engineer at Skyscanner,Nicky Wrightson
  • Defining a Distinguished Engineer,Jessie Frazelle
  • How I operated as a Staff engineer at Heroku,Amy Unger
  • Not all engineering leaders are engineering managers,Tanya Reilly
  • The Nuts and Bolts,Tanya Reilly
  • On Being A Principal Engineer,Silvia Botros
  • On Being a Senior Engineer,John Allspaw
  • Staff Engineering,Sam Kleinman
  • Thriving on the Technical Leadership Path,Keavy McMinn
  • What’s a senior engineer’s job?,Julia Evans
  • What a Senior Staff Software Engineer Actually Does(Part 1: The Role and My Tasks/Part 2: The Mindset and Focus of the Role),Joy Ebertz
  • What does Staff level mean at GitLab?,Charlie Ablett
如何成為 Staff-plus 工程師
  • Becoming a Staff Engineer – Interview with Kristina Fox, Staff iOS Engineer at Intuit,Kaya Thomas
  • On becoming a senior technical leader,Jesse Pollak
  • On Mid-Career and Managers,Ryn Daniels
  • How does one become a Staff Software Engineer at Google?(Quora)
  • The Engineer/Manager Pendulum,Charity Majors
  • Things to Know About Engineering Levels,Charity Majors
如何勝任 Staff-plus 工程師的工作
  • Being Glue,Tanya Reilly
  • Computers can be understood,Nelson Elhage
  • Effective Mental Models for Code and Systems,Cindy Sridharan
  • “I Wouldn’t Start From Here.” How to Make a Big Technical Change,Tanya Reilly
  • Migrations: the sole scalable fix to tech-debt,Will Larson
  • On Mid-Career and Team Dynamics,Ryn Daniels
  • Surviving the Organisational Side Quest,Tanya Reilly
  • Systems that defy detailed understanding,Nelson Elhage
  • Team Objectives,Marty Cagan
  • Technical Decision Making,Cindy Sridharan
  • Technical Research and Preparation,Keavy McMinn
  • The Behind-the-scenes Work of Tech Leadership,Jean Hsu
  • Understanding Project Management Will Improve Your Developer Job,Daniel Na
  • What Does Sponsorship Look Like?,Lara Hogan
  • Where to Start,Keavy McMinn
  • Design Docs, Markdown and Git,Caitie McCaffrey
技術規格文件(Technical Specifications)
  • A practical guide to writing technical specs
  • Design Docs at Google
  • Design Docs, Markdown, and Git
  • Documenting Architecture Decisions
  • How to write a better technical design document
  • Technical Decision-Making and Alignment in a Remote Culture
  • Writing Technical Design Docs
工程策略(Engineering Strategy)
  • A Framework For Responsible Innovation
  • How Big Technical Changes Happen at Slack(Several People Are Coding)
  • On Drafting an Engineering Strategy
  • Defining a Tech Strategy
  • Delivering on an architecture strategy
  • Stepping Stones not Milestones
  • Achieving Alignment and Efficiency Through a Technical Strategy
  • The difficult teenage years: Setting tech strategy after a launch,Anna Shipman
  • Learning to have an engineering vision

工程策略的實例:Run less software,Rich Archibold。此外還有許多探討策略其他面向的好資源,例如 Marty Cagan 的 Product Strategy 系列。

書籍#

雖然我發現很多人並不讀太多書,但當我問 Staff 工程師哪些資源對他們最有價值時,他們無可避免地會提到某位個人導師,或某本書。針對更具體的問題,他們或許會提到部落格文章與技術談話,但真正深刻改變他們的,往往是書這種篇幅更長、更「紙本」的形式。

受推薦的書單
  • A Philosophy of Software Design,John Ousterhout
  • Accelerate: Building and Scaling High Performing Technology Organizations,Forsgren、Humble、Kim
  • Becoming a Technical Leader: An Organic Problem-Solving Approach,Gerald Weinberg
  • Building Evolutionary Architectures,Ford、Parsons、Kua
  • Escaping the Build Trap: How Effective Product Management Creates Real Value,Melissa Perri
  • Good Strategy Bad Strategy: The Difference and Why it Matters,Richard Rumelt
  • High Output Management,Andy Grove
  • The Manager’s Path: A Guide for Tech Leaders Navigating Growth and Change,Camille Fournier
  • The Mythical Man-Month,Fred Brooks
  • The Phoenix Project,Kim、Behr、Spafford
  • The Passionate Programmer,Chad Fowler
  • The Pragmatic Programmer,Hunt、Thomas
  • Resilient Management,Lara Hogan
  • Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis,Adam Tornhill
  • Thinking in Systems: A Primer,Donella Meadows

若還想要更多推薦書單,網路上比比皆是,包括我自己在 Irrational Exuberance’s Best Books 上整理的清單。

談話(Talks)#

我聊過的 Staff-plus 工程師普遍認為,「上台講」比「聽別人講」對他們更有價值,不過確實有一些很棒的談話值得一看。Cindy Sridharan(Twitter)是找到精彩談話的最佳來源,特別是她整理的 Best of 2019/2018/2017 in Tech Talks。

論文(Papers)#

相對少數的 Staff-plus 工程師會熱衷閱讀電腦科學論文。不過大多數人都熟悉少數幾篇奠基性論文,而真正花時間讀論文的那一小群人,通常收穫頗豐。

若你想成為勤讀論文的一員,Adrian Colyer 的 the morning paper 是最佳起點,它每個工作日都會寄給你一篇電腦科學論文的摘要。想先接觸一些知名論文,可先讀 Peter Klein 的 How to Read an Academic Article,或 S. Keshav 的 How to Read a Paper。

推薦論文清單
  • Dynamo: Amazon’s Highly Available Key-value Store
  • On Designing and Deploying Internet-Scale Services
  • No Silver Bullet - Essence and Accident in Software Engineering
  • Out of the Tar Pit
  • The Chubby lock service for loosely-coupled distributed systems
  • Bigtable: A Distributed Storage System for Structured Data
  • Raft: In Search of an Understandable Consensus Algorithm
  • Paxos Made Simple
  • SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol
  • Hints for Computer System Design
  • Big Ball of Mud
  • The Google File System
  • CAP Twelve Years Later: How the Rules Have Changed
  • Harvest, Yield, and Scalable Tolerant Systems
  • MapReduce: Simplified Data Processing on Large Clusters
  • Dapper, a Large-Scale Distributed Systems Tracing Infrastructure
  • Kafka: a Distributed Messaging System for Log Processing
  • Large-scale cluster management at Google with Borg
  • Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center

找優質論文最好的地方大概是 Papers We Love(也會舉辦論文討論聚會)。其他資源還包括 ACM SIGOPS Hall of Fame Award 清單,以及 Irrational Exuberance 的論文收藏。

其他值得一看的東西#

在整理這些資源的過程中,我還找到一些放不進上述任何分類、但我認為很好、值得一看的內容:

  • Testing in Production, the safe way/Testing in Production: the hard parts,Cindy Sridharan
  • A decade in review in tech,Cindy Sridharan
  • Boogeyman Problems,Dan Na

如果你發現更多好資源,歡迎寄給我!