易燃物汇聚 YouTube 有声书与书评
奔跑吧,程序员:从零开始打造产品、技术和团队 封面

奔跑吧,程序员:从零开始打造产品、技术和团队

叶夫根尼·布里克曼

9332人在读
37.5万字总字数
¥49.99定价

有声书与视频解读 YouTube视频解读 1

内容简介

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

读者书评

★★★★★

2020015。 感觉这是一本被题目耽误了的好书。用程序员替代创业者是一个失败,奔跑吧更是无语,又不是娱乐节目~ 整本书涉及了技术创业的方方面面,金句极多,对于技术人员来说,无论是创业者,或者是想在技术上深钻,这本书都很有参考价值。 书中有些话我很喜欢: 1. 最有效的一个策略就是努力成为一名T型人。既是通才(在许多有价值的方面高度熟练——T的横),也是专才(在某个特定的学科中属于领域内最出色的——T的竖)。 2. 我并没有发明什么新东西。只不过把他人的发现汇集起来了而已,在他们背后是几个世纪的工作成果。如果我在50年、10年,甚至5年前做这些事,可能就不会成功。任何新生事物都是如此。当万事俱备,质变就发生了,而且是不可避免地发生。教别人相信“人类最伟大的进步是由极少数人推动的”实在是糟糕透顶的胡说八道。——亨利·福特 3. 加州大学戴维斯分校的研究发现,科学及其他学科中的杰出成就者一般只是做得更多,而不是做的质量更高。 4. 所以自我管理的方法就是一旦你有什么真正重要的问题,就不要把其他事情置于自己注意力的中心,你要一直把心思放在这个问题上。让你的潜意识保持在“饥饿”状态,不得不解决你的问题。这样你就可以平静地入睡,等待清晨醒来时得到答案,得来全不费工夫。——Richard Hamming, You and Your Research演讲 4. “如果你第一次发布的时候没有感到尴尬,就是产品推出的时间太晚了。” 5. 是否能够解决一个问题存在两个因素。·问题可以被解决。·问题可以被你解决。第一个问题和市场实际情况有关。我们既要考虑前面所提到的市场规模、问题验证,也要核实解决该问题的技术是否已经存在,还要看解决方案从经济上是否足以建立起可盈利的商业模式。红杉资本是当今世上最成功的风险投资公司之一,它的合伙人会询问创始人们一个问题:“为什么是现在?”世界发生了什么变化,使得现在成为建立这家公司的最佳时间?你知道什么其他人所不知道的?为什么没有人在两年前建立这样的公司?为什么两年以后再建立这样的公司就太迟了? 6. 你关注的目标越广泛,错失靶心的必然性就越大。想让大量人口中50%的人满意你的产品,从而实现50%产品满意度的目标,这种做法是行不通的。我们只能挑选出50%的人,想方设法让他们100%满意,才能实现我们的目标。我们甚至可以瞄准市场中10%的人,让他们100%地心醉神迷,从而取得更大的成功。这听起来可能有点违背我们的直观感觉,但为单个用户进行设计是满足广大人群需求最有效的方式。——Alan Cooper, The Inmates Are Running The Asylum 7. “达到完美并不是没有东西可以添加,而是没有东西可以去除。” 8. 人们认为专注就是要对你关注的东西点头称是,但是事实并非如此。专注其实是要对其他一百个出现的好主意说不——所以你只能小心挑选。实际上,我对我们不做的事与我们做了的事一样感到自豪。创新就是对1000种东西说不。——史蒂夫·乔布斯 9. 你的差异性必须比竞争者多得多才行。你要寻求的不是10%的改进,而是10倍的改进。做不到这点,大多数客户就觉得不值得花工夫换成你的产品。 10. 如果研究Zynga这样的公司制作的手机游戏,会发现其一半收益来自于0.15%的玩家,这些玩家被称为“鲸鱼玩家”。在这样的商业模式中,弄清楚是怎样的用户获取策略,激活、留存和推荐策略吸引到了更多的鲸鱼玩家,是这种公司获得成功的唯一方式。 11. 我的朋友Clift Norris找到了一个基本的常数,我称之为Norris常数,表示未经训练的程序员在他(或者她)遇到瓶颈之前所能编写的平均代码量。Clift估计这个数是1500行。如果代码超过这个数,就会十分混乱,作者也无法轻松地调试或修改。——John D.Cook, The Endeavour 12. 你只能花你生命中屈指可数的1万个小时,所以要定期投资(让学习成为一种定期的习惯),也要明智地选择你的投资。为了让你的投资多样化,你要在保守投资和高风险投资中保持平衡;你需要紧跟行业趋势,了解什么技能和技术在当今是有价值的,什么是即将来临的,而且明天可能是有价值的。  13. 做事情的时间不是找出来的,而是创造出来的。

★★★★★

