一名平庸程序员的自白_第1页
一名平庸程序员的自白_第2页
一名平庸程序员的自白_第3页
一名平庸程序员的自白_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-名平庸程序员的口白来源:王昱(2010-5-15 16:30:49)作者:阿兰诺顿(alan norton)翻译:purple endurer导读:阿兰诺顿揭示了他作为一名平庸程序员的牛存z道:如何让自c一般般的编程技能发挥出 最佳效杲。我一玄以编写代码为乐,起因并不是我精于此道,而要部分归因于它是一大挑战。我发现没 有什么比指挥个人电脑在显示器上显示“hello world!"更令人激动的了。而在显示器上显示三个红 桃或者黑桃a(ace)和j( jack)则是一个完全不同的问题。我毕业后写的第-个程序是川northstar basic为northstar horizon编写个el

2、动售货机程序,后来乂为northstar advantage编写了卑 丁图形的21点纸牌(blackjack)游戏程序。purpleendurer 注:1、northstar basic:是源 d northstar horizon 和 northstar advantage 的一种 basic 语 言。详见 /wiki/northstar_basic2、northstar horizon:是 north star computers 公司生产、以 zilog z80a 为处理器的8 位电脑。详见 /wik

3、i/northstar_horizon尽管如此陶醉于编程,但我必须坦白地承认:我是一个平庸的程序员,总在寻找一种方法來 获得大的回报一即程序没冇语法错误并能正常运行。这并不奇怪,我从未像一名程序员那样做 好本职工作;我发现自己具有成为一名优秀开发人员的天赋。但是,在我们继续往下谈z前,我 耍给“平腐程序员”下一个定义。平庸程序员会使用一些现成工具的程序员。他只知道最简单的命令语法,但懂得在哪能 找到更复杂命令的语法。他不知道如何编写最高效的代码,但懂得在必要时如何重写和测试比较 高效的代码。他可以克服觅觅闲难独辟蹊径达到忖标,但他把每个闲难视为挑战,并口信会找到 每一个困难的解决方法。他可能需

4、要较长时间才能完成,但总能达到目标。他不知道如何创建一 个dll,但在必要时町以弄懂。他与大多数程序员一-样,并不特别喜欢做工作记录,之所以这样 做是因为他是一个专家。工作决定技能虽然我很想继续编写游戏,但为了填饱肚子,我只得迁就木地就业市场;公司们有“必需胜任 实际工作”这个奇怪的要求是众所周知的。产品、人力资源、会计、库存跟踪和数据报告只是做牛 意必要的一些东西一你知道,很无聊的东西。当我真正为报酬而编写程序时,我的技能发生了戏剧性地变化。它不需要采用大量先进的编 码技术來围看数据优团转,并耍魔术般地变成信息。我被 休斯飞机(hughes aircraft)公司雇用,通过it服务來为产品控

5、制部门提供支持。我 的工作需要开发/分析技能,我热爱我的工作。编程不过是达到目的的手段。开发人员身兼数职程序员只是开发人员所扮演的诸多角色中的一个,通常你要身兼以下数职:购买方(带预算)buyer (with budget)清道夫(无预算)scavenger (no budget)分析师(analyst)设计师(designer)规划师(planner)程序员(programmer)协调员(coordinator)测试员(tester) 文档管理员(documenter)技术支持员(support technician)当开发人员未被认可为一个或更多角色中的专家时并不太令人奇怪。对我來说,工作

6、职能就 是编程。我的生存之道尽管我的编程技能不尽如人意,我仍然是一个非常成功的开发人员。这里有一些我多年來学 到的诀窍,以及如何我作为一个平庸程序员,发挥出最佳平均编码技能水平的生存z道: 明确要求我会预先得到完整、精确的系统要求清单。如果你直接开始编码就意味看 你没有针对系统设计的要求來进行。 分析和设计我获得了分析和设计权。一名普通程序员获得了分析和设计权,就拥 有了一个超越一名伟大的程序员的优势。 项目计划坦白来说,我早期职业生涯屮没冇用过正式的项目计划,一直到我加入了 csc,不得不使用更多的正式文档编制技术,从而开始使用项目计划。曲此我充分认识到使用经过慎重考虑后的项目计划也是平庸程

7、序员的一个优势。 经常翻阅手册、指南我总是备冇手册、指南以供不时之需。我也研究了其它的参 考材料。 拷贝粘贴程序员我不介意承认自己是一名拷贝粘贴程序员。多年來,我写了许多可以在新项h中重复使用的代码。因为我至少花时间写了一次代码,所以我对这些代码如何工 作略知一二。在工作屮我从不拷贝其他人写的代码,并且我从不使用我在其他公司写的代码。黄 金规则和版权法都适用于知识产权:您不得复制和使用别人的代码,除非明确允许,或者你可以 得到特别的许可。 毅力我永不放弃,我一直相信自己能完成任何编程任务。 工具当我需要一台更快的电脑但这又不在预算之列时,我发现了一个经理愿意用 他们的一部分预算资金为我购买。你

8、可以通过乞求、借用,或交易來获取所需工具,从而完成自 己的任务,要经常向你的经理提出自己的要求;只这些要求是合理的,一个优秀的经理会尽最大 努力找到一种方式來获得软件,硬件,手册,或者你所需要的帮助。 手气好(serendipity) 也被称为“代码一写就好”策略。有儿次我像一个初级程序员那样写了代码,而这些代码运行得很好。我把它比作是国际象棋,你在下棋的过程中突然发现, 自己走两步就冇将死的机会。这不是编程应冇的方法,但由于我在检讨h己的职业屮的罪过,我 不得不纳入此项。底线我要做一个最终坦门:我不喜欢被看作是次等的团队成员。我见识卓越,而幼稚的程序员却 真的相信:不能写出“先进”代码的人对因队和公司來说毫无价值。这些精英认为平庸的程序员能 力有限,不足以生产高品质的代码,儿乎总是犯错,令人不快。有个观念令我感觉既可笑乂惊讶: 如果你不能(填空),就不是优秀的程序员。你不必成为一个出色的程序员或伟人的开发者,特别是止在开发商川系统的时候。没错,我 是一个平庸的程序员,其主要原因是我从来不需要成为一个伟大的程序员。我不是纵容平庸。不论做什么,都耍尽力做好包括编程。“最好''的代码可能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论