首页
社区
课程
招聘
[推荐]卓有成效的程序员(样章更新)
2009-2-17 14:55 37198

[推荐]卓有成效的程序员(样章更新)

2009-2-17 14:55
37198
收藏
点赞0
打赏
分享
最新回复 (47)
雪    币: 411
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kmlch 2009-3-4 14:19
26
0
世界的进步懒人贡献最大哦。
雪    币: 508
活跃值: (89)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
Hefe 3 2009-3-5 12:03
27
0
我觉得这些道理还是不能搞一刀切,比如说:懒惰,傲慢,缺乏耐性,我觉得拥有这3点只能说明某人智商相当高,但我智商不是相当高呢。还是勤能补拙,书山有路勤为径,天道酬勤!这是真理
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
westhack 2009-3-5 12:44
28
0
懒惰,傲慢,缺乏耐性 好!
雪    币: 400
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mandysss 2009-3-5 15:44
29
0
支持一下
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zclmoon 2009-3-5 21:08
30
0
希望能看到。。。
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lilu 2009-3-5 21:19
31
0
要下回来看看那。
雪    币: 151
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hackf 2009-3-6 12:55
32
0
说和在理,严重支持
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sishenhuli 2009-3-6 13:34
33
0
很好的哦,我收下来看看咯
雪    币: 207
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
johnllon 2009-3-6 15:28
34
0
怎么没有目录哇?
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
myme 2009-3-6 19:01
35
0
[QUOTE=;]...[/QUOTE]
很好的文章,呵呵,看看
雪    币: 445
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kuifatang 2009-3-7 10:37
36
0
是本好书!可惜下不了!
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhengbindu 2009-3-7 17:28
37
0
http://bbs.phpchina.com/thread-107365-1-1.html
    效考核可以检验一个员工的工作能力如何。优秀的公司对员工绩效考核都有一套严格的标准和程序。当然,考核的结果直接跟奖惩挂勾,做得好的升官发财,达不到要求的淘汰出局。拿到软件开发来说,一个程序员的生产力好坏直接影响软件工程的顺利进行。作为程序员一定要修炼好自己的内功。

虽然在程序设计折腾了很多年,但“卓有成效”始终与我保持绝对遥远的距离,这也是这么多年来我未敢涉足职业程序员的原因之一。一个效率低下的程序员对一个团队的影响是巨大的,足以拖后腿,累坏所有团队成员,导致工程延宕,无法预期交付,造成巨大的经济损失。作为一个低产低效的民间程序爱好者,我把这么多年来失败的教训总结如下:

