2.2 马性
作为马,了解自己的脚力是很重要的。
大多数程序员“一贫如洗”,所能倚仗的就是他们手中的技术,如同马倚仗它们的脚力一样。但这种“贫”只是指种类的多少,而不是数量上规模。举例来说,一个很资深的程序员与一个刚入门的程序员,可能在这个问题上是一样“贫”的——唯技术可恃。
与世界上所有职业角色一样,程序员可能会认为自己是“优势物种”。一方面,这一认识可以细化到具体的分工,例如前端认为后端简单,知识结构单一;后端认为前端只会玩玩脚本,数据结构与系统性能等都全然不懂。另一方面,这一认识也会被推及到整个组织中的所有角色,例如程序员可能贬低产品经理,认为他们根本就不知道产品有多么复杂多么难以实现;也可能贬低项目经理,认为他们除了会看墙上的钟,就只会看手上的表,再或是就只剩下看桌面日历上弹出的提醒;也可能贬低各个部门的总监或职员,理由更加简单——他们什么也不懂。
支撑程序员做这件事的,正是他们唯一剩下而又唯一倚仗的东西——技术:一方面,技术是他们信心的来源;另一方面,技术也是他们实现一切的手段。所以,当公司提出“我们能不能减少程序员”的时候,程序员的想法是:开发一个用于减少程序员的程序——当然,前提是增加几个程序员。类似地,程序员对于新产品的想法是“我们可以做一个”,对于大系统的想法是“更多的人手”,对于稳定的想法是“重构系统”,对于性能的想法是“优化代码”……这些都可以归结为一个简单的描述:更强的脚力。
程序员超乎寻常地追求逻辑性。例如,他会在会议上纠正你的一个措辞,即使这个措辞并不影响大家的理解——但是就程序的逻辑的必要性而言,不正确的概念会产生歧义。程序员愿意在会议中牺牲掉十分钟来解释一个名词概念,因为他并不在乎“达成会议的原始目标的必要性”,他更多地在乎“逻辑的必要性”。
程序员热衷于确定一件事物,而反对随意性以及“看起来不必要的”尝试。无论如何,只要一件事情有着可度量、可预知、可确定的结果,那么程序员就对此信心满满——即使这些仅仅是基于他“专业性的预估”。更深一层地分析,之所以程序员敢于拍着胸脯说“这个功能我们三天就可以做完”,其本质原因在于“他希望这一开发过程是确定的”,并主观地加以了确定。确定性是程序员进行“分析活动”的基本需求,他不得不先满足这一点,进而才能论及其他。有趣的是,如果你告诉程序员“这件事一辈子也完成不了”,那么通常会有一个结果:他什么也不做,直到他证明了上述观点的对错。
逻辑与正确是程序的基本思维方法,这些思维方法影响了(大多数的)程序员的性格形成。例如他们不愿意做多余的、重复性的、无意义的工作,也对冒险性的尝试充满了敌意。最特别的一种情况是,他们会说:这不是错误,而是正确的设计。但是如果从基于人性——而非逻辑——的角度上来讨论一下正确性问题,那么:
不能用的,就一定是错的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论