这是来自Quora上的一个问题:Is it required to be a developer/coder to become a CTO? Why can’t an architect become a CTO. 下面是里面的最佳答案。自己比较认同其中的观点,CTO确实是需要有编程背景的,而真正意义上的软件架构师也是具有编程背景的,所以也是可以成为CTO的。


作为一家创业公司的CTO,你需要了解以下几点:

(1)从上到下对整个技术栈有一个全面的了解,包括每一层的替代方案和取舍权衡。

(2)如何以一种能够给你想要招聘的工程师留下深刻印象的方式进行严肃编程。

(3)如何自我学习你需要了解的技术知识,以及如何在至少100码外就能嗅出技术上的废话。

(4)如何领导工程团队,如何管理工程团队(以及两者之间的区别是什么,因为它们非常不同)。

(5)如何可靠地估计实现其他C级领导愿景所需的工作量。如何向他们沟通可能的权衡,并如何经常从一个过于模糊或过于具体的起点找到真正的需求。

(6)如何向从资深的高级工程师到极其愚蠢的媒体等各方面代表公司的技术愿景。

(7)如何保护你的团队免受不必要的变化,并如何带领他们以及公司其他部分经历必要的变革。

(8)如何指导工程师关于他们的成长和职业目标,无论是作为个体还是团队成员。

(9)如何发现可能的技术和公司问题,并在它们影响工程团队的动力之前清除它们。

(10)如何保持工程团队的持续发展,这可能意味着扮演IT角色,充当工程师,或周末架子搭建者(原文是weekend shelf-builder,不太理解,可能指的是自我驱动去做一些事情的意思)。

你如何达到这个目标?需要你通过在创业公司的工程团队持续工作并向各种听众做技术演讲。从我看着当初我的CTO说“我希望有一天能做到这个位置”,到我准备好自己做这件事,我花了10年的时间。

编辑:既然这个问题有所融合且稍微有所变化,我想直接回应它。

CTO确实可以是一名架构师,但软件架构师是一名开发者。

有些公司有他们称之为“架构师”的人,但他们实际上从未真正建立过系统。他们在销售会议中在白板上画大框和线条,然后就走开了。

我们在Sun公司有一个词来称呼这些人,我们称他们为“市场技术人员(Marketechts)”。并且,一个市场技术人员会成为一个糟糕的CTO,因为他们谈论和思考的是广泛的概括,而不是完成工作的真正细节。