被书名耽误的好书。这是写给互联网程序员的创业百科全书。英文原书的名字Hello Startup呼应Hello World,一语双关,直接做主标题就很好。 你不能准备去创业,它是自然而然发生的,跟着它走就是了,然后一路去解决各种问题。读书仍然是很重要的(比如这一本),从经历中学习也很重要。但是最后,你还是得以你的方式去应对遇到的事情。 不要相信你读到的所有东西。你在科技出版物上看到的很多创业故事都是经过大量编辑的市场营销叙事方法。这些故事不一定是错误的,但是它们没有描绘出全部的情况。 经济上的成功并不是唯一的目标或者成功的唯一指标。人们很容易沉浸在赚钱带来的满足感中。你应该把金钱当作真正要做的事情的助推剂,而不要把金钱本身当作目标。金钱就像汽车中的汽油——你需要加以关注,否则车就会抛锚,但是美好的生活并不是在加油站间旅行。 如果你是为了变得富有,那么请永远不要创业。如果有人说这是或者那是一种迷人的生活方式,他们肯定不知道自己在说什么。通常,这是一段要经过许多许多年艰辛工作的长途跋涉,成功的概率永远不会让你满意。 作为程序员,把赌注压在几家创业公司身上,是找到成功职业的最佳方式之一。去已经初露锋芒的创业公司打工。等公司继续成长,拿到股票回报后,继续找另外的创业公司。 第一部分 产品 点子不是设计, 设计不是原型, 原型不是程序, 程序不是产品, 产品不是企业, 企业不是利润, 利润不是退出, 退出也不是快乐。 创立公司最合适的原因就是你对某个想法充满热情,非要把它带给全世界。你之所以去做,不是为了声望或财富,而是因为它对你足够重要。为了实现它,你愿意为之经受所有的痛苦、风险和牺牲。只有你愿意把生命的下一个十年都花在开创一家公司上,你才能去做这件事。 开创一家公司就像把自己丢下悬崖峭壁,还要在下落的过程中把飞机组装出来。 建立一家成功的创业公司的难度是超乎想象的。面对大公司的竞争,你很难招聘到出色的人才;当你好不容易才招聘到的出色人才决定离开公司时,也会让你感到世事维艰;解雇那些表现不好的人也很困难;激励人同样困难;在事情不见起色钱却已花完时,激励自己更是困难;融资是困难的;在投资者介入之后,不让他们使自己的业务偏离轨道也是困难的;在你不得不担心公司的短期生存问题时,关注公司的长期发展方向也是困难的;让不断变化的市场接受全新的产品是困难的;在某种东西上花那么多的时间——制作、销售、推广,仍然不引起别人的注意,坚持下去也是困难的;每一天,你都要在几乎没有足够信息的情况下做出数十个决定,而且每一个决定都会把很多的时间、金钱和许多人的职业置于风险当中,这同样不容易;你犯了错误,并且还会不断再犯的时候,同样也是艰难困苦的,因为除了自己之外,你没办法去责备别人。 科技创业公司是具有下述特征的组织。 产品:科技。 环境:极度不确定。 目标:大幅增长。 运作模式:探索。 伟大的公司是进化而来的,速度制胜。要以一种增量、迭代式的发展方式去打造一家创业公司(好比敏捷和精益开发),而不是费心去找出完美的计划(好比"瀑布式开发")。不管你是在打造产品、开发技术抑或建立团队,都会发现最好的起步方式其实就是先做出一个大概可以工作的最小的东西(最简可行产品,简称MVP),然后再根据客户的反馈(对产品而言)、代码的评审和测试情况(对技术而言)或员工情况(对团队而言)逐渐进化,扩大规模。 99%的Web创业公司都不存在复杂的科学问题,大部分的Web创业公司能否成功,几乎都完全取决于执行、有针对性的推广、销售、产品和技术。 许多人都在谈论如何使用"病毒营销策略",但现实中却没有这样的东西。在所有社交网络上出现的病毒式传播的博客文章或视频并不是一种市场推广策略,而是纯属好运。这是你预料不到的,你也无法控制能看到它的受众,也不能把它变成一种可持续的营销策略。 最困难的事情就是成功函数是非常不连续的。例如,你努力了几个月绞尽脑汁要找出提高用户增长率的方法,尝试引入一些新特性,觉得可以让指标曲线"向上和向右"移动,但实际却一点儿作用都没有。长期以来,一无所获。然后突然之间,巨大的成功就毫无征兆地到来了。 既然我们无法提前知道这些间断点会出现在什么地方,那么唯一合理的行为似乎就是真正努力去工作了。时间的长度是有限的,所以只能尽可能多地去做事情,让自己在倒下之前碰到下一个断点的机会尽可能地大。如果你在到达下一个断点之前就已经倒下了,你也知道自己已经努力过,不可能更快地实现目标了。 创意并不神奇。比如,过去40年几乎所有的畅销歌曲全部都基于完全相同的四个和弦,从甲壳虫乐队的"Let it Be"、Journey的"Don't Stop Believing",到Bob Marley的"No Woman No Cry"、The Red Hot Chili Peppers的"Under the Bridge"、Lady Gaga的"Poker Face",概莫能外(如果不相信,不妨看看Axis of Awesome在一场趣味十足、让人大开眼界的表演中演唱的"The 4 Chords Song"去核实一下)。 没有人能预测哪些知识可以让你产生有用的点子,哪些知识不能的方法。最好的做法就是尽可能多学习一些东西,特别是你觉得有意思的主题。换句话说,"获得创业点子的方法就是不要去想创业点子",而是把自己变成一个有创业点子的人。找到吸引你的主题,花大量的时间去思索,在点子日记上写下自己的想法并与他人分享。学会利用约束条件,寻找痛点,多出去走走,为你的潜意识提供大量时间处理所学到的东西。最终,便会萌发点子。 什么样的环境可以激励人们产生新的点子呢?因人而异,但最常见的要素有这么一些:给自己充足的时间;记录点子日记;解决问题;放下工作;添加约束;寻找痛点;与他人交谈。 产生不同寻常的点子的最佳方式并不是提高点子的平均质量,而是提高它们的差异性。 业务是由点子和执行力构成的。也许有人可以偷走你的点子,但偷走你的执行力就要困难得多。 评估市场规模有一个好方法,就是考虑建立一家赚10亿美元收入的公司的几种方法。 ·以1美元的价格销售10亿件产品:可口可乐(罐装汽水); ·以10美元的价格销售1亿件产品:强生(家用产品); ·以100美元的价格销售1000万件产品:暴雪(《魔兽争霸》); ·以1000美元的价格销售100万件产品:联想(笔记本电脑); ·以1万美元的价格销售10万件产品:丰田(汽车); ·以10万美元的价格销售1万件产品:Oracle(企业级软件); ·以100万美元的价格销售1000件产品:Countrywide(高端金融抵押公司)。 让错误更有可能发生或更不可能发生。 达到完美并不是没有东西可以添加,而是没有东西可以去除。 想通过加入创业公司而致富并不是明智之举。这不仅是不可能的事情,而且也是一种不好的导向。对金钱的渴望并不足以让人忍受在建立公司的过程中所经受的那种残酷的艰难工作。实际上,它甚至还可能会降低你的积极性。建立创业公司很可能不会让你变得富有;如果可以,也不会那么快。成功是极少的,如果确实发生了,也要花上近十年的时间。 第二部分 技术 最初选择的技术并不是关键,最初的决定在最后看来一定是错的,唯一的问题是它会错多久。关键在于,你要在遇到拐点时有壮士断腕的勇气,而不是为了存活而一层一层地给它贴上创可贴。遵循这样的准则极其重要。从目前来看,这比紧跟潮流、为了做出初始的最佳技术决定而进行无穷无尽的设计分析要更为重要。我们应该做的是,确保把自己和环境锻造成能够适应各种变化,能够知道什么时候是重建的合适时机。 好的技术栈,扩展要快于需要进行的维护。 创业的扩展和手动汽车换挡有点类似。太早扩展就像在汽车低速行驶时切换到高速挡:齿轮会越转越慢,可能还会彻底熄火;太晚扩展就像在低速挡上把油门一脚踩到底:发动机会承受巨大的压力,出现红灯告警,如果持续的时间太长,发动机会过热,根本不会达到最高速度。所以,为了能平缓前进,我们必须在合适的时间进行扩展和换挡。 对创业公司来说,使用开源产品通常是最好的选择,其次就是使用商业产品。自己开发基础框架应该被看作是最后的选择,只有在没有其他选择的时候才可以用。 编程在很大程度上就是一门手艺。你会因为选择了正确的工具、努力工作并制作出精美的东西而获得深深的成就感。它的美不仅源于对用户而言漂亮的外观,还源于其精工细作的内部运作方式。优雅的解决方案会让程序员愉悦 编程是一种让他人了解你想让电脑做什么的艺术。程序员的工作并不是在编写代码,而是在理解代码。编程语言是对程序的思考,而不是表达你已经思考过的程序。 "好的投资是无聊的"。我想说好的数据存储也是无聊的。关系型数据库应该是我们做出任何数据存储决定的默认选择。我们可以先用关系型数据库对问题进行建模,看看在碰壁之前我们可以走多远。如果很长时间都没有碰壁也不用惊讶,因为关系型数据库也是相当灵活的。 数据库扩展的解决方案,按照复杂程度,以下列出了最常见的一些选择: ·对数据存储格式和现有数据库的查询进行优化; ·在数据库之前设置缓存(例如内存缓存); ·建立主-从复制; ·对无关联的表进行垂直分区; ·对单张表进行水平分区; ·建立多主复制。 一般而言,我们要尽可能避免对数据进行分区,并坚持使用单点写入。分片的多主系统存在更多的故障模式,在实现JOIN操作、事务、强制完整性约束、迁移、更新、备份和id生成方面也会更加复杂。NoSQL的问题则是,你不得不在上述各个方面做出牺牲,即便大多数用户场景对于这一切并不是必要的。而即便在确有必要做出牺牲的情况下,用关系型数据库去实现也可以让我们走得很远 如果力求全面导致名称长得可笑,通常也是一个信号,表明你所命名的对象承担了太多的职责 实现持续集成最常见的方法就是使用基于主干的开发模型。在git中只使用main,不建立任何分支。 第三部分 团队 当初,他们并不知道那是不可能的,所以他们做到了。 马丁·路德·金做的演讲是"我有一个梦想",而非"我有一个计划"。当你的产品正在艰难的孕育当中,你的团队一周要工作80个小时,这就是梦想,这就是说服你们保持前进的理由,而肯定不是一个计划,或是获得收益的预期去驱使你们。所以为什么说公司的使命不应该和金钱有关。 如果你想做一艘船,就不要召集人们去收集木材,也不要给他们分工或下命令。相反,你要让他们对广阔无尽的大海产生渴望。 自主权、掌控力和使命感是激励人的三个最强有力的因素。如果你找到了一份可以同时提供这三者的工作,那么就是找到了一份你会热爱的工作,也是一份你可以为之自豪的工作。 不要把核心价值和文化规范、管理风潮或者当前策略这些弄混。它是一个核心价值,是哪怕你不再工作也有足够的钱却仍会在生活中遵循的价值,是即便一百年以后,即便你加入完全不同的公司,即便你因遵循这一价值而被市场惩罚,也会遵循的价值。 两个创始人通常是通往成功的最好途径。你可以平均分配工作和股权,也没有政治操作的空间。三个创始人也没有问题:只是在职责划分上会更困难一些,但总可以通过投票决定。一旦超过了三人,事情会变得越来越不稳定,做出决定也变得更加困难,职责和股权的分配也更难处理,更有可能出现政治问题和内耗。 组织设计的第一法则就是所有的组织设计都是不好的。无论什么设计,都是以其他部分为代价来优化组织某些部分之间的沟通的。 在创业的初期,让所有人都在同一个地点工作是很有帮助的,因为那时候仍然要尝试确定公司的文化,并寻找产品的市场地位。只有在清楚公司是什么并且把关注点转移到想出如何做之后,我们才应该考虑通过招聘远程员工的方式去扩大团队规模,成为一家分布式的公司。 远程办公的主要优点实际上也是主要的缺点。如果你只想关起门来心无旁骛地工作,真的也很简单,但是你也会失去很多内部沟通,因为你们并不是在相同的时间、相同的地点工作。人们在午餐聊天时脑海中浮现出来的许多想法也可能就不会有了。 我不信任远程员工,只信任远程(分布式)团队。也就是说团队中的每一个人,即便他们聚在同一条街上,即便他们两个人每天都去同一间办公室,即便他们坐在一间屋子里,他们仍然得像分布式团队那样来行事,确保所有的信息都以完全分布式的方式流动。否则你很容易会遇到这样的问题,两三个人在咖啡机前交谈,而忘了把交谈内容记下来让其他团队成员了解最新情况,这样总是会有人感觉被排除在外。这样是不行的。 为创造性的任务提供奖励也许会影响表现,其中的原因就是,你会将注意力放到奖励而不是任务上。只有在任务无聊且重复的情况下,奖励完成任务的员工才能提高他们的表现,比如一些手工劳动。如果任务需要创造性,比如编程,提供奖赏实际上可能会影响员工的表现。 除了基本的报酬之外(在美国每年大约75000美元),更多的钱,或者更多其他的外在激励因素并不必然会带来更多的激励。那么要怎么办呢?答案就是内在激励因素——我们都具有的内部驱动力,能够让我们因为任务本身的利益而喜欢上一个任务。 放像奖金这样的外在奖励有一个好方法,就是把它们和内在奖励结合起来。例如,我们可以在整个公司的员工面前弄个仪式发放奖金,而不是在一对一的会面中私下发放。这样的仪式可以体现出人们做重要事情的内在驱动力,并且赢得同事的认同。这也是许多竞赛所起的作用:真正的奖品并不仅仅是金钱,而是其他人看到你是胜者。 "My Promise to You (Our Employees)" ——Mike Gamson, LinkedIn全局解决方案副总裁 我们先从坏消息讲起。坏消息就是有一天你会离开LinkedIn。我知道你才进入公司就要考虑离开是很奇怪的,但我要让你关注这件事,这样我们才能最充分地利用我们一起在公司的时间,携手前行。我不清楚你打算在这里度过2年、5年、10年还是更长的时间,但我要确保无论你和我们一起在这段旅途上待多长时间,当你在20、30、40年后回首整个职业生涯的时候,你会觉得待在这儿的岁月是职业生涯中变化最大的。你在这里的这些年学到的最多、成长最快、接触到最多不可思议的人和最具创新性的想法。我希望你在这里的这些年能成为真正改变你职业轨迹的岁月。我希望你在Linkedln比在你们本可能选择的其他地方,获得生命中更多的成就。我向你承诺,我将致力于营造和培育能够让你改变职业轨迹的环境,为你提供接触各种思想、各种人员、各种体验的机会,满足你在生命中实现这一切所需的因素。当你在某天离开LinkedIn,我希望你能够真正地转变。我所期望得到的回报是你能允诺全身心投入到这个自我转变的机会中,投入到我们的公司和这个世界中,并用你的勇气和坚持去追寻这些机会。 只要你想创造某种东西,你会发现你不知道自己在做什么,会发现自己的知识存在巨大缺口,会意识到你缺少一些关键的技能。最终,解决的方法会变得显而易见,那就是读书。

