文章分类 - 前辈经验
哲人的幽思、IT人的心路历程!
摘要:[原文链接]职业人士最常见的一种抱怨是:时间太少。每周工作超过60小时的人会抱怨甚至挤不出时间来处理他们邮箱里的邮件,更别说有创见性处理大项目中的问题。但时间并不是问题,哈佛经济学家Sendhil Mullainathan说。最终阻碍你成功的是你的大脑“带宽”使用效率,或集中精力的能力。Mullainathan的研究主要针对是资源稀缺情况,当人们缺少某些东西时会如何应对——可以是缺钱,食物或时间。他和他的搭档普林斯顿大学的心理学家Eldar Shafir在周二的每年一度的Aspen Ideas节上公布了他们的发现。他们发现,这些资源短缺导致人们不能作出正确的决策。因为他们的大脑只能够处理这么多
阅读全文
摘要:[原文链接]我并不认为程序员是一个情绪特别丰富的群体。但有一些事情却能很容易刺激程序员的神经,那就是代码格式和布局。如果看到一个函数的括弧在同一行上没有闭合,我的眼睛会喷血。如果看到有人没有恰好的在两个函数间留一空行,我的小腿会抽筋。但重点在这里——除非是在家里开发自己的业余爱好软件,我的这些个人喜好其实是无关紧要的。同样,作为一个团队中的一员,你的个人编程喜好也应该放到一边。编码风格很容易会和编码规范混为一谈,因为这两个词经常会被人换着使用。我认为,编码规范同时包括了编码风格和其它规范,不仅仅指代码格式。例如,像“返回成功/失败的函数应该用一个整数作为返回值”,这样的规则不属于编码风格。在这
阅读全文
摘要:[原文链接]下面是一些迄今为止最好的关于编程的名言名句。阅读它们时相信你会有几分愉悦,你可以在一些会谈场合引用它们,一定能为你的团队吸引到不少的好程序员。UNIX很简单。但需要有一定天赋的人才能理解这种简单。–Dennis Ritchie软件在能够复用前必须先能用。–Ralph Johnson优秀的判断力来自经验,但经验来自于错误的判断。–Fred Brooks‘理论’是你知道是这样,但它却不好用。‘实践’是它很好用,但你不知道是为什么。程序员将理论和实践结合到一起:既不好用,也不知道是为什么。–佚名当你想在你的代码中找到一个错误时,这很难;当你认为你的代码是不会有错误时,这就更难了。-Ste
阅读全文
摘要:[原文链接]这里将向大家分享的是一些我对编程的思考总结,这些经验在我毕生编程生涯中曾帮助我在无数的事情上作出正确的决定。这些编程策略有些是很显然的,但实际编程中往往被人们忽略。下面的例子是用Python写的,但这些概念适用于任何编程语言。2. 代码优化找出程序的主执行路径——你的程序大部分时间都执行这些模块。首先优化这部分代码,但也不要在程序实现的第一次迭代中进行优化。那些处理边界情况或失败/异常处理的地方,这部分代码不需要优化,除非它们引起了值得注意的性能问题。 :).3. 代码行数不要试图压缩代码行数,但你应该压缩每个任务的代码行数。写简单的函数/方法,每个函数/方法只完成一个任务,而不是
阅读全文
摘要:[原文链接]我们说懒惰有三种。第一种,整天就是吃和睡。第二种,是告诉自己,“有一类人,就像我这种,是永远管理不好自己的。”在佛教思想中,这种懒惰会让你认为努力也是白费的,你永远无法获得精神上的救赎。无自信会让你打消任何企图努力一下的念头。而这第三种就是,把生命浪费在不是最重要的事情上,总是不从解决事情最本质的问题入手。所有的时间都在想办法解决次要问题,一个接一个,永远没有尽头,就像湖面涟漪的水纹。你在告诉自己,一旦完成了这个或那个,你将会去做一些更有意义的事情。…克服第一种懒惰——生活中只有吃和睡——的方法是反省死亡,反省万物终归尘土的自然属性。我们不知道何时就将死去,何事将会导致我们死去。所
阅读全文
摘要:[原文链接]“Scientia potentia est”——这是拉丁语,意思是“知识就是力量”。这是长久以来人们就熟知的信念:你对这世界了解的越多,你就能越好的在世界里生活。你对一件事了解的越多,你就能越好的掌控它。那最简单的汲取知识的途径是什么?读书。如果你想更好的掌控自己的生活,让生活按照自己意愿发展,你就需要读书,读大量的书。我想,所有的人都会同意这个观点。但问题是,如何能做到能够充分的阅读?就拿我来说,我对上一年的阅读量并不满意。我每年大概读6-8本书,我认为这个数字太低了。大概6个月前,我制定了一个新的读书策略:规定一个每天必读的页数,30页,每天坚持,不论有什么事。一个人一般30
阅读全文
摘要:[原文链接]Colin走到我的办公室门口叫我去看他最新的研究成果。他拆解了他的显示器切换器(用来在两台PC之间切换显示器的设备),拆开的设备就摊放在他的桌子上。他用从RadioShack网站上淘来的部件重新组装了它,并用VB6开发了一套管理它的服务器和客户端程序,经过这样的改造,他实现当鼠移动到屏幕边缘时显示器就能自动切换的功能。Colin在做这个项目时获得了很大的乐趣,并且正在变成我们团队里最强大的程序员。这发生在Arduino创建之前一段时间,那时硬件Hacking的门槛还很高。VB6正在衰退,使用它的人被认为只能维护那些烂的LOB程序。从Co...
阅读全文
摘要:[原文链接]好的编程原则跟好的系统设计原则和技术实施原则有着密切的联系。下面的这些编程原则在过去的这些年里让我成为了一名优秀的程序员,我相信,这些原则对任何一个开发人员来说,都能让他的编程能力大幅度的提高,能让他开发出可维护性更强、缺陷更少的程序。* 我不要自我重复— 这也许是在编程开发这最最基本的一个信条,就是要告诉你不要出现重复的代码。我们很多的编程结构之所以存在,就是为了帮助我们消除重复(例如,循环语句,函数,类,等等)。一旦程序里开始有重复现象的出现(例如很长的表达式、一大堆的语句,但都是为了表达相同的概念),你就需要对代码进行一次新的提炼,抽象。http://en.wikipedia
阅读全文
摘要:[原文链接]别以为是那些软件开发定律,别以为是开发出那些特殊用途的软件,别以为是软件设计技术本身。只有一条真理决定了一个软件程序员的成功还是失败。由于坚持这个真理,一个资深的程序员能在一天的时间里学会一门新的编程语言,而由于不坚持这条真理,一个初级的程序员用十年时间也只能挣到一份糊口的钱、永远是来实现别人的设计、永远不够优秀而得不到晋升的机会。这条真理让你看清了差的程序员和好的程序员的不同之处,好的程序员和伟大的程序员的不同之处,伟大的程序员和能通过自己的技术创造出一个亿万美元价值的程序帝国的超级程序员的不同之处。不是什么复杂的道理,不是什么难懂的理论。不是具有什么天赋或“编程超能力“才能做到
阅读全文
摘要:[原文链接]我读了Kevin Pang 的一篇可能非常老但非常好的有趣文章:每个程序员都该知道的10大编程格言。Kevin给了我们10条按他的观点的每个程序员必须知道的编程格言。可以看出,这都是不错的格言,而下面是我自己最喜欢的编程格言。保持简单直白(Keep It Simple Stupid)不要做重复的事情(Don’t Repeat Yourself)能干的人解决问题。智慧的人绕开问题(A clever person solves a problem. A wise person avoids it) –Einstein沉默会被理解为赞同(Silence is construed as a
阅读全文
摘要:[原文链接]在SDTConf 2009论坛上,Corey Haines和我共同主持了一个叫做“最臭的臭弹”的研讨会。会议上,我们试图去寻找下面两个(不同的)问题的答案:作为一个经验丰富的开发人员,回顾往事,最臭的让你最受折磨的代码是什么样的?也就是说,请指出一种代码,如果你能根除掉这种很臭的代码,那么在你的程序中的大部分设计问题都会迎刃而解我们有如此多的不同的原则和指导来帮助我们去实现好的设计。对于一个新手来说,他应该从哪里开始?哪种代码风味(code smell)或原则,对于一个新手来说,可以最大程度的帮助他们做出好的设计(节省好几年去总结经验)?尽管字面上这两个问题很相似,但我认为这第二个
阅读全文
摘要:[原文链接] 本周在欧洲举行的TheServerSide Java研讨会上,ThoughtWorks的架构师和著名讲演人Neal Ford 指出那些只静止的依赖于一种专门的技术的人会在几年之内被淘汰出局。 他谈到了19世纪的马蹄铁匠,那时候干这种工作看起来是稳定而且有前景的职业,直到有一天科技进步(汽车的出现)导致了整个行业被淘汰。 我对Neal的这些话颇有感受。 当我还是大学教师、教授面向对象编程的时候,我有一个成年学生是个真正的C语言编程高手。 事实上,他的专长是使用Borland Turbo C 3.0。 当他很费力的去领悟C++和Smalltalk和这类语言后面所代表的含义时,他竟..
阅读全文
摘要:本文的作者Robert C. Martin,也就是大名大名鼎鼎的“uncle bob”在我手里的是一本很薄的白皮书,14年前,它颠覆了整个软件世界。这本薄书就是:《Extreme Programming Explained》,副标题是:拥抱变化。作者是Kent Beck,出版于1999年。这本书不到200页,很小。字体印刷的很大,而且留白很多。撰写风格很随意,通俗易懂。章节很短。里面提出的概念很简单。这本书的思想犹如一次地震,而且震撼至今仍无减弱迹象。第十章,位于53页,陈列了12条软件开发实践指导,它让软件业陷入了大论战;并催生了一次革命,由此改变了我们软件开发过程的各个方面。这些实践方法是
阅读全文
摘要:[原文链接]导读:所谓谚语,就是用言简意赅、通俗易懂的方式传达人生箴言和普遍真理的话,它们能很好地帮助你处理生活和工作上的事情。本文整理了开发人员都应该铭记的10句编程谚语。关键词:代码异味代码设计敏捷开发软件开发 所谓谚语,就是用言简意赅、通俗易懂的方式传达人生箴言和普遍真理的话,它们能很好地帮助你处理生活和工作上的事情。也正因如此,我才整理了10句编程谚语,每位开发人员都应该铭记他们,武装自己。Advertisement 1. 无风不起浪 别紧张,这也许只是一场消防演习 代码设计是否糟糕,从某些地方就可以看出来。比如: a. 超大类或超大函数 b. 大片被注释的代码 c. 逻...
阅读全文