奔跑吧 程序員 從零開始打造產品 技術和團隊 Hello, Startup: A Programmer's Guide to Building Products, Technologies, and Teams

[美]葉夫根尼·布里克曼

買這商品的人也買了...

商品描述

本書以軟件工程師出身的創業者的角度,全面介紹了創業公司該如何打造產品、實現技術和建立團隊,既是為創業者打造的一份實用入門指南,又適合所有程序員系統認識IT行業。書中內容分為三部分——技術、產品和團隊,詳細描繪創業的原始景象,具體內容包括:創業點子、產品設計、數據與營銷、技術棧的選擇、整潔的代碼、軟件交付、創業文化、招兵買馬,等等。
本書適合所有程序員,尤其是準備創業的技術人員。

作者簡介

葉夫根尼·布里克曼(Yevgeniy Brikman),程序員出身的創業者,DevOps服務公司Gruntwork聯合創始人,在打造產品、技術和團隊方面經驗豐富,曾先後供職於Linkedln、TripAdvisor、思科和Thomson Financial。

目錄大綱

對本書的讚譽 v

前言 xiii

第 一部分 產品

第 1章 為何創業 2

1.1 科技創業的時代 2

1.2 什麼是科技創業公司 2

1.3 為什麼應該在創業公司中工作 4

1.3.1 更多的機會 4

1.3.2 更多的所有權 8

1.3.3 更多的樂趣 10

1.4 為什麼不應該在創業公司工作 12

1.4.1 創業並不是那麼光鮮亮麗 12

1.4.2 創業jiu是犧牲 14

1.4.3 你可能不會變得富有 15

1.4.4 加入創業公司和自己創業的比較 16

1.5 小結 18

第 2章 創業點子 20

2.1 點子從何而來 20

2.1.1 知識 22

2.1.2 點子的產生 24

2.1.3 培養創造力的環境 25

2.1.4 秘密模式 31

2.1.5 點子和執行力 32

2.2 驗證 33

2.2.1 速度製勝 34

2.2.2 客戶開發 38

2.2.3 驗證問題 39

2.3 小結 44

第3章 產品設計 47

3.1 設計 47

3.1.1 設計是迭代的 48

3.1.2 以用戶為中心的設計 50

3.1.3 視覺設計 64

3.1.4 視覺設計快速回顧 80

3.2 MVP 82

3.2.1 MVP 的類型 83

3.2.2 關注差異性 87

3.2.3 購買MVP 89

3.2.4 創業須從無法規模化的事情做起 91

3.3 小結 92

第4章 數據與營銷 94

4.1 數據 94

4.1.1 需要跟踪的指標 96

4.1.2 數據驅動開發 99

4.2 營銷 103

4.2.1 口口相傳 104

4.2.2 市場推廣 109

4.2.3 銷售 112

4.2.4 品pai化 114

4.3 小結 116

D二部分 技術

第5章 技術棧的選擇 120

5.1 關於技術棧的考慮 120

5.2 技術棧的進化 121

5.3 內部實現、購買商業產品,還是使用開源產品

5.3.1 內部實現 125

5.3.2 購買商業產品 125

5.3.3 使用開源產品 126

5.3.4 永遠不要自己實現的技術 126

5.3.5 結語 127

5.4 選擇編程語言 128

5.4.1 編程範式 129

5.4.2 適用問題 131

5.4.3 性能 131

5.4.4 生產效率 131

5.4.5 結語 132

5.5 選擇服務器端框架 133

5.5.1 適用問題 134

5.5.2 數據層 134

5.5.3 視圖層 135

5.5.4 測試 138

5.5.5 可擴展性 138

5.5.6 部署 139

5.5.7 安全 139

5.5.8 結語 141

5.6 選擇數據庫 142

5.6.1 關係型數據庫 142

5.6.2 NoSQL數據庫 144

5.6.3 讀取數據 148

5.6.4 寫入數據 150

5.6.5 模式 151

5.6.6 可擴展性 153

5.6.7 故障模式 157

5.6.8 成熟度 157

5.6.9 結語 158

5.7 小結 159

第6章 整潔的代碼 162

6.1 代碼是給人閱讀的 162

6.2 代碼佈局 164

6.3 命名 166

6.3.1 回答所有重要的問題 166

6.3.2 要jing確 167

6.3.3 要全面 168

