1. 你是否经常关心新技术的进展。(细分:Amazon上的新书,Reddit上的新话题,国外著名技术博客,以及你所专注的技术领域最大的社区的动静)
2. 你是否每两个月阅读一本好的技术书籍。(你是怎样判断一本技术书籍值不值得读的?)
3. 你是否经常查Wikipedia。
4. 你是否阅读《Code Complete》,《The Pragmatic Programmer》 (大家继续补充)
5. 你在编写代码的时候是否关心可读性,可维护性,还只是实现功能便万事大吉。
6. 你经常阅读别人的代码吗?(开源库?)你会阅读自己以前写的代码吗?
7. 你有过花上半天甚至一天时间苦思冥想一个问题最终想出答案的经历吗。(比如 debug。)
8. 你怎么度过大学生活的?
9. 你在你所关注的技术领域的最大社区发过帖子吗?参与过讨论吗?
10. 遇到问题你一般是怎么解决的?
11. 身在这个领域,你感到总是有新的乐趣和挑战吗?
smart单词含义:基本上外企都有类似的年度评估。我们可以自己建立一个更实用的,类似年初wishlist的列表。
S=Specific具体性
M=Measurable可量性
A=Attainable可实现性
R=Realistic现实性
T=Time bound时限性
在SD大会我主持的那个软技能沙龙上,两位嘉宾唐赓和张银奎就起了争执。
唐说,读得懂、读得进去的才是好书。而张则坚持好书往往是比较难读的。
4. 你是否阅读《Code Complete》,《The Pragmatic Programmer》
我认为对于程序员,至少《重构》、《编程珠玑》和《人月神话》也是不可少的。
忽然想到,这些问题很有点测试 "12 steps to a better Geek"的意思,呵呵。2009/12/1 pongba <pon...@gmail.com>1. 你是否经常关心新技术的进展。(细分:Amazon上的新书,Reddit上的新话题,国外著名技术博客,以及你所专注的技术领域最大的社区的动静)
2. 你是否每两个月阅读一本好的技术书籍。(你是怎样判断一本技术书籍值不值得读的?)
3. 你是否经常查Wikipedia。
4. 你是否阅读《Code Complete》,《The Pragmatic Programmer》 (大家继续补充)
5. 你在编写代码的时候是否关心可读性,可维护性,还只是实现功能便万事大吉。
6. 你经常阅读别人的代码吗?(开源库?)你会阅读自己以前写的代码吗?
7. 你有过花上半天甚至一天时间苦思冥想一个问题最终想出答案的经历吗。(比如 debug。)
8. 你怎么度过大学生活的?
9. 你在你所关注的技术领域的最大社区发过帖子吗?参与过讨论吗?
10. 遇到问题你一般是怎么解决的?
11. 身在这个领域,你感到总是有新的乐趣和挑战吗?
在SD大会我主持的那个软技能沙龙上,两位嘉宾唐赓和张银奎就起了争执。
唐说,读得懂、读得进去的才是好书。而张则坚持好书往往是比较难读的。
大公司会不断给员工洗脑,讲process, tools, methods等等
讲values, strategy, vision等等。
并且这些后面还有很多科学的依据,研究成果和方法论在支撑。所以很少有青年学生能幸免不被洗脑的。
并且被洗脑后,会积极主动的研究新的方法论去洗别人的脑....
所以我觉得保持一颗青年学生的“淳朴”的心是一种境界。
我觉得有些人骨子里是学者,应该想想什么才是自己想要的。
可以尝试不要把自己仅仅停在programmer的境界。即使我们白天种地,去挣奶粉钱。但不妨碍我们课余去research去学习。
ps:你这文章怎么在CSDN博客上没找到?
----------------------------------------------------------------------------------
Yours Sincerely
Kun
www.forwind.cn
http://twitter.com/lk_517
2009/12/2 Kenny Yuan <yuank...@gmail.com>:
On 12月3日, 上午5时09分, windstorm <likunarmstr...@gmail.com> wrote:
> 能达到这里所有要求的码农,当一个公司的技术主管问题也不大了吧
>
> -----------------------------------------------------------------------------------
> Yours Sincerely
> Kun
>
> www.forwind.cnhttp://twitter.com/lk_517
>
> 2009/12/2 Kenny Yuan <yuankain...@gmail.com>:
>
>
>
> > 似乎又跑题了,为了救赎,贴一个最近写的东西吧,这个和主题有点相关。
>
> > 这是你应该做的(draft)
>
> > ----"阿姨!你的钱包掉了!"
> > ----"谢谢你!小朋友!你真是一个心灵高尚的人!"
> > ----"不用谢!这是我应该做的,我的名字叫少先队员......"(伴随着一串银铃般地笑声,小朋友消失在风里,没有留下姓名......)
>
> > 嗯,我承认这是恶搞了一把那个年代的小学生作文----韩寒出现之前的那种小学生作文。这种作文中有一个隐含的前提:"拾金不昧、做好事不留姓名"这种事情,在那个-时代的背景下,会被判断为"这是我应该做的"。
>
> > 那么,在换了一个时代背景之后,什么才是"你应该做的"呢?
> > 在一个特定的职业中(比如与我这个BLOG相关的"码农"职业),什么才是"你应该做的"呢?
>
> > 好吧,现在我们就假设你是一个码农:
>
> > 你精通各种算法,宰杀了无数遍"猪"与"鸡"(珠与玑),对RBTree/BSPTree/SuffixTree/HashTree的原理和应用张口就来;你会-估计和比较各种算法的O/Θ/Ω/OO;你知道如何深入浅出地讲解算法,知道如何编程实现和实测表现,你还能够在实际工作中选用正确的算法......那么,你觉得自己-很优秀,还是说"这是你应该做的"?
>
> > 你精通不少语言,也精通一些很"难"的语言中的很"讨厌"的特性,比如C++中的重载决议/偏模板特化/名字空间/多继承/etc,你还能够紧追语言的"最新发-展",对GC/closure/multimethod/Continuation/AMB这些"新发明"东西了如指掌(嗯,好吧,其实这些不是新的,只是从L-ISP那里借鉴了一下下)......那么,你觉得自己很优秀,还是说"这是你应该做的"?
>
> > 你懂得多数流行平台的开发,掌握多数开发包的API;你能够使用各种辅助工具进行综合、高效地调试;在解决问题时你有丰富的经验和清醒的头脑,以及实证至上的谨-慎;你对开发/profiling/testing有良好的理解和实践,模式/重构/TDD/etc对你来说是合手的工具而不是限制你的牢笼......那么,你觉得自-己很优秀,还是说"这是你应该做的"?
>
> > 你了解不同用户的兴趣在哪里、对软件错误的容忍度有多高,你知道不同设备上的用户习惯于如何操作,你知道用户愿意在哪个功能上掏钱,你懂得如何借鉴和超越竞争对-手的产品,你能够跟上当前用户对功能的期望(甚至预见到未来的)......那么,你觉得自己很优秀,还是说"这是你应该做的"?
>
> > 你了解可用性的意义,能够设计出有条理、不凌乱的界面,还能够使用PS/AI/Painter制作并用程序实现你的设计......那么,你觉得自己很优秀,还是说"这-是你应该做的"?(另,引用:说一个软件具有"可用性",能算是一种赞美吗?只是合格罢了!)
>
> > 你精通计算机原理结构,知道各种外设的IO速度,对它们访问方式有精晰的理解,会写device
> > driver,而且你还知道典型外设产品的可靠性在什么样的数量级上......那么,你觉得自己很优秀,还是说"这是你应该做的"?
>
> > 你设计过不同规模的系统,知道在什么样的级别下应该使用什么样的技术;你知道性能热点通常在哪里,也精通于查找和解决热点;你知道如何平衡功能、时间和质量,知-道如何在特定情况下取舍;你知道流行的架构的优缺点,你知道哪种硬件能够构成什么样的系统、当机时间控制在什么样的级别上;你知道如何安排指标去区分高低端产品-,知道在给定的预算/成本下能够提供什么样的产品,你还知道如何对系统进行cost
> > down却不会损失可靠性......那么,你觉得自己很优秀,还是说"这是你应该做的"?
>
> > 你熟悉各种软件开发模式;你有丰富的知识积累,却又不守旧、勇于接受新鲜事物;你非常善于开会,能够在很短的时间内取消语言表面上的分歧让大家达成一致......那么-,你觉得自己很优秀,还是说"这是你应该做的"?
>
> > 你勤劳肯做,工作中不偷奸耍滑,很有大局观而且也重视细节问题;你性格温和,乐于助人,团队成员都说你是一个非常好相处的人,连没见过面的同事也对你赞不绝口...-...那么,你觉得自己很优秀,还是说"这是你应该做的"?
>
> > ......
>
> > 你能够......能够......还能够......即使在...的时候也能够......那么,你觉得自己很优秀,还是说"这是你应该做的"?
>
> > ......
>
> > 如果你做到了以上若干条,那么在我看来,你成功地完成了你自己的本职工作,完成了自己做为一个工程师(而不是科学家)的"应该做的事情"----也许你比身边人的平-均水平要高出一截,也许你超过了整个业界的平均水平,但那是不是就意味着"优秀"呢?如果那仅仅是你"应该做到的"呢?
>
> > 最后,你做为一名人类,能够进行独立的思考,在清晰逻辑和丰富知识的基础上拥有批判性的思维,你懂经济、懂民主;你不愤青、不脑残、不意淫、不从众;你不受洗脑-和煽动的影响、不信武术和中医......那么,你觉得自己很优秀,还是说"这是你应该做的"?
>
> > 延伸阅读
> > (下面的每一个链接都能对应到上面文章里的某句话,用来例证,而不是证明)
> > Teach Yourself Programming in Ten Years, by Peter Norvig
> >http://norvig.com/21-days.html
> > 快排为什么那样快, by Pongba
> >http://mindhacks.cn/2008/06/13/why-is-quicksort-so-quick/
> > Beating The Averages, by Paul Grahamhttp://www.paulgraham.com/avg.html
> >http://www.xys.org/xys/ebooks/others/science/dajia10/zhongyi2621.txt
>
> > --
> > Kenny Yuan
> > C++, UI, LISP, MMA, Psychology and Automobile.
> > BLOG: CS巴别塔(Computer Science Babel)
> > URL1:http://csbabel.wordpress.com/
> > URL2:http://blog.csdn.net/yuankaining/- 隐藏被引用文字 -
>
> - 显示引用的文字 -
ps:你这文章怎么在CSDN博客上没找到?
多谢夸奖,实在是不敢当。当时是草稿,就直接贴了,结果有一个关键的注释当时还没有写……
注:上面列举了许多的条目,但是这些条目涉及了很多领域,所以并不要求一个人同时具备这些能力。
P.S. 想看修订的全文配图版的,请移步俺的web log一观ps:你这文章怎么在CSDN博客上没找到?
--
Kenny Yuan
C++, UI, LISP, MMA, Psychology and Automobile.
BLOG: CS巴别塔(Computer Science Babel)
URL1: http://csbabel.wordpress.com/
URL2: http://blog.csdn.net/yuankaining/
2009/12/4 Kenny Yuan <yuank...@gmail.com>多谢夸奖,实在是不敢当。当时是草稿,就直接贴了,结果有一个关键的注释当时还没有写……
注:上面列举了许多的条目,但是这些条目涉及了很多领域,所以并不要求一个人同时具备这些能力。嗯,福尔摩斯就“不知道”地球围着太阳转。Kenny这个写得太N了,分类很精到
于是,关于pongba的问题,我觉得可以反推,要衡量一个码农,那么首先确定,这个码农的职责是什么?显然,如果他能迅速而高质量地完成自己的任务,那么当然就是个好码农了。一但职责确定了,那么所需要什么能力就明显地反推出来了