★★★★★

这些年程序员创业越来越多,身边不少小伙伴走上创业道路,有些因市场出问题倒闭,有些因团队出问题解散,还有一些痛并快乐着… 80年代创业军人成功者居多,因为他们更有执行力,更有社会资源,比如:柳传志、任正非、王石、王健林。 90年代创业老师成功者居多,因为他们更有知识,更会鼓动人心,比如:马云、俞敏洪、郭广昌、罗永浩。 90年代后期工程师创业成功者越来越多,因为他们有技术,能沉下来打造好产品,比如:王传福、雷军、马化腾、李彦宏。 其中,不乏优秀的程序员,因为互联网、移动互联网对社会影响太大,让软件工程师走到了风口。

★★★☆☆

本书标题不讨巧,不够吸引力,作为程序员无论是否走上创业之路,还是职场规划都是有一定借鉴性的。 作者有多家知名公司程序员的经历到创立自己的公司,结合走访了大量业内人士,形成了本书三大篇章,是对产品,技术以及团队的思考与经验分享。 我想程序员可选择第一和第三章来看,填补一些技术之外的知识体系进来,第二章技术部分可以节省不少时间,毕竟1000多页的书籍。

★★★★★

这本书很适合 希望创业的程序员阅读。从大章节目录,就可以看到完整的结构:产品,技术,团队。 # 产品 1. 首先,为什么加入创业公司 - 如果单纯为了财务上的成功,加入大公司可能是更好且更有保障的选择;而创业公司,可能本身的失败率,就在75%左右。而且,即使赌对了一家创业公司,也要耐心等待很多年,才能看到明显的财务回报。同时,创业公司可能还会面临更艰苦的工作/对自己更坏的影响。 于我来说,其中的吸引力,可能是一种自主权;一种自己掌握命运的感觉;一种创造的快乐。我在花费很多时间读文档/看别人的内容的时候,能够获得信息增量的快乐,但内心中很空 - 缺少那种自己创造的满足感。而在不同公司工作了10年之后,感觉自己最快乐的那几年,是在创业公司的时候,那种“我可以选择/安排自己做什么事情”的快乐。 2. 如何获得创业想法,进行Product-Market-Fit的验证。这里讲到了一些点:记录想法,关注痛点,和真正的用户交谈,迅速验证, 这一部分其实是我自己的弱项:以前和朋友们一起做的MVP,遇到的问题通常是因为,找不到很好的PMF;没有用户。回想以前的问题,主要是:没有找到核心问题解决,花了太多时间,在不重要的事情上,以至于没能及时推向市场。 3. 产品设计。首先,应该清晰的知道,自己的目标用户是什么样的人,有对应的用户画像;然后,设计产品的时候,关注用户在和产品交互的时候,产生的情感(包括:解决问题是否容易,用户是否会觉得沮丧;);最后,找到这些用户,进行可用性测试,收集反馈,迭代。 在这个过程中,每次能进行可用性测试的最简单实现,都可以称之为MVP。每次的MVP,应该把关注点放在要解决的问题上,而不是代码/系统化方案上。证明这个点子可行,远比实现它更加重要。所以,不应该过早的进行规模化 -- 那只会浪费自己的时间。 4. 数据和营销。在有了产品+用户之后,就可以根据用户的行为,进行进一步的迭代了。其中判断依据,就是数据;有效的数据,大概是这么几个:1. 产品的关键指标(使用量/增长/留存率 等 -- 具体产品不同,会有所不同);2. 根据AB测试的埋点,看不同功能对于产品关键指标的影响程度。 对于创业的程序员来说,营销 可能比产品更加重要。因为一个产品除非好到革命性的改变(比如 ChatGPT),让整个世界谈论它/让人不得不用,且很难被取代 - 大部分产品,如果无法触及到对应的用户,也就很容易被其他人取代。 优秀的人也是一样的 -- 他们也通常是懂得如何营销自己的一群人。 # 技术 5. 技术栈的选择。这里的原则是:好的技术栈,扩展要快于需要进行的维护。就是说,在用户量变大/功能变得复杂的时候,开发的数量并不需要对应用户量而指数增长(当然,根据功能数量线性增长,是有必要的;但不应该高于线性)。公司的技术栈改变,是正常的;但这种改变,需要在不破坏业务的前提下,渐进式地进行。 人们通常对于“自己实现XXX”有很强的愿望 -- 但是,对应哪些 实现起来复杂/容易出错/要花大量时间,且开源世界已经有了很好的方案的技术(比如,K8S / Web框架/基础数据结构),自己实现耗时耗力,容易出错,还不容易让别人一起进行贡献。 对于编程语言的选择,建议选择 符合这么几个特点的:1. 较好的社区支持;2. 成熟,容易学习;3. 有非常成熟的项目背书。 在这个主题下,左耳朵耗子 前辈的《我做系统架构的一些原则》,可能是更好的一个总结。 6. 整洁的代码。这一个章节,我略过了。因为这方面的书,看过太多了;其中,首推 Robert Martin的《代码整洁之道》,和后面的《架构整洁之道》。 7. 可扩展性。写一个“能用”的代码很容易;但一个“能持续支持业务的改动”的就比较困难了。在业务复杂、功能变多、开发人员增加 之后,代码难免变的腐坏;在这个时候,就需要系统的办法,来让代码的复杂度也随之线性增长(而不是n^2的增长)。书里面把这类问题,统称为技术债。并给出四个编码实践:1. 架构/写代码时候,做好代码分离(Micro-Service / Code-Structure);2. 提交之前,做好自动化测试;3. 提交后,做好代码评审;4. 持续性的,维护一个良好的文档。 这里,每一个实践下面,都有很多可以讲的,能做好都不容易;我也见过太多 在其中任何一个步骤 因为前人没做好,让后人花了更多时间去填坑的事情。 为了做好上面这几个步骤,需要整个团队有整体的质量追求,说的过去的代码品味,以及持续的维护/检查。 最后,书里降到了优化;先给了(架构层面的)几个策略。分个类,这几个是我在系统设计(的面试)时候,通常会考虑的:分治,缓存,懒惰,近似正确性,异步,节流,冗余,抖动与随机化;这些,是不怎么考虑的:协同定位,更快的硬件,更快的算法。 但是,在优化之前,应该先测量:优化是很贵的,而且可能破坏最初的简洁性。未经测量直接优化,很可能没有优化到点子上,而导致了架构上没必要的复杂化。 8. 软件交付。最终上线了,没有问题了,才算是交付。如果开发了很久,没能上线;那么这些开发的时间 都白费了。不过,书里面在讲的,是CI/CD/监控。CI/CD这两部分,在我目前的工作中已经是标配/有完整定论了;关于监控,大家采取的方式,可能会有所不同。书里面建议的,是 日志/Google Analytics(前端埋点)/后端埋点 并行的方式。通常来说,用日志进行监控,成本会高一些(毕竟日志的量太大,写起来自由度又太高);但是相对来说比较容易实现。埋点的方式,要对埋点有系统化的设计,才能迭代地抓到主要指标。 # 团队 (因为目前我工作中,主要还是在做具体的代码工作;暂时这部分总结的内容,用过的比较少) 9. 创业文化。这里,从几个角度,在讲如何构建公司的创业文化:愿景+使命,组织设计,招聘晋升机制,激励方式(不能仅仅依赖金钱,有挑战的工作也很有意义),办公室配置(尽量独立办公室/安静无打扰的空间),远程办公,沟通 这几个方面。我想,这一章对于实际的创业,是十分重要的;但我因为没有经历过,读起来不太能联系实际经验,没能很快想到 如何把文中提到的内容 在日常工作中应用起来。这一章应该是我后面需要经常/反复读的。 10. 求职之路。这里讲了如何寻找到创业公司的工作机会/通过面试/薪酬谈判。如果希望加入创业公司的话,就要知道 - 它的成功率极低,给的现金部分可能又偏少;所以 - 拿不错的金钱收益的程度,(相比于大公司)需要耐心待很久。从这个角度来说,找到合适的机会,并且谈判到一个还不错的总包(不仅是现金,还有工作时间/方式/股权归属 等任何变量),其实是很重要的一件事。这一章,不论是否希望找到一个创业公司进行工作,都很值得读一下。 11. 招兵买马。讲的是,自己做老板,要找 - 合伙人/早期员工/后期员工/10x开发。这里,对于10x开发的定义很有意思,也很实际:写程序是一件很具体的事情;而基于对系统的理解程度不同,细节的处理不尽相同 - 让结果/性能相差10倍,是一件很可能的事情。 还探讨了,应该找什么样的人:聪明能成事,文化契合,沟通能力强。以及,通过什么途径找:推荐,雇主品牌吸引力(比如,Google),LinkedIn,专职招聘。如何面试、录用 等。 找到合适的人,可能是一个公司早期阶段,最最重要的事情了。我目前在这方面,还缺少对应的经历,对相关内容的感受/体验,就没有那么强烈。这一章之于我,也是一个值得后面反复回顾的章节。 12. 学习。这里讲的是,作为程序员 如何持续地自我提高。我挺喜欢这一章的;选取记忆比较深的几个故事/观点:1. 作者会在每个深夜11点,坐下来花20~40分钟去(有计划性的)学习新东西——这种持续性的学习,让作者把相关的技能用到工作上(LinkedIn的Web基础架构),并做出来了很好的成绩。2. 对于一个部门来说,计算培训收益,可以看培训之后 员工表现有多少比例提升/节省了多少小时。3. 实践 - 读完了书 就要有所输出;学了技能,就要做个项目 - 甚至于,应该先做项目,再通过项目带动自己阅读。4. 人应该懂得分享,会分享 -- 即使有些内容,对你听起来像是尝试一样,可能也有很多人,是不了解的。而这些内容的输出,一方面可以帮助自己获得publicity,另一方面也可以 让自己把已经习得的知识更加巩固。 总体来说,这本书是很值得推荐的;也值得反复阅读:有些章节,因为缺少相关经验,而读起来没有收获;可以等到后面遇到相关的事情了,再来读一下。 可能 它最大的败笔,就是这个和主题不怎么相关的名字《奔跑吧,程序员》了。分明是一本讲述,作为程序员如何高效工作/创业/发挥出更大价值的书,却起了这么一个几乎完全不相关的名字 - 一点也不符合 信达雅。

