新足迹

 找回密码
 注册

精华好帖回顾

· 写点卖车经历,回国前最后为车版做点贡献 (2013-1-31) look2046 · 胶片映像志 (2012-6-24) autrant
· 宝贝,一定要记得的事 (2009-6-15) lolLoft · Nissan GTR (2012-8-29) 北京吉普
Advertisement
Advertisement
查看: 4410|回复: 50

编程:不为人知的秘密 [复制链接]

2010年度奖章获得者

发表于 2010-8-23 22:49 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Some lesser-known truths about programming

things that people might find surprising about writing code:

•A programmer spends about 10-20% of his time writing code, and most programmers write about 10-12 lines of code per day that goes into the final product, regardless of their skill level. Good programmers spend much of the other 90% thinking, researching, and experimenting to find the best design. Bad programmers spend much of that 90% debugging code by randomly making changes and seeing if they work.

“A great lathe operator commands several times the wage of an average lathe operator, but a great writer of software code is worth 10,000 times the price of an average software writer.” –Bill Gates


•A good programmer is ten times more productive than an average programmer. A great programmer is 20-100 times more productive than the average. This is not an exaggeration – studies since the 1960′s have consistently shown this. A bad programmer is not just unproductive – he will not only not get any work done, but create a lot of work and headaches for others to fix.

•Great programmers spend very little of their time writing code – at least code that ends up in the final product. Programmers who spend much of their time writing code are too lazy, too ignorant, or too arrogant to find existing solutions to old problems. Great programmers are masters at recognizing and reusing common patterns. Good programmers are not afraid to refactor (rewrite) their code constantly to reach the ideal design. Bad programmers write code which lacks conceptual integrity, non-redundancy, hierarchy, and patterns, and so is very difficult to refactor. It’s easier to throw away bad code and start over than to change it.

•Software obeys the laws of entropy, like everything else. Continuous change leads to software rot, which erodes the conceptual integrity of the original design. Software rot is unavoidable, but programmers who fail to take conceptual integrity into consideration create software that rots so so fast that it becomes worthless before it is even completed. Entropic failure of conceptual integrity is probably the most common reason for software project failure. (The second most common reason is delivering something other than what the customer wanted.) Software rot slows down progress exponentially, so many projects face exploding timelines and budgets before they are killed.

•A 2004 study found that most software projects (51%) will fail in a critical aspect, and 15% will fail totally. This is an improvement since 1994, when 31% failed.

•Although most software is made by teams, it is not a democratic activity. Usually, just one person is responsible for the design, and the rest of the team fills in the details.

•Programming is hard work. It’s an intense mental activity. Good programmers think about their work 24/7. They write their most important code in the shower and in their dreams. Because the most important work is done away from a keyboard, software projects cannot be accelerated by spending more time in the office or adding more people to a project.
Advertisement
Advertisement

发表于 2010-8-24 00:57 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
AGREE
LZ 认为自己是good programmer 还是great programmer?

2010年度奖章获得者

发表于 2010-8-24 01:29 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2010-8-23 23:57 发表
AGREE
LZ 认为自己是good programmer 还是great programmer?


给自己就不评价了吧。谦虚点好。

发表于 2010-8-24 04:29 |显示全部楼层
此文章由 bullying520 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bullying520 所有!转贴必须注明作者、出处和本声明,并保持内容完整
很少见到像LZ那么张扬的人了............

2010年度奖章获得者

发表于 2010-8-24 09:59 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 bullying520 于 2010-8-24 03:29 发表
很少见到像LZ那么张扬的人了............


#1 or #2 ?

特殊贡献奖章

发表于 2010-8-24 10:21 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
满足good/great条件不容易阿。大部分程序员都是为了实现功能,而不是美化程序。说白了,大家还不是打工的,又不是写来自己卖的。

原帖由 bullying520 于 2010-8-24 03:29 发表
很少见到像LZ那么张扬的人了............

LZ说了什么很张扬?
Advertisement
Advertisement

发表于 2010-8-24 10:23 |显示全部楼层
此文章由 rogerk 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rogerk 所有!转贴必须注明作者、出处和本声明,并保持内容完整
不算不为人知的了,好好干过几年的,基本都知道吧。。

