程序员应该怎样保持优秀

 1. 小范围的选择一些有用技术,透彻 的学习它们,拥抱它们。然后不断的扩展这个范围。

    2. 理解各种数据结构的优点和缺点, 包括它们在内存中和在硬盘上的各自表现。

    3. 理解各种算法的优点和缺点。

    4. 了解你的工作领域。关上电脑,去 做你的用户们在做的事。

    5. 有准备,有愿望,有能力在任何时 候投入到多种技术层面中。你必须知道表象 下的技术原理。在"各个技术层面的掌握程度"和"编程能力"上有着密切的联系。

    6. 发挥你的想象力。永远都要问,"有 更好的方法吗?"跳出常规思维约束。最好 的解决方案也许还没有被发现。

    7. 优秀程序员:我优化代码。更优秀 程序员:我设计数据。最优秀程序员:他们 的不同之处是什么?

    8. 正确的构造你的数据。任何的缺陷 都将造成你的代码里无尽的技术债务。 9. 正确的命名事物。使用"动词-形容词-名词"格式来命名程序和函数。变量名要 足够长,尽量短,有意义。如果其他程序员 不能够理解你的代码,说明你写的不够清楚。在大多数情况下,针对下一个程序员而 编码要比针对环境而编码重要的多。

    10. 把分析和编程分离开做。它们不是 同类的事物,需要不同类型的劳力资源,需 要在完全不同的时间和地点分开做。如果同时做它们,你一样都做不好。(我喜欢在一 天的末尾做不涉及技术的分析,而在第二天 早上进行编程。)

    11. 永远不要图省事走近道。永远不要 把相同的代码部署两次。永远不要把一个变 量命名成另一个变量名的一部分。也许你不明白这些规则,也许你要辩解。但如果你是 遵守着这样做的,这些规则就会约束你正确 的构造你的程序。图省事的做法是让那些低等级的程序员永远停留在低等级的原因。

    12. 学习如何测评程序性能。你会惊奇 的发现从中能学到很多之外的知识。

    13,学会区别对待问题细节和问题后果。问题细节不会导致太大的差别,而问题 后果能导致世界灭亡。只关注后果。

    14. 密切关注你的用户/客户/管理人 员。帮助他们认清楚他们的"what",这比帮助他们明白他们的"how"要重要的多。

    15. 写一个框架,不论你是否打算用 它。你将从中学到从其它途径中学不到的东

    16. 把你知道的东西教给他人——通过口 口交流或通过写作。最终这将成为教育自己 的机会。

    17. 永远要对你的客户/用户说"Yes", 即使在你不确定的情况下。90%的情况下, 你会最终找到方法实现它。10%的机会,你将会去向他们道歉。这是重要的个人成长中 付出的一点小代价。

    18. 寻找别人的做出神奇的事情但却一 滩糊涂的代码。重构它。然后丢掉它,并发 誓自己永远不要犯他们犯下的相同错误。 (这样的程序你会发现很多。)

    19. 数据永远 > 理论或观点。通过开 发东西来学习数据。

    20. 有可能的话,开创自己的业务(服 务或产品)。你将从中学到很多你做雇员永 远学不到的关于编程的知识。

时间: 2024-11-02 17:02:57

程序员应该怎样保持优秀的相关文章

《程序员的修炼——从优秀到卓越》一一1.8 管理中要有信任

1.8 管理中要有信任 程序员的修炼--从优秀到卓越 Marco Dorantes在2005年的一篇博文中提到了另外一篇极好的文章,名为"Why Big Software Projects Fail"(为什么大型软件项目会失败).这篇文章的作者是Watts Humphrey,他曾经参与过IBM OS/360项目.在文章的一开始,Watts即对自2001年以来软件项目完成情况的数据作出了分析. 上图展示了按照项目的规模统计的Standish1数据.当以这种方式查看的时候,我们会发现:一半

《程序员的修炼——从优秀到卓越》一一1.7 行百里者半九十

1.7 行百里者半九十 程序员的修炼--从优秀到卓越 尽管我喜欢阅读编程类图书,但是我发现,软件项目管理方面的书是最令人厌烦的一类.我觉得,这可能意味着我不适合做项目经理.然而,我在Stack Overflow扮演的恰恰就是这个角色. 我并不是说软件项目管理方面的所有图书都"狗屎不如",但它们中的大多数就是这样.一些我认为很值得读一读的书中,有一本叫<门后的秘密:卓越管理的故事>,它是由Johanna Rothman和Esther Derby合著的. 读过这本书之后,你一定

《程序员的修炼——从优秀到卓越》一一1.10 十年磨一剑

1.10 十年磨一剑 程序员的修炼--从优秀到卓越 Gmail的原开发主管Paul Buchheit曾经说过,Gmail的成功是一个漫长的过程. Gmail的开发始于2001年8月,在此之后的很长一段时间里,几乎所有人都不喜欢它.有一些人因为它的搜索功能而使用它,但他们也带来了无穷无尽的抱怨.甚至有相当一部分人认为我们应该终止这个项目,或者按照一个企业级的产品重做这个项目--它应该有一个本地的客户端程序,而不是这个异想天开用JavaScript做出来的东西.即使等到两年半之后的2004年4月1日