★★★★★

这本书表面上教你如何技术创业,但实际上很多思维也可以应用在当前的工作中,追求“始终创业”的心态,并应用在新项目中。 本书分为三个部分:产品、技术、团队。每个部分有各自需要关注的问题。 一、产品 1. 创业时的点子从何处来?点子来源于生活,发现于痛点,需要及时记录。我现在就经常用手机备忘录去记录一些创业点子,积少成多先。 2. 创业初期应该考虑完美还是完成?创业初期要尽快的验证想法,创业初期完成比完美更重要。更好的解释是简约而非复杂。完成最简功能,但不意味可以残缺、平庸、bug一堆。 3. 如何验证点子的合理性?不要臆想需求,而是提前做好需求调研,并在 MVP 后寻找客户验证(从接受度高的人群入手,再逐步扩大人群)。首先向自己问这三个问题: - 频率:你所解决的问题经常发生吗? - 密度:有很多人都会面临这个问题吗? - 痛苦程度:该问题只是让人讨厌,还是绝对必须解决? 4. 如何评估市场规模?书中给了几个方法: - 广告工具:通过如 Google的AdWords Keyword Planner工具获取相关关键词的搜索量 - 竞品调研:网站分析工具估算竞品流量,应用商店公开数据 - 社区调研:根据社区话题讨论贴估算影响人数 - 市场报告:媒体披露的数据,公开的市场调研报告数据 - 产品数据:现有产品披露的数据 5. 关于初期产品方向的思考?完成而不是完美,开发上应该追求敏捷开发,快速试错,最小MVP;实现后应该尽快找客户体验,确保有客户买单;设计上要提前想好市场规模、需求容量、竞品分析,商业分析。 6. 产品设计如何体现差异化?多关注情感设计。一些小点的体验优化,会让用户觉得这是一款有灵魂的产品。情感设计的几个要点: - 考虑周到:记录用户习惯、自动补全、按场景提示而非通用提示 - 积极响应:操作反馈 - 容错防呆:危险操作提供撤回能力、自动保存避免异常丢失用户重要数据、带有帮助和指引的错误信息、及时检查表单错误、永远不出错、按钮点击后立即禁用 7. 如何制定 MVP?MVP并不一定是实际的产品,它只需要能够在客户使用的时候验证你的假设就可以了,比如展示页面、介绍视频、“人工”智能(用人工替代自动化)。 8. MVP 版本有哪些注意点?早期MVP版本,可以不用把力气花在费时费力又存在不确定的自动化和规模化上,可以先从人工操作入手来节省时间,后续验证可行再转出自动化。不止于创业早期,对于我们工作中的技术项目也可以践行这个思路:先工具化,配置写死不可配,留足口子,后续验证可行再进行产品化和平台化。 9. 创业公司早期主要关注哪些数据指标?包括AARRR和神奇数字,这个神奇数字是其他指标的组合、阈值,可以作为核心指标反映项目的发展情况。 - 获取(acquisition); - 激活(activation); - 留存(retention); - 推荐(referral); - 收益(revenue); - 神奇数字(the magic number)。 另外,数据指标应该是持续迭代而非一成不变 二、技术 1. 初期如何选择技术栈以及何时更换技术栈?技术选择之初以熟悉作为标准,但在遇到“拐点”(比如规模上去维护不动)时也要有壮士断腕的决心 2. 技术实现上如何考虑优先级?许多研发对实现复杂项目很感兴趣,但这在创业公司不可取。创业公司应该优先考虑质量和速度。故优先级上应该先拥抱开源,其次考虑商业方案,最后才考虑自研。 3. 创业之初项目是否应该考虑自动化测试?对于初创公司,不要过早的投入和沉迷自动化测试,因为项目发展太快了。只有当你觉得写一个代码需要额外关注bug排查的成本大于编写测试用例的成本时,才引入自动化测试。 4. 项目之初如何平衡代码质量和性能?代码质量比性能更重要,不要一上来就考虑性能优化。真要做做性能优化,第一步需要先测量,根据量化结果确定瓶颈和优化方向,而不是靠直觉。 三、团队 1. 创业公司需要设定使命吗?需要的,这是用来解释公司存在的意义(回答为什么的问题)。另外,使命设计上应该简约清晰、鼓舞人心。 2. 创业公司如何设计组织?没有完美的组织设计,只有当下合适的组织设计。组织设计是一个动态分类的过程。 3. 创业公司如何考虑晋升制度?大多数公司,工程师的晋升路径是转管理而非首席工程师这种难以衡量的地位。这里我觉得跟大众即可。 4. 创业公司如何考虑激励制度?建设外在激励和内在激励。外在激励是工资股票薪酬,内在激励就是成长和成就的诉求,我们应该营造一种能最大程度放大自主权(黑客马拉松)、专业能力(有挑战的事)和目标(阶段性画饼)的环境。发放奖金和荣誉(最佳员工)时也应该对外公开,可以满足员工的成就感,具有一段时期的激励作用,很多人会拿这个用来体现自己的能力。 5. 创业公司如何打造好的办公室?好的办公室应该具有以下要素:能共处的地方(会议室);能独处的地方(隔间工位);能放空的地方(茶水间);能根据员工需要布置(如升降桌、白板等)。 6. 创业公司应该选择远程办公还是办公室工作?办公室工作和远程工作孰优孰劣没有标准答案。对于一家创业公司,前期让大家在同一个地方办公室很重要,一来可以培养大家前期的革命友谊,二来产品方向、企业文化、公司使命都在不断变化,在一起工作可以更方便的讨论和决策。当以上内容确定,才应该考虑是否要引入远程办公,考虑点包括人才储备、保密安全、产品形态等角度。 即使采用了远程办公,公司也应该定期组织团队成员聚会工作(并报销差旅),以提高团队凝聚力、公司认同感、同事间情谊。 7. 创业时如何选择合伙人?创业伙伴作为并肩作战的战友,可以缓解创业时无人沟通的压力,一般寻找1至2个最佳,通常是熟悉的、一起干过活的人,比如前同事、大学室友等等。此外在寻找时还应该考虑这几个特征:敏思笃行、技能互补、动机一致、能够信任。 8. 招聘人才时要考虑哪些点?早期员工应该考虑通才,比如找全栈工程师等多面手。此外应该招聪明并能把事情做好的人。把事情做好意味着要认可创业初期完成比完美更重要这件事。 9. 如何寻找寻找出色的人选?作为一家创业公司,前期想要招聘到优秀的人才必定不能用常规的招聘公告(比如boss直聘这种),可以试着通过人脉内推、通过开源产品和会议建立品牌力以此来吸引、甚至是主动搜索那些优秀的人才。记住一句话:最出色的程序员并不会上门来找你,你必须走出去找他们。此外,还必须提供和其他公司有所不同的工作条件,才能招到这些优秀人员。这些工作条件不限于机会、薪酬、福利等等。 10. 错失优秀应聘者和招进错误的应聘者哪个影响更大?后者影响更大,宁可错过,不可放过。招到错误的人结果工作要帮忙救火、还得考虑裁掉后需要重新招聘的成本,不如一开始就把标准放高,觉得不合适就直接放弃。作为应聘者也应该理解到这点,这样以后自我感觉面试良好但是面试没过时就应该知道原因了。 四、总结 以上便是我读这本书的感悟,大多数点能用在现在的工作中,同时也为自己未来创业储备知识。

