《高效能程序员的修炼》是一本由[美]Jeff Atwood著作,人民邮电出版社出版的平装图书,本书定价:49,页数:268,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。
《高效能程序员的修炼》读后感(一):相比管理方面的书籍来说,书一般般
这本书中引用了大量的经典书籍,给我留下深刻影响的是电梯测试:给企业/团队构建一个远景声明。
拥有一个清晰的项目远景声明(Version Statement)是极其重要的,每个人都可以把它当做这个项目的试金石。...你团队里的每个人都应该能通过由陌生人主持的“电梯测试”——在60秒之内,清晰的解释他们在做什么,以及为什么人们在意他们正在做的事情。
一个构建项目远景模型的速效公式:(《跨越鸿沟》《Crossing the Chasm》 Geoffrey Moore)
打入地狱
《高效能程序员的修炼》读后感(二):指导程序员更好工作,更幸福的生活
书中讲述程序员的多种能力,编程只是基本的能力之一,多数程序员需要锻炼非编程的技能,包括如下:
1. 沟通能力,这是多数程序员较欠缺的,这个能力对合作解决项目问题有很大的帮助。沟通能力强的人,可以更快的协调,完成任务。
2. 设计能力,设计是一门很重要的学科,设计的知识对于程序员也是比较重要的,具有设计能力的人可以在界面开发中更好的完成任务。一般产品的最终都是给人来用,精通设计的人能更好的理解用户的想法,开发出使用简单,用户喜爱的产品。
3. 如何开发用户需要的产品的能力,如何与用户沟通,找到产品的定位,找到产品面向的用户群,快速迭代创新的想法。
4. 学习能力,适度的安排学习些自己原来不会的知识(包括沟通,设计,新技术,法律。。。),开阔视野。
程序员的生活一般比较枯燥,这本书最后一章说的关于如何幸福生活的也很有意思,强烈推荐。
(作者所描述的几点关于幸福生活的技巧,看似平常,其实包含了心理学的一些知识,这些心理学知识在设计中也有大量的应用)
《高效能程序员的修炼》读后感(三):高效能程序员的修炼
jeff atwood于2004年创办coding horror博客(http://www.codinghorror.com),记录其在软件开发经历中的所思所想、点点滴滴。时至今日,该博客每天都有近10万人次的访问量,读者纷纷参与评论,各种观点与智慧在那里不断激情碰撞。
《高效能程序员的修炼》是coding horror博客中精华文章的集合。全书分为12章,涉及迈入职业门槛、高效能编程、应聘和招聘、团队协作、高效工作环境、用户体验、安全问题、测试、社区管理、营销广告、人生思考等话题。作者选取的话题,无一不是程序员职业生涯中的痛点。其中,“程序员的八种境界”、“程序员的《权利法案》”、“结交混世魔猴”等文章早已脍炙人口,在程序员圈子里广为流传。
《高效能程序员的修炼》的写作风格风趣幽默,且充满理解和关怀,适合从新手到老手的各个阶段的程序员阅读,也适合即将成为程序员的计算机和相关专业的学生阅读。《高效能程序员的修炼》能够帮助读者更多地关注程序员职业生涯中的人性和人文因素,成长为真正的高效能的程序员。
《高效能程序员的修炼》读后感(四):书中要点小结
本书实际上是作者博客的合集,书中很多内容现在已经是大家的共识了,不过作为书籍整理起来,看起来还是会系统一些。
书里面的内容包括产品设计、运营、开发、测试、团队相关的内容。
关于产品设计与运营:
2.用户界面的重要性
4.MPV产品发布,可用性测试
6.具体运营策略:游戏化、违规用户的处理
关于开发人员:
1.需要通过学习掌握基本计算机知识(数据结构、算法、编程语言)
2.阅读好的书籍和博客
4.注意编写可读代码(避免注释)
6.避免多任务
7.进行单元测试
11.编写安全的代码和系统,通讯加密、登录防护(防范字典攻击,如登录失败下次登录延时)、用户密码保护(密码散列加盐,防止彩虹表)、采用第三登录来利用大公司安全机制保障用户信息安全
关于团队
1.与他人交流时,要正确的描述问题
2.团队内部鼓励创新
3.团队要有清晰的目标,能通过电梯测试
5.开发运维间合作共赢
6.开发团队要开展结对编程与代码评审
7.团队内尽量避免会议
8.团队内有问题的成员要及时解决
9.合理的使用远程办公
《高效能程序员的修炼》读后感(五):高效能程序员的修炼 - 摘句
第1章 入门须知
- 软件开发的整个历程,就是程序员耗尽毕生精力去编写代码,以使其他人能从代码编写工作中解脱出来,从而可以很方便的使用计算机来做他们真正需要做的事情的一个过程,所以不是每个人都需要知道如何去编程。
- 跟钱打交道的人往往会挣很多钱,看看华尔街就知道了。
- 杰出程序员跟普通程序员的区别不在于他们掌握了多少种编程语言,也不在于他们谁更擅长 Python 或 Java。真正的关键是,他们能不能把他们的想法表达清楚。杰出的程序员通过说服别人来达成协作,通过清晰的注释和技术文档,他们让其他程序员能够读懂他们的代码,这也意味着其它程序员能够重用他们的代码,而不必重新去写。
- 人需要花一生的时间去学习如何有效的写作。这事没有捷径,你必须自己去提高,可以从写博客或从 stackoverflow 网站写回答开始,坚持每周练习几次(否则别想成为杰出的程序员)。
- 每个人都应该大量写作,不管是撰写博客、写书、回复 stackoverflow 上的问答、写电子邮件,还是写其它的东西,写下来,然后回过头去斟酌一下。这种书面沟通有助于理清我们的思维。 - Jon Skeet
第2章 把一堆烂事搞定的艺术
- 每一天,你一定要一起床就热情澎湃。否则,你就只是在打工。
- 如果你想造一艘船,就不要催着工人们去收集木材,分派工作,发号施令,你应该教会他们的是对无边无际大海的渴望。
- 迭代的速度胜过迭代的质量。
- 编程这类任务需要你在大脑里同时记住很多东西,你记住的东西越多,你编程的效率就越高。请远离干扰,并且避免同时做多个项目。
第3章 高效编程之原则
- 无论你的软件出现什么问题,甚至最开始出错的地方根本就不是你的代码,你也应该总是假定问题出在你的代码上,并且根据这个假定采取行动。
- 作为一个软件开发者,你就是自己最大的敌人。你越早认识到这点,你的处境就会越好。
- 最好的代码就是完全没有代码。每一行被你带到这个世界的新代码都需要被调试,需要被其他开发者阅读和理解,并且被维护和支持。正是因为我们当中的程序员写了太多糟糕代码,所以才说代码是我们的敌人。
- 避免写注释。你应该总是专注于编写代码,而忘了还有注释这种东西存在。
- 当我脑子里有了一个明确的目标并且有一段复杂的代码要写时,我会把时间花在实现代码上面,而不是(用注释)写下它的故事,讲给我自己听。
- 不管文档上怎么说,源代码才是最终的事实,是你能找到的最好的、最确定的、最新的文档。
- “向橡皮鸭求助”这种解决问题的方法,就是完全投入地向一个假想的人或者没有生命物体问一个透彻而详尽的问题。
- 与其担心你全心投入的下一个大创意是否足够出色,不如担心你能执行得有多好。
- 在软件开发领域,执行意味着专注于构成你的应用程序的所有微小细节。
- 你团队里的每个人都应该能通过由陌生人主持的“电梯测试” —— 在60秒内,清晰的解释他们在做神马,以及为什么人们会在意他们正在做的事情。
- 性能是一个特性(能帮助我克敌制胜)。
第4章 招聘程序员须得其法
- 在雅达利,我们聘用一个人的标准是看他的业余爱好,而不是依据他在学校里的学习成绩。
- 应聘者对公司文化的认同往往比他们高超的编程技能更加重要,前者更能决定我们是否成功。
- 电话面试的目的,不是让候选人复述他们做过的事情,面试官应该把他们从舒适区推出去一点,问他们以前没见过或没做过的问题,你要了解这个人在面对新事物(比如你的代码库)时会做出什么样的反应。
第5章 促使团队紧密协作
- 要想赢得信誉和尊敬,最好的方法就是努力工作并取得实实在在的成绩。
- 如果你想建议些什么,你应该为此付出实际的行动,做好充分的准备。
- 最有效的一种技术领导就是以身作则。
- 让我们公开讨论,这样我们就可以相互学习怎样把我们喜欢的事情做得更好。
- 只要保证你有超过一双的眼睛在看你写的代码,无论是结对编程还是代码审查,你都一定会开发出更好的软件。
- 你不必和团队里的每个人都成为朋友。
- 永远不要低估真正和另一个人通话的力量,尤其当你是在远程办公。
- 远程开发代表着未来。
第6章 蝙蝠洞:程序员的高效工作场所
- 每个程序员都应该有两台显示器,有一台快速的电脑,自己选择鼠标和键盘,有一把舒适的椅子,能快速接入互联网,都应该有安静的工作环境。作为程序员,你要去争取应有的这些权利,你可以让公司做出改变,要不然你就换一家公司。
- 购买一张优质的桌子和一把优质的椅子是你作为一名软件开发工程师所能做的最好的投资之一。
- 拥有更多的显示空间确实会让你的工作更有效率。
第7章 设计时要把用户放在心上
- 令人赏心悦目的产品和让人勉强容忍的产品的区别,就在于它们的细节有没有被做好。
- 从用户角度来说,用户界面就代表了你的软件。
- 用户界面设计优先于软件。
- 理想情况下,搜索都应该只返回一个结果,那个结果就是你真正要找的东西,并且在一页内就能完全显示。
- 用户不会阅读你放在屏幕上的任何东西。更具体的说,用户只会读取足以让他们完成任务的、最少量的文字。
- 把最重要的内容写在尽可能靠近页面顶部的地方。
- 终极的单元测试是,用户是否想要使用你的软件。
- 除非你把软件发布出去,送到用户和客户的面前,否则你无法知道那些被做砸的东西到底是什么。
- 应该对你的用户和客户做出及时的响应,并且通过基于他们的反馈持续改进和完善你的软件来展示你对他们的诚意。
- 请尽早发布你的软件,即使第一版做的很差劲,也要坚持把它发布出去。
第8章 安全基础:保护用户数据
- ......你访问过的网站越多,你以用户名和密码搭配的方式登录乃至信任的网络就越多,这些网络中某个网站被人攻破的概率也就越大......
- 限制每个用户的登录尝试次数是安全领域的“101”。这样可以一定程序上防范字典是攻击。
第9章 加强代码测试,别让它太差劲
- 把开发人员带到“战壕”里面去是至关重要的,因为开发人员交付代码后,客户才是真正与代码休戚与共的人。
- 要先避免失败,最好的办法是不断的尝试失败。
- 同级之间的代码评审时你为提高代码质量所能做的最大的贡献。
- 我同情那些不写单元测试的傻瓜。
- 任何时候当你想要把某些信息打印到屏幕或输出给调试器,你都应该把它改写成一个单元测试。
- 如果你不找来真正的用户做可用性测试的话,你是无法知道你的程序能否正常工作的!
- 快速失败。当你的程序碰到问题时马上失败,而不是自动绕开问题来使软件表现的更加健壮。
第10章 创建并管理社区,同时从中受益
- 倾听社区的声音,但别被它们牵着鼻子走。
- 优秀的艺术家善于模仿,伟大的艺术家善于剽窃。
- 沉默以对是最残酷的惩罚方式。
第11章 揭露营销伎俩,以及如何规避
- 禀赋效应。人们一旦拥有某项物品之后,他们对该物品价值的评价要比拥有之前大大增加。
第12章 轻重缓急,了然于心
- 要搞明白你没日没夜的拼命工作到底是为了什么。
- 经历胜过物质。
附作者最后推荐的程序员必读之书的豆列(https://www.douban.com/doulist/44636546/)。
《高效能程序员的修炼》读后感(六):幸福是一种过程而非结果
因为Jeff讲的很多东西其实已经流传得比较广泛了, 所以再拿来读也就没有那么多深刻的体会的. 不过古人讲"开卷有益", 以下是我自己印象还比较深的几个点
# Screening
Jeff建议招人的最后一步是编程"试镜". 为面试者分配一个可以在两三天内完成的, 当前项目中会遇到的一个实际问题. 以外包咨询的方式雇佣面试者. 如果成功, 就证明了面试者在进入团队后的实际工作能力. 如果失败, 所浪费的咨询费也将远远小于一个失败雇佣的成本.
gt; 诸葛一生唯谨慎, 吕端大事不糊涂
其实从面试者的角度来说, 也挺好. 即使最后面不上, 也有钱可拿, 算是这些时间也没有白费吧. 当然, 不给钱的"试镜", 或者"家庭作业"都是耍流氓
# Crazy Monkey
有一个团队这么搞系统稳定性. 他们上线的第一个服务是一个会在集群中随机时机随机kill任意进程的服务, 名曰"混世魔猴". 而他们就在这种场景下来要求其它服务的可用性和稳定性
gt; 年经人, 要对自己狠一点
# Happiness
幸福是一种过程, 而不是结果
这当然适用于编程了, 因为它本事就适用于人生. 同样, 它也适用于为了省7块钱而开车去更远的商店去买一支原价25元的钢笔