口述:张一鸣(今日头条创始人)
采访整理:吴丽
从程序员到创业者是有很大变化的,一个是精确控制,一个是面向不确定性
真正好的产品经理很多都是程序员出身,比如腾讯的马化腾、微信的张小龙
我最早关于编程的启蒙是在8岁,上小学二年级时,学校有个计算机班,一个教自然的老师教我们BASIC语言,程序都写得很短,就20行。后来到初一暑假,我有了第一台电脑,主要玩游戏。更系统化的编程训练是在上了大学之后。
大一我学的是微电子专业,发现微电子从学习到动手效果隔得太久,不如计算机快,大二时我就转到计算机专业。
我算慢热型的程序员,比较实用主义的,没有那么多情怀的东西。有的人比较关注编程本身,或者各种特殊的技巧,有的人喜欢破解,比如如何破解网络安全,但我比较关注产品效果。我系统学的第一门语言是C++,不是BASIC。当我学会一门编程语言时,就经常在想某个产品我什么时候能实现,怎么把它做出来,市面上已经有的产品有哪些不足,我能不能把它改进。我更多的是产品效果驱动型。
我最主要用的编程语言和工具是C++。C我以前用Visual C(简称VC)最多,后来用VIM(VIM是编辑器,VC只是一个IDE(开发环境),自带编译器)比较多。我不是IDE控,很多人是IDE控,换很多工具,我一直觉得那个是影响效率的一部分。在你思路清楚的情况下,在编辑调试上花的时间应该被你的思路方法大幅度简化,而不是被IDE大幅度简化。
我写过Web服务器,写过网络框架,类似ACE这种网络框架,尝试写过通用的系列化的工具,写过相对通用的检索引擎,其中有一大部分是我工作和生活中个人和公司都用不着的,但是仍然觉得我能不能写一个,能不能实现一个更高效的,或者更优雅的程序。这也是有成就感存在的。
我对各种编程语言不排斥,对PHP、Java都不排斥,我用过很长一段时间的Java。但是我对C++倾向性是蛮高的。
C++的好处在于,从工程师角度来看它的界面像字节,Java不让你对字节操作,不让你有字节的概念。
今日头条的公司名字叫字节跳动,其实面向字节是一种方式,从计算机的语言来讲,所有的程序实现都是在流动字节。
从程序员到创业者是有很大变化的,一个是精确控制,一个是面向不确定性。程序员喜欢精确控制,一个字节错了也是错了,管理公司时有些地方是允许出错的,只要大方向是对的就基本OK,而程序员要检查每一行,希望输入输出都是确定性的。作为一家公司的CEO,很多时候我是在不确定下去尝试、决策。
程序员往往希望世界观正确、层次清楚,少耦合、少冗余,特别是Java程序员,他们总希望世界是按照思想来组织的,但是这个世界是现实的,有高度偏离性的,是动态的。我有受到这方面影响,但是会克制。
设计产品时,程序员希望精确有效的同时也可以优雅,尤其是好的程序员,不仅追求内容,也追求形式。这是需要做出改变的,毕竟世界不全是这样的。其实对产品来说,用户需求是最重要的,如果你很好地满足了用户需求,有时候结构不太完美也是OK的。当然能够两者兼具最好,但是满足需求是最重要的。
今日头条创始人——张一鸣
好的工程师转成一个好的产品经理,有些坎儿是要过的。这个叫程序员的个人性格——自我 (Ego) (这个词现在太火了),他想问题会先从程序的角度出发。其实跨过去并不代表你不能写好程序,有时候会让你的程序写得更好,让你更容易简化问题。
我鼓励更多的程序员转型为产品经理,真正好的产品经理知道需求是什么,表现形式是什么,也知道信息架构是什么,产品是如何运作的。你看真正好的产品经理很多都是程序员出身,比如腾讯的马化腾、微信的张小龙。
在大数据时代,算法最后比拼的到底是什么?在今日头条,要把算法、工程和产品这3个东西结合好。一般公司强调算法。为什么说工程重要呢?工程是为了支持很大的数据量,一个可能只有80分的算法,如果你支持的数据量非常巨大,或者能把最重要的数据先处理好的话,那么可能比一个95分的算法效果更好。为什么要提产品?所有这些需要都跟产品结合。你要赢得用户,肯定要掌握用户更多的兴趣表达,怎么让客户端跟服务端配合好,进行兴趣表达的收集也很重要。
现在技术变化太快了,我倒不会有危机感。虽然语言层出不穷,但计算机的冯·诺依曼结构一直没变,经典算法一直没变,空间换时间的原则一直没变,我不是很怵这个变化,基础好的话,其实没有什么好担心的。