《奔跑吧程序员:从零开始打造产品、技术和团队》以软件工程师出身的创业者的角度,全面介绍了创业公司该如何打造产品、实现技术和建立团队,既是为创业者打造的一份实用入门指南,又适合所有程序员系统认识IT行业。书中内容分为三部分——技术、产品和团队,详细描绘创业的原始景象,具体内容包括:创业点子、产品设计、数据与营销、技术栈的选择、整洁的代码、软件交付、创业文化、招兵买马,等等。 本书适合所有程序员,尤其是准备创业的技术人员。
目录
- 对本书的赞誉 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