★★★★★

创业与人密不可分、伟大的公司是进化而来的、速度制胜。创业公司就是在极度不确定的条件下创造新产品或服务的人类组织。“科技创业公司”是具有下述特征的组织。产品:技术。环境:极度不确定。目标:大幅增长。运作模式:探索。 产品: 1.对于顾客而言,产品的设计就是他们所在意的一切。 2.从根本上说,设计就是如何去呈现信息,让他人可以理解并使用这些信息。 3.设计不是按钮、彩色图表或功能特性,它关乎人和目标。 4.达到完美并不是没有东西可以添加,而是没有东西可以去除。 5.人类,即便是专家,都会非常非常频繁地犯错。数据和测量就是我们把事情做好的最好的工具。 6.点子不是设计,设计不是原型,原型不是程序,程序不是产品,产品不是企业,企业不是利润,利润不是退出,退出也不是快乐。 7.活在未来,实现缺失的东西。 8.创造力并不是一种天赋,它只是一种行事方式。 技术: 1.编程是一种让他人了解你想让电脑做什么的艺术。 2.软件开发并不是在图纸上、IDE中或设计工具里进行的,它是在你的脑海中进行的。 3.高级的模块不应该依赖于低级的模块,二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。 4.一个出色的抽象应该满足两个属性:信息隐藏和可组合性。信息隐藏意味着抽象应该比其背后的细节更加简单。可组合性意味着可以把多个抽象组合起来,从而得到新的抽象,这一抽象反过来也仍然能够和其他抽象组合。 5.创业公司的一切,包括代码,更多是进化而来,而不是提前设计的结果,而重构正是其中的一个例子。 6.突破瓶颈的唯一方式就是从根本上改变你的训练。 7.如果你觉得痛苦,就多去做。 8.最好的学习方法就是教。 团队: 1.自主权、掌控力和使命感是激励人的三个最强有力的因素。 2.每一家伟大公司的核心都是伟大的文化——一种能够让我们想出新点子、新规划和新产品的环境。 3.把使命与核心价值放在一起,就形成了公司的核心理念——处理事情的指导原则。 4.如果在文化上做好了,过程只要做到一点即可:采用出色的判断。 5.让组织和使命、价值保持一致的最佳方法就是招聘已经与之相匹配的人。 6.如果你在寻找一个机会,实际上是在寻找人;如果你在评估一个机会,实际上是在评估人;如果你尝试统筹资源去追逐一个机会,实际上是尝试得到他人的支持并参与其中。 7.你如何才能提供给应聘者无法拒绝的录用机会呢?一个词:倾听。 8.人天生就是爱玩而好奇的,我们经常会在一些困难的任务上投入大量的时间,即便没有人为此买单。

