本文是 <程序员的修炼-从优秀到卓越> 的读书笔记的第一篇,这本书的作者是 Jeff Atwood,StackOverflow 的创始人之一,Jeff 的文章涉及面很广,他是一个经验老道的程序员、管理者、创业者,这本书谈到了编程之外的很多东西,不管你是初级工程师,还是资深工程师,本书都值得一读。随着你的阅历的增加,每一次重读这本书,都会有不一样的感悟,正如书名“从优秀到卓越”,作者为你指明了道路,至于是否能成功,则要看自己的修炼了。
我会把读书过程中一些精彩的言论摘录下来,有时会加入一些自己的见解或者经历,读书笔记的大纲与书本身的大纲是一致的,这也是我从另外一个地方学到并一直在用的“如何阅读一本书”,记录下来方便自己经常查看,也方便读者查看。下面是<程序员的修炼-从优秀到卓越> 读书笔记系列:
- 程序员的修炼-01:绝地反击之术
- 程序员的修炼-02:编程之道
- 程序员的修炼-03:Web 设计原则
- 程序员的修炼-04:关于测试的一些思考
- 程序员的修炼-05:了解你的用户
- 程序员的修炼-06:互联网那些事
- 程序员的修炼-07:游戏与编程
- 程序员的修炼-08:阅读之美
待办事项不靠谱
作者吐槽说,每天都会有新的 TO-DO 应用诞生,很多人还是管不好自己的时间,TO-DO 列表正在变得吃力不讨好:
- 列表会给你一种正在进行的错觉
- 列表会给你一种完成的错觉
- 对于那些未完成的事情,列表会让你产生罪恶感
- 对于那些总被延期的事情,列表会让你产生罪恶感
- 对于那些不想做而没做的事情,列表会让你产生罪恶感
- 你会根据列表错误地排出优先级
- 列表不够高效
- 列表吞噬了主动做事的乐趣,让你觉得做事情成了一种义务
- 从长远来看,列表博纳更没有让你变得有条理
- 列表会让你做事缺乏主动性
作者的建议是,每天早上醒来的时候,如果你不能够用上帝赐予你的大脑使劲想出今天你需要做的最重要的三件事,那么你必须先把这个问题认真解决了。你必须要搞明白,什么东西对于你来说是最重要的,并且能让你充满激情。
工具是浮云,而你的大脑将会伴随你的一生,信任他,训练他。
今天上班可以放羊
本节主要探讨了 Google 的 20% 时间理论:在 Google,理论上你可以拿上班时间的 20% 来做任何自己想做的事情。Google 许多伟大的软件都是这 20% 的时间里成型的,比如 Gmail、Google News、Google Talk、AdSense 等。
真正能否在公司执行,需要公司的支持:
- 公司项目计划是否足够宽松?
- 公司文化容得下“白日做梦”么?
- 可以接受失败么?
- 个人的实验是否能得到尊重?
在工程师文化主导的公司应该会比较容易实行,“重要的创新和改进可能会在任何时候以自下而上的方式来自于公司的任何人—他们不会按照神奇的总体规划上预定的间隔自己蹦出来。”
你没有说服我
本节以《末代独裁》里面的一个例子,来说明说服别人的重要性。如果想落实一件事情,你不能只是把自己的观点表达出来,等待别人的判断,你要说服别人认可你的观点:如果你想要影响别人,你必须有能力说服他们。
对于软件工程师来说,他们所要知道的不仅仅是怎样去写出技惊四座的代码,更重要的是怎样推销他们的想法和产品。
作者做了举了一个说服他人的草根方法:
- 从整体上来说,他的观点是相当出色的
- 他做事方式是自下而上的,而不是自上而下的
- 他总是能够带头亲自去做事,以赢得别人的信任
- 他拥有足够的耐心去等待机会的到来
如果你一味地保持沉默,总是像局外人一样冷眼旁观,你就什么也改变不了。如果你想改变你的工作和生活,你必须学会说服别人。 对于某些人来说(比如我),就常常受困于此,我总结了一下原因,也算是后续的职业生涯需要加强的部分:
- 性格原因
- 不自信
- 准备不足
当然,打铁还需自身硬,最近我面试有一句话我印象特别深刻:公认的牛人应该是
- 自己得行:技术过硬
- 别人说你行:得到大家的认可
- 说你行的人也得行:得到业界的认可
真正失败的项目
不要害怕失败,也不要主动寻求失败,失败会自己找上门来。不管你在做什么项目,怀揣着学习和锻炼的态度去完成它,这绝对是值得的,与项目的结果相比,过程才是最大的财富。
如果你没能从一个项目的过程中学到一点东西,这才是真正失败的项目。 所以真正的工作中,项目做完要及时 Review,总结经验和教训,防止下次再踩坑,就算是失败的项目,也有大量的经验在其中。
激情造就天才
很喜欢的一句话:“我将会把剩下的5天的课程全都用于让他们变得更加聪明,而不是让他们明白我有多聪明”,不管是做培训还是写博客,要有这样的心态,你不是在炫耀自己多厉害,而是要让看博客或者参加培训的人学到知识,获得真的的成长。
千万不要被身边很多天赋比你高的开发者吓倒,勤能补拙,激情造就天才。
勿以专家自居
作者以维基百科为例,专家并没有更多的权限,在知识面前,人人平等。有时候反而因为你是专家,而对你的期望或者要求会更多。
古人云:三人行,则必有我师;闻道有先后,术业有专攻,如是而已;无他,唯手熟尔。
作为一名专家,重要的不是告诉别人你知道什么,而是要清楚你应该问什么样的问题,病区灵活运用你所掌握的知识去解决眼下的具体问题,作为专家,你的作用是提供明智的、可执行的方向。
最近面试也有提到专家的问题,作者在这里也介绍了几个阶段,大家可以对号入座一下,记得摒弃自己的领域、专业知识、名声和声誉,然后按照下面的阶段来进行重塑:
- 第 0 阶段:我克服了漫不经心
我现在明白了,我需要学点东西 - 第 1 阶段:我克服了恐惧
我觉得我可以学会这个科目或者技能,我会对它变得很了解,而不会惧怕比我懂得多的人。 - 第 2 阶段:我变得有条理
我不再觉得自己不懂装懂或者不学无术,我觉得我有能力参与讨论或者实践,我对自己说的话很有信心 - 第 4 阶段:我超越了自身的能力
我现在觉得对自己有了更高的要求,不再停留在“过得去”而沾沾自喜,我想冒一点风险,富有创造力,不断学习,不断推动自己进步,我想要与那些充满热情的人共事
行百里者半九十
本节主要讲的是项目管理相关的,包括个人项目管理和团队项目管理,如果你总是把 “快完成了” 挂在嘴边,那么你需要思考一下自己的项目管理是否有问题,作者建议:鼓励并强制要求程序员创建一张他们所要做的全部事情的列表,然后再为其中的每一项列出子项,并且尽可能把所有的子项都加进来
下面是具体可能的措施,把他用在项目里面吧
- 把你在一个大项目中需要做的事情全部罗列出来,包括哪些基础设施工作,比如配置源代码管理系统的分支
- 估计这个列表中每一项所要花费的时间,这这最初的估计可以帮助你看到真个项目大致的时间花费
- 看看你列表中的每一项要花费多少时间,如果有一项的时间超过一天,则把这项拆分成若干小项,这种将大任务拆分成小任务的方式是解决“只能完成 90%”问题的关键步骤
- 找出一种呈现任务状态的方式,以便那些感兴趣的人可以了解
- 追踪每天的任务进度,把每个小任务的原定计划和实际完成时间放在同一张表上,这样就可以对工作进度做一个把控。
管理中要有信任
信任可以解决大型软件管理的问题,但是信任无法代替管理,两者相辅相成。
博伊德迭代法则
博伊德迭代法则:迭代的速度胜过迭代的质量。也就是大家常说的,天下武功唯快不破。
十年磨一剑
Gmail 的成功之路是漫长的,很多人一开始并不看好他,但是在产品发布之后,用户的反馈反而很好。
一夜成名的传说容易让人误入歧途,并且遗毒不浅,如果你打算做一个全新的东西,要有打持久战的准备。
作者认为,成功需要付出多年的努力,你必须踏踏实实地在这件事上花费几年的时机去磨练,每天一醒来就开始工作,日复一日地坚持,不断取得反馈,每一天都比过去做的更好。即使你偶尔会不开心,甚至失去了乐趣,单这些都是为了获取成功所必须的。
作者同时也举了写博客的例子,日复一日的投入,作者花了3年,才让他的博客在行业有了一席之地。在目前这个浮躁的环境下,能静下心来,持续做知识输出的人,我相信一定会有好的结果,只要你相信:你正在做的事情是真正值得去做的。
《程序员的修炼——从优秀到卓越》是《高效能程序员的修炼》的姊妹篇,包含了Coding Horror博客中的精华文章。全书分为8章,涵盖了时间管理、编程方法、Web设计、测试、用户需求、互联网、游戏编程以及技术阅读等方面的话题。作者选取的话题,无一不是程序员职业生涯中的痛点。很多文章在博客和网络上的点击率和回帖率居高不下—— from 豆瓣
Jeff Atwood于2004年创办Coding Horror博客(.codinghorror.),记录其在软件开发经历中的所思所想、点点滴滴。时至今日,该博客每天都有近10万人次的访问量,读者纷纷参与评论,各种观点与智慧在那里不断激情碰撞 —— from 豆瓣
《程序员的修炼——从优秀到卓越》的写作风格风趣幽默,且充满理解和关怀;适合从新手到老手的各个阶段的程序员阅读,也适合即将成为程序员的计算机和相关专业的学生阅读。《程序员的修炼——从优秀到卓越》能够帮助读者更多地关注技术工作的人性和人文因素,从而实现程序员职业生涯的成功转折 —— from 豆瓣
关于我 && 博客
下面是个人的介绍和相关的链接,期望与同行的各位多多交流,三人行,则必有我师!
- 博主个人介绍 :里面有个人的微信和微信群链接。
- 本博客内容导航 :个人博客内容的一个导航。
- 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
- Android性能优化知识星球 : 欢迎加入,多谢支持~
一个人可以走的更快 , 一群人可以走的更远