上周,我和公司里四个技术负责人中的两个一起给应聘公司副总裁职务的候选人进行面试。屋里了所有人——除了我——都是典型的“技术型”人才——他们能写代码,有解决编程难题的经验,有计算机专业背景。我写***一行PHP代码已经是2004年的事了,而且那些代码被一个真正的程序员在半年内给重写了。
面试过程中,我们有下面的交流(记忆力有限,只是大概的复述):
托马斯—我们的一个技术负责人:
如何能设计出一个能有效的应对系统升级扩容(增加一些新的数据)的系统,实现这样的升级而不影响用户的使用,会遇到什么样的挑战?
应聘者:存储这些数据不会是个大问题——Amazon S3能解决这种情况。过程可能要费点力,但也不是很难。你需要思考的是如何让应用使用这些数据;预处理每个视图,预先换算也许是个蠢办法,但当用户需要反向排序时发现速度严重降低,这也许是更糟糕的事情。你可以使用(三个字母的简化术语)在内存中做一些数据转化。
我: (点头)
应聘者:然后你需要确保…
我:哦,等一下。抱歉;我不该点头。我不知道你说的(三个字母的简化术语)指的是什么。能解释一下吗?
每个人都露出了笑容,笑了起来(很友善的),应聘者解释了这个术语,然后继续说下去。
这就是我要说的问题。数年前,我曾经极度恐慌于在我所管理的团队面前解释被问到的问题。从我在其它一些公司的经验(做访问,做顾问,做咨询等)发现,这是一个相当普通的现象,特别是在管理层、CEO队伍中。当你管理其他人,你总以为需要知道所有的答案,或至少要了解所涉及的问题,不是吗?
但这是有条件的。在某些公司里,他们高度的政治化、等级森严的文化需要管理者表现的像个完人。我本人从来没有在这样的地方工作过,但我见到过,我知道,对于处在这种环境中那些家伙们,维护面子和展示强势是件重要的事。但在创业公司和创业者的世界里,这是我们需要拒绝的传统余孽。
像我这样非技术的人通常会有一种自卑情结,感叹于缺少某一领域的知识。我们在很多的行业媒体、博客以及论坛里都能看到那些鼓吹:真正的程序员应该鄙视同/为不懂技术的管理者、创始人、CEO们工作。你只需要看一看这些非常火爆的关于这个论题的帖子:
- 不会编码的创始人们 (发布于 Hacker News)
- 请不要再去喊着寻找一个技术合作人 (Jason Freedman)
- 不懂技术的创始人的噩梦 (Mike Dorsey)
- 每个创业公司的老板们都该学习编程 (David Cummings)
- 生意人和编程能力 (fellow Mozzer Andrew Dumont)
- 别去寻找技术合作伙伴,自己学开发 (YC)
- 那些成功的不会编程的创业公司的老板们 (在 Quora 上。需要提示一下,名单中只有一个人,Marc Benioff)
这些文章足够让像我这样的家伙们羞愧的无地自容,惊恐的在Sal Khan 或 Codecademy找一个2周的速成教程,戴着面罩学习,直到取得***张hackday MVP证书。在互联网的远古时代,我是个很烂的网页设计者,使用Dreamweaver和一些从论坛、谷歌搜索,或访问过的网站上偷来的代码拼凑成蹩脚的 PHP程序,并把它们放到网站上。这也许就是我干过的最有技术性的工作了。
不像上面的那些文章的作者,我从来没有去花上数周的时间自学 Ruby,Rails框架,去开发一个小的应用程序。甚至我曾有过好几百小时的时间可以让我在计算机科学上学习、取得成绩,以帮助我在招聘工作,面试,或写PPT,或在我下周的演说中表现的更好,或者在博客里使用。但我没有好好的利用。
然而,不管怎样,我们的Moz公司已经成为一个相对成功的技术公司。我们在西雅图找到了一批***最聪明的技术人员,他们能处理最有挑战性的软件工程问题,而大多数情况中,我们都干的很不错。
在Quora上有个很火的帖子问到“软件开发中最常见的错误认识是什么? ” 我想,这种认为只有懂技术的人才有资格管理和领导技术型软件团队的想法应该在这个答案清单中占有一席之地。确实有些人声称:一个优秀的软件公司不可能是由一个不懂技术的人创立或由一个不懂技术的人领导。但我却不以为然,有很多的创始人,企业***,或管理者,对他们的业务技术根本不了解,但却实现了伟大的成就。
一些微型的团队,虽然没有专业知识,却能对创立的公司做出杰出的市场推广,把他们的宣传传播到了每个角落。缺乏销售经验或非科班出身的CEO在实践中学习取经,这样的例子比比皆是。旁观者看到他们没有MBA(包括会计,金融,管理,经济学等)知识,却能募集到大笔的资金,处理复杂的金融交易,雇用到杰出的管理人才,带领公司从创立到上市,人们对这些反而啧啧称奇。像旅游,媒体,移动,游戏,房地产等很多的领域里,外行的领导人都能根据实际情况而学习,雇用人才,把技术决策留给认可的专家。我几乎没有见过创业领域出来的权威人士会鼓励创业者们自己钻研这些专业知识而不去聘请外面的专家。
软件领域很特殊吗?
可能。
难道一个人能知道如何用程序语句来引用变量,或知道如何把数据存储到数据库中,就能本质的增加他在创业路上成功的几率吗?
也许。
但是我相信,有很多其他方面的专业的知识也能给创业的过程带来很大的正面影响,而且很多都是跟编程不相关的。
我至今仍在为缺乏工作中的某些知识而极度的难为情。但关键是,至少是对我,要承认自己是个笨蛋,正确的看待这种骂名,不再恐惧。并不是对这些视而不见,而是把这个环境当做自我勉励的舞台。但是,因为要做出正确的决策,你需要理解问题、故障和可能的解决方案。这并不一定需要你做深入的技术探索,而是需要你问大量的问题,其中一些可能是很傻,很无颜面的问题。
这种做法在很多我见到过的以权力为中心的公司中遇到了直接的阻力,甚至在Moz有时也会有。但也许是因为我的脸皮越来越厚,这种做法让我在各种专业技术中都获得了好处。我们雇佣到了人才,公司在慢慢的成熟,对于那些难题(我提出的或被问到的),我最喜爱的一个回答是“我不知道。但我会弄清楚。”
无论你在创业领域处在什么样的情形中,我想,显露无知总比掩盖无知好,即使是对那些被认为“无所不知”的人也是这样。对一个人因为他不会编码就对他的能力大打折扣,这似乎成了一个潮流。在Fackbook是这样;在谷歌某种程度也是这样;科技新闻界和风险投资家们推波助澜,似乎这就是真理了。我不敢苟同。
虽然这样,我仍然计划着在Khan Academy上找一些计算机科学方面的讲座来看。