无意间发现的好文,分享给大家阅读~~真的是好文~~
——“阿姨!你的钱包掉了!”
——“谢谢你!小朋友!你真是一个心灵高尚的人!”
——“不用谢!这是我应该做的,我的名字叫少先队员……”(伴随着一串银铃般地笑声,小朋友消失在风里,没有留下姓名……)
嗯,我承认这是恶搞了一把那个年代的小学生作文——韩寒出现之前的那种小学生作文。这种作文中有一个隐含的前提:“拾金不昧、做好事不留姓名”这种事情,在那个时代的背景下,会被判断为“这是我应该做的”。
那么,在换了一个时代背景之后,什么才是“你应该做的”呢?或者我们换一个容易观察的角度——在一个特定的职业中(医生/教师/学者/警察/记者/公仆 /开发商/律师/法官/摔倒的老太/etc),什么才是“你应该做的”呢?怎样算是平庸?怎样算是正常?怎样算是杰出和优秀?做到什么程度才算是完成了本职工作,才算是完成了“你应该做的”事情?
——既然我这个BLOG是和“码农”这个职业息息相关的,那现在我们就假设你是一个码农:
你精通各种算法,宰杀了无数遍“猪”与“鸡”(珠与玑),对RBTree/BSPTree/SuffixTree/HashTree的原理和应用张口就来;你会估计和比较各种算法的O/Θ/Ω/OO;你知道如何深入浅出地讲解算法,知道如何编程实现和实测的表现,你还能够在实际工作中选用正确的算法……那么,你觉得自己很优秀,还是说“这是你应该做的”?
你精通不少语言,也精通一些很“难”的语言中的很“讨厌”的特性,比如C++中的重载决议/偏模板特化/名字空间/多继承/etc,你还能够紧追语言的“最新发展”,对GC/closure/multimethod/Continuation/AMB这些“新发明”的东西了如指掌(嗯,好吧,其实这些不是新的,只是从LISP那里借鉴了一下下)……那么,你觉得自己很优秀,还是说“这是你应该做的”?
你懂得多数流行平台的开发,掌握多数开发包的API;你能够使用各种辅助工具进行综合、高效地调试;在解决问题时你有丰富的经验和清醒的头脑,以及实证至上的谨慎;你对开发/profiling/testing有良好的理解和实践,模式/重构/TDD/etc对你来说是合手的工具而不是限制你的牢笼……那么,你觉得自己很优秀,还是说“这是你应该做的”?
你了解不同用户的兴趣在哪里、对软件错误的容忍度有多高,你知道不同设备上的用户习惯于如何操作,你知道用户愿意在哪个功能上掏钱,你懂得如何借鉴和超越竞争对手的产品,你能够跟上当前用户对功能的期望(甚至预见到未来的)……那么,你觉得自己很优秀,还是说“这是你应该做的”?
你了解可用性的意义、懂得色彩学,能够设计出有条理、不凌乱的界面,能够发明用户喜爱的操控方式,能够设计贴心、聪明的功能,还能够用PS/AI /Painter制作素材,并且用程序实现你的设计……那么,你觉得自己很优秀,还是说“这是你应该做的”?(另,引用:“说一个软件具有‘可用性’,能算是一种赞美吗?只是合格罢了!”)
你精通计算机原理结构,知道各种外设的IO速度,对它们访问方式有精晰的理解,会写device driver,而且你还知道典型外设产品的可靠性在什么样的数量级上……那么,你觉得自己很优秀,还是说“这是你应该做的”?
你设计过不同规模的系统,知道在什么样的级别下应该使用什么样的技术;你知道性能热点通常在哪里,也精通于查找和解决热点;你知道如何平衡功能、时间和质量,知道如何在特定情况下取舍;你知道流行的架构的优缺点,你知道哪种硬件能够构成什么样的系统、当机时间控制在什么样的级别上;你知道如何安排指标去区分高低端产品,知道在给定的预算/成本下能够提供什么样的产品,你还知道如何对系统进行cost down却不会损失可靠性……那么,你觉得自己很优秀,还是说“这是你应该做的”?
你熟悉各种软件开发模式;你有丰富的知识积累,却又不守旧、勇于接受新鲜事物;你非常善于开会,能够在很短的时间内取消语言表面上的分歧让大家达成一致……那么,你觉得自己很优秀,还是说“这是你应该做的”?
你勤劳肯做,工作中不偷奸耍滑,很有大局观而且也重视细节问题;你性格温和,乐于助人,团队成员都说你是一个非常好相处的人,连没见过面的同事也对你赞不绝口……那么,你觉得自己很优秀,还是说“这是你应该做的”?
……
造句练习:你能够……能够……还能够……即使在XX的时候也能够YY……那么,你觉得自己很优秀,还是说“这是你应该做的”?
……
如果你做到了以上若干条(注),那么在我看来,你成功地完成了你自己的本职工作,完成了自己做为一个工程师(而不是科学家)的“应该做的事情”—— 也许你比身边人的平均水平要高出一截,也许你超过了整个业界的平均水平,但那是不是就意味着“优秀”呢?如果那仅仅是你“应该做到的”呢?
最后,你做为一名人类,能够进行独立的思考,在清晰逻辑和丰富知识的基础上拥有批判性的思维,你懂经济、懂民主;你不愤青、不脑残、不意淫、不从众;你不受洗脑和煽动的影响、不信武术和中医……那么,你觉得自己很优秀,还是说“这是你应该做的”?
……
在你的眼里,什么才是“你应该做的”?
……
延伸阅读 :
(下面的每一个链接都能对应到上面文章里的某句话,用来例证,而不是证明)
Teach Yourself Programming in Ten Years, by Peter Norvig
The Pragmatic Programmer 注重实效的程序员, 中文摘录版
Algorithm Repository, by Steven Skiena
快排为什么那样快, by Pongba
Beating The Averages, by Paul Graham
97 Things Every Software Architect Should Know
Anti Pattern, KornerHill译自Wiki
常见逻辑谬误(转)
Java语言学校的危险性, by Joel Spolsky, 阮一峰(译)
What Every Programmer Should Know About Memory, by Ulrich Drepper
Proebsting’s Law, by Todd Proebsting; Moore’s Law, by Gordon Moore
注:上面列举了许多的条目,但是这些条目涉及了很多领域,所以并不要求一个人同时具备这些能力。
(完)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yuankaining/archive/2009/12/04/4939809.aspx