程序员常犯的5个非技术性错误

admin 13年前
     英文原文:    <a href="/misc/goto?guid=4958187056610321992" target="_blank">5 top non-technical mistakes made by programmers</a>(    <a href="/misc/goto?guid=4958187057346586069" target="_blank">备用链接</a>)    <p> 一个好的软件开发人员需要培养两种技能:技术技能和非技术技能。不幸的是一些开发者只注重技术的部分,以致养成一些陋习,下面是最常犯的5个非技术性错误: </p>    <p> <strong>0. 缺乏自律</strong></p>    <p> Jim Rohn曾经说过:自律是目标和成果之间的桥梁。我一直认为,不论是成为一名软件开发人员,亦或是想在生活的其它任何领域取得成功,自律都是最珍贵的技能之一。事实上,很少有人兼具智慧和自律。</p>    <p> Steve Pavlina强调了自律的5个基本原则“……容忍(Acceptance)、毅力(Willpower)、努力(Hard Work)、勤勉(Industry)以及坚持不懈(Persistence)。将每一个单词的首字母提出,构成一个缩略词:鞭子(A WHIP)。这样更便于记忆,因为很多人总是把自律和鞭策自我联系在一起。……” 我力荐大家阅读Steve Pavlina写的关于<a href="/misc/goto?guid=4958187058086683411" rel="nofollow" target="_blank">自律的一系列文章</a>。</p>    <p> 正如我以前的文章<a href="/misc/goto?guid=4958187058825288670" target="_blank">每天写出好代码的5个建议</a>中解释的一样,对于自律,我的个人做法是每天遵循以下步骤</p>    <ul>     <li>将一天要做的事情列成清单。</li>     <li>一次只做一件事。</li>     <li>正确做事。</li>     <li>不要半途而废。</li>     <li>与其道歉,不如补救,而放弃最不可取。</li>    </ul>    <p> <strong>1. 自我意识过甚</strong></p>    <p> 据我的经验,程序员有点自我意识过甚,但凡过于自我的人都很难意识到这点,以下几个指标可以帮助你认识到自己是否自我意识过甚。</p>    <ul>     <li>你认为自己是最棒的程序员。</li>     <li>你抵触交流。</li>     <li>你要求检查代码,是为了炫耀而不是为获得建设性的建议。</li>    </ul>    <p> 网上有很多关于程序员及其自我主义的文章,我在此推荐两篇,一篇是来自Mike Bernat的《无私的程序设计(<a href="/misc/goto?guid=4958187059565422459" rel="nofollow" target="_blank">Egoless programmin</a>)》,另一篇是来自stackoverflow.com与此相关的讨论“<a href="/misc/goto?guid=4958187060311437317" rel="nofollow" target="_blank">你如何控制自大</a>”。 </p>    <p> <strong>2. 不善沟通交流</strong></p>    <p> Woodrow Wilson说:“我若要说上十分钟,须花一个星期准备;若是十五分钟,需三天;若是半个小时,需两天;若是一个小时,我现在就能准备好。”</p>    <p> 沟通是我们人类的主要活动。做一个优秀的交流者,这不容易,但就我们的职业而言,却是必不可少的技能。对于设计、代码、同行评估、文档编写、试着去说服别人自己的设计是最好的、编写代码等等,我们总在交流意见。</p>    <p> 擅长沟通的人通常会像这样阐述事情:</p>    <ul>     <li>专注 - 他们只说需要理解的内容。</li>     <li>清晰 - 容易理解。</li>     <li>简洁 - 增一分则太过,减一分则不足。</li>    </ul>    <p> 对成为一个更好的沟通者,我有两个建议:</p>    <ul>     <li>如果自认不是个好的沟通者,事先做好充分的准备直到达到集中、清晰、简洁的要求。</li>     <li>交谈之中,首先倾听,思考妥当后再说出自己的看法。</li>    </ul>    <p> 在我先前发布的文章《<a href="/misc/goto?guid=4958187061049665346" target="_blank">在开发团队中做出决定的七个最佳惯例</a>》中,有更多关于提高交际能力的小窍门。 </p>    <p> <strong>3. 忽略用户</strong></p>    <p> “如果我们不关心用户,自有他人关心。”你在此的唯一原因就是服务用户,但有时候很容易忘记这一信条。我曾经所在的团队只注重于技术和平台,而不是令用户满意。我们花费一个多月的时间创造一个构架,却未能给用户带来任何价值;到开始使用的时候,我们发现它完全不适应用户的需要。</p>    <p> <strong>4. 不能合理安排工作</strong></p>    <p> 开发者们总是为自己镀金,他们研究新的或更有趣的技术;做所有觉得更酷的工程处理方法。这样无疑妨碍到了项目,但我并不是说时不时投入到别的活动中是不正常的。诚然我们都需要分散注意力,但是你若发现自己老是处于前面所提到的状态,那么你有必要重新考虑自己优先处理工作的方式。我再次推荐你读<a href="/misc/goto?guid=4958187058825288670" target="_blank">每天写出好代码的5个建议</a>这篇文章。</p>    <p> ------------------------------------------------------------------- <br /> 译文出处:<a href="/misc/goto?guid=4958185140659301754" target="_blank">伯乐</a>在线 - <a href="/misc/goto?guid=4958185141402879358" target="_blank">职场</a><a href="/misc/goto?guid=4958185142136785100" target="_blank">博客</a> - <a href="/misc/goto?guid=4958185142136785100" target="_blank">程序员</a><br /> 译文链接:<a href="/misc/goto?guid=4958187065161835554" target="_blank">http://www.jobbole.com/entry.php/977</a></p>    <p> 原文:<a href="/misc/goto?guid=4958187056610321992" rel="nofollow" target="_blank">Alberto Gutierrez</a> 翻译:敏捷<a href="/misc/goto?guid=4958185145033588608" target="_blank">翻译</a> - <a href="/misc/goto?guid=4958187067235479007" target="_blank">唐瑭</a></p>