第一、事预则立。肥同小可老师在他堪称经典的“糟糠之论”博文(http://user.qzone.qq.com/51153204/blog/1231724918)中讲到了“事预则立”,这实在是万事成功的第一步,没有目标那是无头苍蝇,有了目标不作规划那是只糊涂苍蝇,有了目标和规划不去努力实施那是只懒苍蝇。很不幸,对于程序设计这件事我顶多算是第二只。所以至今连个留言本也没写完整。奉劝各位在开始一项工程或接手一个组件之前一定要做好规划,不论这个工程或组件有多小。从留言本开始就要养成良好的规划习惯。好的开头是成功的一半,这开头指的就是规划。

第二、不折腾。胡总书记在改革开放三十周年大会上提到了“不折腾”,实在是包含了万千深意的至理名言。然而我似乎是背道而驰,本着“折腾出真知”的歪理邪说,时时在闭门造车轮。尽管“michelin”——shanji说有AD嫌疑——是那样的圆那样的经久耐用,却一直没有拿来用,直到大街上跑满了车子,才发现自己的独轮车早就跟不上时代。孟岩老师将程序员分成了两大类,一类从事底层研发,一类从事应用开发。就我的理解,研发应属于研制车轮、研制发动机和各种部件,复杂而且精密;而开发则是选择合适的轮子、发动机和各种部件,连接装配来组成汽车。大多数的程序员都属于后者。除非你有能力造一个好车轮,否则千万不要正式生产中等你造好车轮装到汽车上。装配工造轮子,这叫做折腾。后果估计是客户很生气,后果很严重。如果你希望有成套的配件库,那么掌握一个成熟的开发框架是不错的选择。

第三、修炼内功。说到内功的修炼,实在有些枯燥无味。都是一些原理之类的东西,不着边际,不能实用。我一看就开始昏昏欲睡,不久就要去跟周公对弈。所以身在江湖多年,依然只是三脚猫。不要重复发明轮子是相对于软件实际生产来说的,如果要修炼内功,学学轮子的原理和试着造一个车轮,对提高轮子的认识那是大有裨益的。日后在装配中你会明白什么样的轮子可以装在什么样的车子,及如何搭配性能好一些,做起事自然事半功倍,效率非凡。原理理解了,好比打通任任督二脉,内功会大大增强,不日可以成为武林高手。然则内功的修炼非一朝一夕可以达成,也没有立竿见影的成果。如何把持得住就要看各位的定力如何了。

以上是我的一点愚见,或许有误人子弟之嫌。如果你想提高自身的生产力,不妨去读一下NEAL FORD《卓有成效的程序员》。本书从机制(生产力法则)和实践(思想)中对如何提高程序员的生产力作了深入的分析阐述。它会启迪你的心智,告诉你所需要的一切。
雪    币: 218
活跃值: (129)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fire_rabbit 2009-3-7 22:06
38
0
I'm waiting for this stuff now! Puncher man?!
雪    币: 144
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
静慕者 2009-3-8 00:09
39
0
我还在梦想中挣扎~思考我真的适合搞计算机吗?~
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bangxing 2009-3-8 21:02
40
0
期待了
呵呵
时间快到了
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
miaohua 2009-3-9 13:45
41
0
值得收藏~~~~
雪    币: 235
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
情剑无伤 2009-3-10 19:32
42
0
懒惰,傲慢,缺乏耐性
这也是美德?
看来我都不具备这些美德
我想实际上是说明一个道理:垃圾是放错地方的财富!
讲得好,顶起
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ZHOUXX 2009-3-11 09:36
43
0
感谢楼主分享!下载学习下,支持!!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
leason 2009-3-13 12:57
44
0
下了!谢谢!!
雪    币: 194
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
float冰 2009-3-14 15:59
45
0
有空我就拿来看看,学无止尽啊!
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhengbindu 2009-3-20 16:19
46
0
如何给牦牛剪毛——《卓有成效的程序员》读后感
作者在第四章的末尾给出了一个副标题:别给牦牛剪毛。
然而,我却觉得给牦牛剪毛是需要的,重点是在如何给牦牛剪毛,因为牦牛的毛是极具经济价值的。

我经历过这么一件事:
1.很久没做OJ了,我打算重新注册一个账号去做OnlineJudge,并且由于POJ的交流比较多,所以我到那里注册了。
2.我开始思考应该如何做题,是从1000开始one by one做呢,还是具有针对性地做呢?最终我决定进行类似专题的做题以及总结。
3.于是我就翻起身边的书,刚好贪心法是第一个进入眼帘的,所以我决定从它开始。
4.我开始进行贪心法的学习,但是我发现选择和排序是基础,犹如地基一般,于是我觉得应该先学习选择和排序。
5.当我准备学习选择和排序时,我想把我写的代码放好弄成以后自己的库,那么我就要写得优美、通用才行,而且由于当时在学C++,所以毫无疑问的,我得去巩固我已经摇摇欲坠的模板知识。
6.当我进军template后,我又碰到了一些不扎实的知识点……
那么我这样算是给牦牛剪毛吗?不管正确答案是什么,那么我是不是不应该这么做呢?
毫无疑问,我这样的行为和作者说的根据Subversion日志自动生成一些文档而引发的系列动作很类似。

而另外一件事是我每天登录我喜欢的ubuntu时,我都要敲一遍 sudo xrgsu -d,有时候可能由于学校网络的某些原因或者其它,我甚至得敲 sudo ifconfig eth0 **.**.***.* && xrgsu -d 好长一段时间。好多次我都想用一段shell来解决这些事情,不过更多次地,我都懒得动了。

这件事又勾起了我前不久的一件悲剧。当时,我就像现在这样坐在电脑前,敲着键盘。不过那时候敲的是代码,我在纠结要用一个O(n2)的算法呢还是用O(nlogn)的呢?后来由于前者敲打起来比较简单,所以我就选择了它,结果计算机给了我一个“超时”的报复。而且由于庞大的数据计算机不再如同以前一样马上给出答案了,而是在肉眼可辨的一段时间后才计算出结果。于是,我因为懒得敲打那些代码而花费了更多时间在等待结果的处理上了——因为我开始不相信,多尝试运行了好几次。

时间就这样浪费掉,浪费在一些很细节、我们很少注意的地方上。而提到细节这个字眼,我们很容易就想到了一句话:细节决定成败。
《卓有成效的程序员》这本书便是从细节上谈如何卓有成效的。为什么细节会决定成败呢?因为成功的人都利用着那些如同沙漏一般的时间,看似每一段时间都很短,但是日积月累又多得吓人。
书都如同良师益友一般,但是,一千个读者有一千个哈姆莱特,从一本书收获多少主要是看自己抱着什么态度去阅读的。如同javascript,或者说ajax,存在了那么久,却是Google引发了一代潮流。也如同任何一门学问一样,怀着敬畏的心态地学习,会越学越发现自己的浅薄。
如何卓有成效——这也是一门学问。

http://bbs.phpchina.com/thread-107417-1-1.html
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhengbindu 2009-3-31 15:42
47
0
  程序员,就是整天与机器打交道的那群人。
  在计算机并不普及的年代,这样的描述毫无疑问;然而,这些年来,得益于计算机成本的不断下降,软件使用门槛的不断降低,如今,昔日昂贵而又神秘不可莫测电脑,已经成了随处可见、人人能用的办公器材。一句话:人机交互,不再是程序员的专利。大家都可以用电脑干活,只不过,程序员用电脑写程序,其他人用电脑干其它事。
  结果,普通人抱怨的问题,程序员也在抱怨:电脑不够聪明,不够智能,效率太低……
  
  可是,电脑真的进化到了对程序员和普通用户“一视同仁”的地步吗?
  
  我不由得想起,上个世纪80年代,温伯格在《技术领导之路》中提出的疑问:
  
   (开办技术领导力学习班)也让我们产生怀疑,技术在当今社会扮演了重要的角色,我们的学习班,是否赋予了某些人太多的力量?
  
  细细想来,当年,IT技术那么高深,只有少数人能够接触,因而程序员“理所当然”地借助了IT的东风,具有超常的力量。可是如今呢?与常人无异的程序员(或者说,IT技术人员),他们身上让人担心的“太大的”力量,到底是被淘汰了,还是没有发挥出来?
  
  对这个问题,不同的人或许有不同的看法。不过,读过The Productive Programmer(中文版《卓有成效的程序员》)的人,多半会选择后一个答案。
  
  The Productive Programmer是一本奇特的书,它的Productive(也就是“生产力”),与新的语言、新的框架、新的系统完全无关,而是另辟蹊径:它只是提醒读者,作为程序员,你与普通用户是不同的:其它人只是简单地“启动”程序,而你完全可以动用自己的专业知识,“驱使/调度”那些程序。这样的机会,普通用户想不到,也不愿意抓住,但是抓住它们,你的生产率就会成倍上升。所以,这本书叫做The Productive Programmer,而不是The Productive Computer-User。
  
  薄薄的一本书(英文版224页,中文版215页),共分16章,兼顾概念和实践两个方面,既介绍了加速、专注、自动化等等提高生产率的“先进 ”思维观念(譬如“多用键盘少用鼠标”,“消除干扰集中精力”),也给出了在设计、分析、构造、元编程、多语言编程等等多种任务中贯彻前述思想的若干实例(譬如 “用全面测试保证质量”,“选用最省事的方式/语言完成任务”),可以说是“麻雀虽小,五脏俱全”了。
  
  不过,看完整本书,我最深刻的印象还是贯彻全书的思想。说白了,就是尽量让机器做机器该做的事情,让程序和程序打交道,发挥程序员在这方面的先天优势——他人眼中的普通工具,是程序员手里的有利武器。
  不信,你可以想想,虽然如今人机交互的难度已经大大下降,然而程序终究是程序,程序跟人打交道,与程序跟程序打交道,效率差的不是一星半点:
  不用宏,你可能需要一次又一次地重复选择、修改、保存;
  不用脚本,你可能需要一次又一次地点击、配置、等待;
  不用自动化测试,你可能需要一遍又一遍地运行、调试;
  不用管道,你可能需要一次又一次地生成、删除中间文件;
  ……
  
  The Productive Programmer则会“教导”你:
  多用宏吧,启动它,你就可以迅速完成大量重复的工作;
  多用脚本吧,你可以提高运行的效率,避免变数和误差;
  多用自动化测试吧,你可以迅速定位问题,保证质量;
  多用管道吧,这样多个程序就可以“无缝结合”成一条生产线;
  ……
  
  没错,学习宏、脚本、自动化测试、管道(Shell),不是“容易”的事情。但别忘了,身为技术人员,了解技术,学习技术,运用技术,正是你的职业,你的优势,也是你的责任,你的生产力(所谓productive)所在。随便举个例子吧,在本书中文版的第196页有这么一段话:
  
   ……在我刚才提到的例子中,开发人员用了1小时58分建立正确的语法,然后用了不足两分钟运行。在一些未曾培训过的人眼里,他的大多数时间都没有效率(这就是为什么他们反对使用正则表达式的原因),但最后,他节省的是几天的时间!……
  
  我还要补充的是,解决好这样的问题,“现在”能节省几天的时间,将来,更可以节省无穷无尽的时间!就我的开发经历来说,平时多注重这样的细节,做些 “没效率”的事情,积累起来,就可以节省大量的时间和精力——至少至少,你不会抱怨,自己终日被一大堆“简单重复劳动”所困扰。
  
  类似的例子,在书中随处可见,譬如作者讲到,“几乎每个*nix用户,都会有自己的shell alias”,真是于我心有戚戚焉:我自己积累了一大堆alias,喜欢用grep –color把要找的内容标成高亮,也喜欢在统计脚本里用不同的颜色标注不同的状态……在Shell下干活,更加简单、利索,一目了然,这种流畅和效率,也可算专属于程序员的宝贵财富。
  
  当然,也有读者会觉得很烦:作者几乎讲一个很小的例子,几乎都要强调一遍:“简单重复劳动是低效的(程序员不应该这么干)”。不过,我丝毫没有觉得罗嗦,反而因此喜欢上这本一个下午就能看完的“轻量级”小书:阅读它,你并不需要太多的期望,权当一次愉快的思维体操吧——你会发现,专属于自己的高效率,就来自书中提到的点点滴滴。

http://www.luanxiang.org/blog/archives/593.html
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
剑无臣 2010-7-29 16:52
48
0
我发现我也有这样的优点哦,哈哈~~
游客
登录 | 注册 方可回帖
返回