观点摘录:
第一部分 人员管理
1.我的第一次BiilG审查
1)应对一项审查时,一定要进行细致的准备工作,你需要考虑到所有(至少是大部分)可能遇到的问题和细节;
2)你的审查者不是来评论你写的东西的,他只是想确定你对实现那些目标是不是有把握。他会拷问你各个细节,直到你答不上来为止。
2.寻找优秀的程序员
1)优秀的程序员要去一些专业性的求职网站/论坛/社区去找,他们不会出现在大型的求职论坛,在那里连可靠的、称职的程序员都很少;
2)在他们还是学生的时候就开始进行准备,吸引优秀的实习生来公司工作;
3)谨慎使用员工推荐的方式。
3.寻找优秀的程序员之实战指南
1)优越的硬件条件;
2)好的工作环境,简单的人际关系,不要有怪人、办公室政治,尊重他们;
3)让从事的工作看起来更有趣、有意义;
4.三种管理方法
1)军事化管理法:简单粗暴的、指令式的管理;
缺点:
没有人愿意被管;
管理者无法对每一个细节做出决定;
在微观层面,只有负责干活的程序员才是最了解问题的,他们是做出决策的最佳人选;
2)经济利益驱动法:用经济利益进行外部激励;
缺点:
外部激励是一种弱得多的激励;
聪明的人总是想法设法钻规则的漏洞,使自己的利益最大化,这会使事情发展的路线偏离规则设计者的初衷;
谨慎使用经济利益驱动,管理需要制度,制度应当由管理层制定,而不是简单地用多发钱的方式训练他们;
避免使用外部刺激代替内部刺激。
人们会想法设法使
3)认同法:让程序员认同你的目标;
设法创造出内部激励,做起来比较困难,但效果较好。
第二部分 写给未来程序员的建议
1. 不要仅仅满足于学习Java/C#等高级语言,学习一下C语言等比较接近于机器的语言;
2. 大量实践。
(这部分都是在告诉美国的计算机系大学生,在大学学习期间应该注意的问题;对于一个中国非计算机专业的毕业生而言,意义不大。)
第三部分 设计的作用
1.字体平滑、反锯齿和次像素渲染
1)苹果:字体算法尽量保持原始的设计,即使有损屏幕显示的清晰性;
2)微软:字体的形状要适应像素的限制,要保证屏幕显示清晰,即使字体的形状因此而背离原始设计。
2.寸土必争
不要忽视细节,仔细地打磨你的作品。
3.大构想的陷阱
1)小心陷阱:当你对系统有了一个整体性的认识,感觉所有的东西看起来都是清晰无比的,然后就准备开始工作了,这时你就很可能陷入了一个大构想的陷阱;
2)详细设计:对系统有了整体的设想之后,要对它的细节进行分析和设计,不妨写一个详细的设计说明书,逼迫自己去思考一些较为细节的内容(当然,也不要过度设计);
3)让你的程序中的对象和真实世界中的对象看上去很像,包括它的行为都很像,这样你的程序会让人容易理解,这对于程序设计是很重要的原则。
4)推荐图书:梦断代码(Dreaming in Code)
4.别给用户太多的选择
1)Vista糟糕的用户体验:15种关机方式;
2)过多的选择会让用户困惑,提供简单、一致的操作入口;
3)程序员往往希望方方面面都照顾到,因此为用户提供了过多的选择。
5.易用性是不够的
没看明白,也不知道“社会化界面”的含义。
6.用软件搭建社区
貌似在讲他自己的社区设计。