发表于 2010-8-24 10:37 |显示全部楼层
此文章由 yanyan111 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yanyan111 所有!转贴必须注明作者、出处和本声明,并保持内容完整
i'm  average programmer .....................hate programming...............

评分

参与人数 1积分 +2 收起 理由
Dan.and.Andy + 2 有共鸣

查看全部评分

发表于 2010-8-24 10:38 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
"Good programmers spend much of the other 90% thinking, researching, and experimenting to find the best design. Bad programmers spend much of that 90% debugging code by randomly making changes and seeing if they work."

现在都是产品align,90%的时间thinking, researching, and experimenting对一般人不是很现实,除了个别high level的programmer,能脱离出来,更多的考虑architure,performance的问题,否则,就要自己在完成工作的基础上,挤时间来作这些事了。

想知道大家都是怎么分配自己时间来作系统的research的,比如针对某一个自己不熟悉的领域,也许现在的工作用不到,但对自己的职业发展是必要的,每天几个小时来作reading/research/experiment?

2010年度奖章获得者

发表于 2010-8-24 10:44 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2010-8-24 09:38 发表
"Good programmers spend much of the other 90% thinking, researching, and experimenting to find the best design. Bad programmers spend much of that 90% debugging code by randomly making changes and see ...


有不少觀點是比較老套了點。我也不同意100%

90% 時間researching 明顯太多了點, 哈哈。

发表于 2010-8-24 10:50 |显示全部楼层
此文章由 zn7726 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zn7726 所有!转贴必须注明作者、出处和本声明,并保持内容完整
向 good programmer 努力吧.(monkey12)
Advertisement
Advertisement

发表于 2010-8-24 10:51 |显示全部楼层
此文章由 rogerk 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rogerk 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-8-24 09:44 发表


有不少觀點是比較老套了點。我也不同意100%

90% 時間researching 明顯太多了點, 哈哈。


我认为,如果没有用90%的时间research, think, 那么一定用了90%的时间在debug...或者在挠头擦以前的屁股。。哈哈

2010年度奖章获得者

发表于 2010-8-24 10:52 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 zn7726 于 2010-8-24 09:50 发表
向 good programmer 努力吧.(monkey12)


是啊, 做great就太難了, 你要有在夢境裡和洗澡是出code的本事。我是從來沒夢到過coding, 哈哈

发表于 2010-8-24 11:09 |显示全部楼层
此文章由 maoyu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 maoyu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-8-24 09:52 发表


是啊, 做great就太難了, 你要有在夢境裡和洗澡是出code的本事。我是從來沒夢到過coding, 哈哈


我梦里能飞起来扣篮的次数都比coding次数多。
半醉半醒日复日,花开花落年复年

发表于 2010-8-24 11:16 |显示全部楼层
此文章由 charmaine 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 charmaine 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我一直都觉得算法(或方法)最重要,coding只是实现这个算法,算法花90%时间,剩下的是coding. 算法定了,coding很快的。

发表于 2010-8-24 11:38 |显示全部楼层
此文章由 michaelchin 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 michaelchin 所有!转贴必须注明作者、出处和本声明,并保持内容完整
扯淡,90%的时间是用来玩politics的,一个月有20行代码就不错了
Advertisement
Advertisement

发表于 2010-8-24 11:40 |显示全部楼层
此文章由 michaelchin 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 michaelchin 所有!转贴必须注明作者、出处和本声明,并保持内容完整
做东西容易,但要在大公司做东西就难了。这是为啥那么多人辞职做公司回头找老东家收购
头像被屏蔽

禁止发言

发表于 2010-8-24 12:33 |显示全部楼层
此文章由 lovelyrachel 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lovelyrachel 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我以前一直觉得自己做的不错, 结果新项目老板用 Visual Studio2010 里面的 WPF browser application + MVVM framework , 请了一个 consultant from 1个牛公司, 那个牛人彻底让我见识了什么是great programmer + 天才。 基本上他的架构一天可以搭好, 很 efficient 很reusable 。 此人的code我们要花很久还不是很理解。 如果一定要挑的话, 就只能说他太 over-factoring, 让code 不是那么maintainable。
签名被屏蔽