6.3.4 揭示意圖 169

6.3.5 遵循約定 170

6.3.6 命名真難 171

6.4 錯誤處理 171

6.5 不要重複自己 172

6.6 單一職責原則 175

6.7 函數式編程 176

6.7.1 不可變數據 176

6.7.2 高階函數 179

6.7.3 純函數 181

6.8 松耦合 184

6.8.1 內部實現依賴性 186

6.8.2 系統依賴性 186

6.8.3 庫依賴性 187

6.8.4 全局變量 188

6.9 高內聚 190

6.10 註釋 192

6.11 重構 193

6.12 小結 194

第7章 可擴展性 196

7.1 創業的擴展 196

7.2 編碼實踐的擴展 196

7.2.1 自動化測試 197

7.2.2 代碼分離 216

7.2.3 代碼評審 220

7.2.4 文檔 223

7.3 性能的擴展 227

7.3.1 測量 228

7.3.2 優化 229

7.4 小結 231

第8章 軟件交付 234

8.1 完成意味著交付 234

8.2 手工交付:一個恐怖的故事 234

8.3 構建 235

8.3.1 版本控制 236

8.3.2 構建工具 239

8.3.3 持續集成 239

8.4 部署 244

8.4.1 託管 244

8.4.2 配置管理 245

8.4.3 持續交付 248

8.5 監控 250

8.5.1 日誌記錄 250

8.5.2 指標 253

8.5.3 報警 254

8.6 小結 254

第三部分 團隊

第9章 創業文化 258

9.1 要行動,不要口號 258

9.2 核心理念 258

9.2.1 使命 259

9.2.2 核心價值 262

9.3 組織設計 263

9.3.1 經理驅動等級結構 263

9.3.2 分佈式組織 264

9.4 招聘與晉升 267

9.4.1 彼得原理 267

9.4.2 以管理作為晉升 267

9.5 激勵 269

9.5.1 自主權 271

9.5.2 專業能力 272

9.5.3 目標 273

9.6 辦公室 274

9.6.1 一個可以和他人一起工作的地方 276

9.6.2 一個可以獨處專注工作的地方 276

9.6.3 一個可以放下工作的地方 279

9.6.4 一種可以根據個人需要佈置辦公室的方法 280

9.7 遠程辦公 282

9.7.1 優點 282

9.7.2 缺點 283

9.7.3 zui佳實踐 284

9.8 溝通 285

9.8.1 內部溝通 285

9.8.2 外部溝通 287

9.9 過程 287

9.9.1 採用出色的判斷 288

9.9.2 軟件方法論 289

9.10 小結 290

第 10章 求職之路 292

10.1 尋找創業公司的工作 292

10.1.1 利用人脈 293

10.1.2 發展人脈 294

10.1.3 創建網絡身份 295

10.1.4 在線職位搜索 298

10.2 通過面試 298

10.2.1 在白板上編程 298

10.2.2 把思考的過程說出來 298

10.2.3 了解自己 299

10.2.4 了解公司 299

10.2.5 簡短的、重複的計算機基礎問題 299

10.3 如何對工作機會進行評估和談判 300

10.3.1 薪水 300

10.3.2 股權 301

10.3.3 福利 307

10.3.4 談判 307

10.4 小結 309

第 11章 招兵買馬 311

11.1 創業與人密不可分 311

11.2 招聘什麼人 311

11.2.1 合夥人 312

11.2.2 早期員工 313

11.2.3 後期員工 314

11.2.4 10倍能力的開發人員 314

11.2.5 尋找什麼 316

11.3 尋找出色的人選 319

11.3.1 推薦 319

11.3.2 雇主ping牌化 320

11.3.3 在線搜索 321

11.3.4 專職招聘人員 322

11.3.5 過早優化 322

11.4 面試 324

11.4.1 面試過程 325

11.4.2 面試問題 325

11.5 錄用 330

11.5.1 應該提供什麼 331

11.5.2 跟進和談判 334

11.6 小結 334

第 12章 學習 336

12.1 學習的原理 336

12.1.1 明智地選擇技能 337

12.1.2 投入時間去學習 338

12.1.3 讓學習成為工作的一部分 339

12.2 學習的技巧 339

12.2.1 研究 339

12.2.2 實現 341

12.2.3 分享 342

12.3 經驗教訓 344

12.4 小結 348

關於作者 350