《程序员的修炼——从优秀到卓越》一一1.3 你没有说服我

1.3 你没有说服我 程序员的修炼--从优秀到卓越 最近,电影<末代独裁>1里的一个场景成为我的最爱,让我久久不能忘怀.这是一部关于Idi Amin2的传记电影,它从一名虚构的苏格兰医生的视角,生动再现了Idi Amin这位妄自尊大的独裁者. Idi Amin:"我想要你告诉我应该做什么!" Nicholas Garrigan:"你想要我告诉你应该做什么?" Idi Amin:"是的,你是我的顾问.你是这里我唯一信得过的人.你本该一开始就告诉我

《程序员的修炼——从优秀到卓越》一一1.2 今天上班可以放羊

1.2 今天上班可以放羊 程序员的修炼--从优秀到卓越 如果你受雇于谷歌,那你只须拿80%的时间用在本职工作上.而另外20%的时间,你可以用来做任何想做的事情,前提是,你所做的事会以某种方式帮助谷歌进步.至少理论上是这样的. 到目前为止,谷歌的20%时间政策在软件开发行业里已经很出名了.不过,大家有所不知的是,如果追溯回去,这个概念其实早在1948年就由3M公司1提出了. 1974年,3M公司的一名科学家Art Fry提出了一个巧妙的发明.他认为,如果能把黏胶涂在一张纸片的背面(其实他的同事Sp

《程序员的修炼——从优秀到卓越》一一1.1 待办事项不靠谱

1.1 待办事项不靠谱 程序员的修炼--从优秀到卓越 除了看这本书,今天你还打算做些什么呢? 你注意到了吗?在众多类似LifeHacker.com1这样的效率工具网站上,你可以发现大量压得人喘不过气的有关"又有一个新的To-Do(待办事项)软件了"的消息.你可以在各个平台上找到大量的类似软件.现在你大概开始觉得这件事情有点可笑了,按照Life Hacker的规律(每24小时就会有一个新的To-Do软件发布),你大概需要一个To-Do软件来跟踪所有的这些To-Do软件. 在生活中,我不断

《程序员的修炼——从优秀到卓越》一一1.4 真正失败的项目

1.4 真正失败的项目 程序员的修炼--从优秀到卓越 你还记得Microsoft Bob1吗?如果你还记得的话,你一定还可以回想起当时那个广告铺天盖地的场景,但是之后却以可笑的失败收场.有些人甚至把它称作为微软的最大败笔. Microsoft Bob毫无疑问是一场灾难.但是,失败最有趣的地方就是:失败是成功之母.一位在Microsoft Bob项目中工作过的人叙述了下面这段经历. **在Bob这个项目呼声很高的时候,我曾经给比尔·盖茨写过一封邮件,告诉他我觉得这个项目可能会面临前所未有的抵制.一

《程序员的修炼——从优秀到卓越》一一1.9 博伊德迭代法则

1.9 博伊德迭代法则 程序员的修炼--从优秀到卓越Scott Stanfield曾经转发给我一篇Roger Session的文章,题为"A Better Path to Enterprise Architectures"(通向企业架构更好的一条路).尽管文章的标题带了"企业"这个很泛滥的词,但出乎我的意料,这篇文章写得挺好! 我特别喜欢Roger在文中独辟蹊径,使用一组类比来阐明了软件开发中迭代和递归方法的区别.他首先展示了Colonel John Boyd对于2

《程序员的修炼——从优秀到卓越》导读

译者简介 程序员的修炼--从优秀到卓越陆其明,2000年毕业于南京大学.自2004年起,连任4届微软MVP(最有价值专家).现居上海,任北京爱奇艺科技有限公司PPS上海公司研发总监.辛勤耕耘十余载,在技术研发.团队建设.流程控制.项目管理等方面积累了丰富的经验.己经出版的著作有<DirectShow开发指南>.<DirectShow实务精选>.<Windows Media编程导向>.<脚本驱动的应用软件开发方法与实践>,译作有<代码之道>.<

《程序员的修炼——从优秀到卓越》一一1.5 激情造就天才

1.5 激情造就天才 程序员的修炼--从优秀到卓越Jack Black在<摇滚学校>1的花絮中有下面一段采访. 我以前弹的都是木吉他.现在换成了电吉他,我必须要学一下.眼下弹电吉他的水平还不是很好.事实上,我木吉他弹得也不是特别好,但我会用我的热情来弥补. 除非你亲耳听到(看到会更好)Jack Black的乐队Tenacious D的演奏,否则你是无法相信这个究竟有多么真实的.从音乐的角度来讲,弹奏其实并不完美,但是他们成功地通过音乐带给人们愉悦,通常还附带些幽默. 我是在看Creating