发表于 2010-8-24 14:33 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 lovelyrachel 于 2010-8-24 11:33 发表
我以前一直觉得自己做的不错, 结果新项目老板用 Visual Studio2010 里面的 WPF browser application + MVVM framework , 请了一个 consultant from 1个牛公司, 那个牛人彻底让我见识了什么是great programmer + 天才。  ...


consultant 就是干这个的,他们内部的training做的很充分,很多solution都是现成的,应该都作的很熟了。

发表于 2010-8-24 15:04 |显示全部楼层
此文章由 yuba 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yuba 所有!转贴必须注明作者、出处和本声明,并保持内容完整
用敏捷开发杀死 great and good 程序员

发表于 2010-8-24 15:12 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Agile programming+open source frameworks turns people into coding monkeys.

评分

参与人数 1积分 +4 收起 理由
yuba + 4 还真是的

查看全部评分

Advertisement
Advertisement

发表于 2010-8-24 15:22 |显示全部楼层
此文章由 fenghuo 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 fenghuo 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我们公司就有几个great programmer,让我这个average的很是佩服啊。。。

发表于 2010-8-25 09:18 |显示全部楼层
此文章由 Dan.and.Andy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Dan.and.Andy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 yanyan111 于 2010-8-24 09:37 发表
i'm  average programmer .....................hate programming...............


Me 2. 混口饭吃,想想工作每天就头痛.

2010年度奖章获得者

发表于 2010-8-25 10:44 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 yuba 于 2010-8-24 14:04 发表
用敏捷开发杀死 great and good 程序员


不明白, 用waterfall 就有great and good coder?

发表于 2010-8-25 11:05 |显示全部楼层

回复 24# 的帖子

此文章由 yuba 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yuba 所有!转贴必须注明作者、出处和本声明,并保持内容完整
agile 和 waterfall 不是相对的,没有“不敏捷就瀑布”的道理

部分敏捷爱好者容易这么理解,或者再演绎一下“瀑布就失败”,呵呵

个人理解,有人同意,有人不同意

2010年度奖章获得者

发表于 2010-8-25 11:19 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 yuba 于 2010-8-25 10:05 发表
agile 和 waterfall 不是相对的,没有“不敏捷就瀑布”的道理

部分敏捷爱好者容易这么理解,或者再演绎一下“瀑布就失败”,呵呵

个人理解,有人同意,有人不同意 ...


還是沒懂, 請具體點, 為什麼agile 殺死了好的coder?
Advertisement
Advertisement

发表于 2010-8-25 12:05 |显示全部楼层

回复 26# 的帖子

此文章由 yuba 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yuba 所有!转贴必须注明作者、出处和本声明,并保持内容完整
对agile理解的不同,远大于对agile是否杀死好的coder理解的不同。在前一个不同存在的情况下,很难对后一个问题进行讨论。

有些项目管理的方式比较抹杀好的coder的作用,scrum master更倾向用常人,而非超人,完成项目。

发表于 2010-8-25 12:16 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-8-25 10:19 发表


還是沒懂, 請具體點, 為什麼agile 殺死了好的coder?


agile不允许你用90%的时间thinking/experiment,只给你10%的时间作这个,还是brain storm.

传统意义上好的software engineer,跟现在agile提倡的以核心人员为主的团队开发/高productivity侧重点很不同,后者用项目的方式,以产品为中心,有具体的硬指标来衡量。

前者的是否是great developer就很灵活了,很多指标都很soft,比较注重个人能力。
头像被屏蔽

禁止访问

发表于 2010-8-25 12:24 |显示全部楼层
此文章由 蓝马 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 蓝马 所有!转贴必须注明作者、出处和本声明,并保持内容完整
agile绝对是很好的管理软件开发的办法。相比其他方法,这个咚咚要更能保证出活。当然,出的活是不是好,就是两码事了。搞agile,程序员被迫出活,但是也是程序员混日子的开始。

发表于 2010-8-25 12:24 |显示全部楼层
此文章由 Dan.and.Andy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Dan.and.Andy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2010-8-25 11:16 发表


agile不允许你用90%的时间thinking/experiment,只给你10%的时间作这个,还是brain storm.

传统意义上好的software engineer,跟现在agile提倡的以核心人员为主的团队开发/高productivity侧重点很不同,后者用项目的方式 ...


没进过工厂,一直呆在作坊里的问一句

具体的硬指标有哪些?能稍微具体点吗?

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部