★★★★★

本月末主要读了一本专业书,《奔跑吧,程序员>>书中介绍了从想法到数据营销,技术,交付整个互联网产品的实现交付逻辑,数据模块讲解的是好的产品需要以来一些数据做决定支撑 ,营销模块讲解的是好的产品是需要有对应的销售体系,有一句话,酒香也怕巷子深,技术模块的话大概学习了用不同的语言搭建不同的模块,以及代码的一些原则,后面学习了交付和求职,我学习了之后知道走通一个项目对于产品而言很重要,学习了很多,对自己工作的感悟更深刻

★★★★★

各种可能,只要向前,都是工匠之路

★★★★★

确实书名取得平平无奇。 跳到数据驱动、海盗模型那里开始阅读——因为和现在的工作有很好的重合度,所以就驱使着我快去把这本书"读完"了。 这本书勾画了技术创业型组织完整的成长图景,并没有那么多细节或者拖沓的叙述,但很多观点都很是中肯,尤其是让程序员读起来,不能共鸣得更多。 我觉得这本书于我个人,最有意义的是注意力被平日的工作夺走时,能起到很好的"提点"作用。

书籍信息

作者叶夫根尼·布里克曼
译者吴晓嘉
出版社人民邮电出版社
出版时间2018-07-25
ISBN9787115483669
分类计算机-理论知识
格式EPUB
完结状态连载中
章节数86