`
CoderDream
  • 浏览: 477389 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

《程序开发心理学(银年纪念版)》 读后感

 
阅读更多

1. 优秀程序的要素有哪些 

编程是个很复杂的玩意,但是成就优秀程序员的很多因素其实很容易达到。而怎么做,就看你自己了。

 

1.分享

尽可能地使用开源,并且如果有能力的话也可以把自己的成果分享给大家。整个社会的智慧结晶肯定比一些大公司自管自闭门造车要好。

 

2.公平的心态

不要以为你的选择就是唯一能奏效的,试试其他技术、框架、方法和建议,也许其他的选择比你原先的好也未可知。要用开放的心态去对待任何方法和抉择。

 

3.不可攻击他人

如第2条所言,不要因为别人恰巧使用的是.Net、Java或PHP这些技术就随意攻击他们(我在这方面有过教训)。有时,这些你看不上眼的技术或许要比你想象的更有用。只要你怀着一种平和的心态,你就可以从他们那里学到很多东西,殊不知,海纳百川,有容乃大。

 

4.解决自己的烂摊子

自己的代码自己负责。永远不要指望QA能帮你找到所有的bug。经常全面地测试自己的代码。

 

5.不是自己的东西不要拿

得到许可后方可使用,偷偷用了事后再声称自己无辜是可耻的。

 

6.如果伤害了别人要说对不起

代码审查是一个相当不错却又很少使用的主意。指导经验比你少的程序员,有助于整个团队的发展。但是切记不能公开批评他人。指导并不意味着贬低别人。在得到指导时,有的人会接受,有的人则不会。要记得有时候,从那些水平不及你的人身上,你也能学到很多东西。绝对不能门缝里看人——把人看扁了。

 

7.有备而来

在正式开工写代码之前要先做个彻底的了解。做原型、从网上搜索实例、和其他也做这个的人讨论或者先练练手。什么都不知道就着手构建你从未尝试过或使用过的东西简直就是“自作孽不可活”。如果打一开始就有线索有思路,得到的结果可能会更好更有成效。

 

8.拿得起放得下

不要畏惧替换、重写、重构甚至是直接删掉代码。有时候,如果碰到可留可不留的代码,直接扔掉就是了。不要对你的代码死缠烂打,不肯放手。

 

9.舒适的工作环境

对,要想程序员能高效编程,一个好的工作环境是不可或缺的。一把舒适的椅子,一个安静的工作场所、一代高配置的电脑以及各种有助于编程的工具都应该配备齐全。经理避免一些琐事去打搅到手下的程序员。而作为一个程序员,也不必忍气吞声、给人做牛做马,如果老板对你不好,换个就是了。

 

10.保持生活的平衡——学习、思考、绘画、唱歌、跳舞、工作、玩耍,每天都应该活得丰富多彩

我非常欣赏谷歌的工作方式,它会建议你花上20%的时间用来思考任何你认为值得做的事情。此外,谷歌还提供专门的休息室、游戏房和其他一些能用来放松自己的场所。因为编程是一种高强度的脑力活动,有时候你的大脑真的非常需要稍作休息。不要盲目地不管不顾自己的身体,“工作狂”绝对是不可取的生活方式。每周工作80小时,听上去很牛掰,但是你的工作效率肯定要打一个问号,甚至一不小心会犯个不可饶恕的小错误然后前功尽弃。

 

2. 谈谈我对这本书试读章节的看法

 

本书是一本令人称奇的书,本书的初稿完成与40年前,作为一本计算机方面的书,这确实是一个奇迹。

 

第2章,优秀程序的要素

在谈到某位程序员比另一位更高明时,或者某个程序比另一个程序更优秀时,我们需要知道我们的评判标准是什么。

技术规范

在对程序的所有要求中,首先是要求它必须正确。也就是我们常说的质量。先谈质,是否正确,再谈量,运行是否高效。

 

日程计划

如果某个程序或者软件需要在某个时间点上线运行,比如某石油公司的线性规划软件,按时上线就会每月节省100万美元,而即使比开发计划推迟一个月,该软件需要在没有任何其他费用的前提下运行10年,才能挽回这一个月的损失。所以说,按时完成对一个软件来说非常重要。我们常说的机不可失,失不再来就是这个意思。

 

当然适应性和效率也衡量程序是否优秀的指标。

 

小结来说,优秀的程序需要考量以下一些指标:1,该程序是否符合功能要求?2,该程序的开发是否按照计划完成?3,当条件改变时,该程序是否可以修改?修改的成本有多大?4,程序的效率如何?

 

总结

 

《程序开发心理学》是一本很有生命力的书,它其中的一些核心思想不管是项目管理还是程序开发都有很好的指导作用,是一本值得仔细阅读,品味的好书。

分享到:
评论

相关推荐

    程序开发心理学

    《程序开发心理学(银年纪念版)》一书是由软件工程领域的传奇人物、美国计算机名人堂首批成员之一Gerald M. Weinberg所著。该书探讨了程序开发过程中人的因素,即开发者在软件开发过程中的心理活动、团队协作、沟通...

    c++ 程序设计语言 十周年纪念版

    C++程序设计语言十周年纪念版的介绍表明,这是一本专注于C++语言的书籍,它适合那些对C++语言有兴趣学习和深入研究的读者。 在学习C++程序设计语言时,读者将会接触到以下几个关键知识点: 1. 基础语法:C++具有...

    [C.程序设计语言.特别版.十周年纪念版].(The.C.Programming.Language.Special.Edition)

    《C程序设计语言 特别版 十周年纪念版》是C语言的经典之作,由C++之父Bjarne Stroustrup撰写。这本书深入浅出地介绍了C语言的基础知识和高级特性,对于学习和理解C语言有着极高的指导价值。 在第一章“致读者”中,...

    阿里巴巴Java开发手册(纪念版+详尽版)

    手册分为纪念版和详尽版,两者各有侧重点,为不同阶段的开发者提供了丰富的指导。 纪念版通常包含了核心的编程规范和最佳实践,是新入职员工快速上手公司项目的基础读物。它涵盖了命名规范、基本语法、异常处理、多...

    吾爱六周年纪念版OD

    吾爱六周年纪念版OD

    阿里巴巴Java开发手册(纪念版)

    《阿里巴巴Java开发手册(纪念版)》于2017年11月30日正式对外发布,这是史上内容最全、修正最为彻底的一个版本,并且增加了单元测试规约内容,这也是阿里官方对外发布的最后一个PDF版本,值得纪念,更值得收藏。...

    SQL通用防注入程序 v3.1 最终纪念版

    SQL通用防注入程序 v3.1 最终纪念版

    KOF拳皇十周年纪念版源代码带模拟器

    这个纪念版是为了庆祝KOF系列游戏诞生十年的重要里程碑,尽管不支持在线对战,但其提供的源代码对于个人学习和研究游戏开发具有极高的价值。 源代码是程序的基础,它是用编程语言编写的指令集合,可以直接被计算机...

    C.程序设计语言 十周年纪念版

    [C.程序设计语言.特别版.十周年纪念版].(The.C.Programming.Language.Special.Edition).(美)Bjarne.Stroustrup.扫描版.

    微信小程序开发-万年历案例源码.zip

    【微信小程序开发-万年历案例源码】 微信小程序是一种轻量级的应用开发平台,它允许开发者在微信环境中创建无需安装即可使用的应用。这个“微信小程序开发-万年历案例源码”提供了一个完整的万年历应用的源代码,...

    极点五笔 十周年纪念版

    免费的安装包文件"freeime_V7.13.exe"是极点五笔十周年纪念版的安装程序,用户可以通过运行这个文件在电脑上安装该输入法。通常,安装过程中会提示用户选择安装路径,设置快捷键等个性化选项。安装完成后,用户可以...

    BOOST程序库完全开发指南:深入C++“准”标准库 第3版_PDF电子书下载 带书签目录 高清完整版.pdf

    BOOST开发,学习必备

    OneKey Ghost Y6.3 四周年纪念版使用方法.pdf

    ### OneKey Ghost Y6.3 四周年纪念版使用方法详解 #### 一、程序简介与特点 **OneKey Ghost**是由雨林木风开发的一款专业级别的系统备份与还原工具。该工具以其简单易用、功能强大而著称,特别适合于IT管理员和...

    微信小程序微信小程序游戏纪念碑古游戏源码

    微信小程序版的“纪念碑古游戏”是对其的一种移植或模仿,旨在利用小程序平台的优势,让用户在微信内就能体验到类似的游戏乐趣。 开发微信小程序游戏涉及到的关键知识点包括: 1. **微信开发者工具**:这是微信...

    霹雳工作室Adobe收购Macromedia纪念版

    《霹雳工作室Adobe收购Macromedia纪念版》是一款特别的软件集合,旨在纪念Adobe公司对Macromedia的历史性收购。这次收购在IT行业中具有深远的影响,因为它整合了两大创意软件巨头的力量,为数字媒体和设计领域带来了...

    Java许巍纪念版时钟程序

    Java许巍纪念版时钟程序是一款使用Java编程语言编写的特色时钟应用,它结合了基本的时间显示功能,同时还提供日历查看,为用户带来个性化的时间管理体验。这个程序允许用户自定义背景图像,以符合个人喜好,增加了...

    柳侯祠读后感精选.doc

    文中提到柳宗元被贬至柳州的时间是公元八一五年,那时的柳州还是一片未开发的蛮荒之地,被视为流放罪犯的偏远之地,环境恶劣,生活条件艰苦。然而,正是这样的环境激发了柳宗元的创作灵感,他在永州度过了十年孤独而...

Global site tag (gtag.js) - Google Analytics