【科创人独家】PingCAP黄东旭:想告诉图灵这个世界现在的样子
创业是投己所好
科创人:作为技术圈内著名艺术青年,哪个瞬间会让您更开心,完成一段优美的代码或者乐谱?还是得到来自外界的欢呼与掌声?
黄东旭:在创业之前的很长一段时间里,完成一段代码、写完一首好曲子那一瞬间是最让我快乐的。但是创业之后,我发现真正帮助到别人的快乐更强烈,这也是为什么直到现在PingCAP都坚持开放、共享,积极帮助有需求的用户解决问题,这份事业本身就让人很有幸福感。
有一点算是我的个人特色:相比于将事情完成的尽善尽美,我更希望自己能够完成一件优美、优雅的作品,要遵循内心的美感,这样做事情再辛苦也不会觉得太累。
科创人:您为什么会选择创建PingCAP,喜欢All In于自己有兴趣的事,还是追求一份商业上的成功?
黄东旭:在我很小的时候就有答案。我小学三年级开始接触电脑、学习编程,因为太喜欢计算机,结果影响了小升初考试——家人希望我念的那所初中是需要考试的。
父母当然会很生气,认为是计算机耽误了我学习,打算制止我继续学习编程。虽然那时候我年纪也不大,但是脑海中有一个强烈的意识:这个世界不该只有一种可能性,人生也不该按部就班于别人为你设计的模式。我很坚定地跟父母说,我要继续学计算机。从那天开始,我的人生一直都在选择做自己喜欢的事。
创建PingCAP也是基于兴趣,我们的主要产品TiDB 是一款定位于在线事务处理/在线分析处理的融合型数据库产品。如果只是制作一个分布式数据库,其实市面上有很多模型,但都让我提不起什么兴趣,不够美,没能将分布式与弹性扩展同时做到我满意的状态。
当时真正点燃我创业热情是Google的两篇论文Spanner /F1,它第一次解决了关系型数据库、弹性扩展加上全球分布的问题。这东西门槛非常高,当时社区也没一个开源实现,如果能做出来就能颠覆现有的关系型数据库市场。于是我和刘奇、崔秋决定去做一个面向未来的新型数据库,而且早早确定了两个大方向:开源,全球化。
▲PingCAP 三位联合创始人,左至右依次为:崔秋、刘奇、黄东旭。
科创人:创业的初体验如何?
黄东旭:第一步有点随意(笑),有一天几个创始人一起吃饭,崔秋说我认识个投资人,要不咱们去谈谈?没想到融资很顺利,甚至没有BP,就在白板上画了架构,对方听完idea感觉很喜欢决定一起试一试。第一步就这么比较随性地走出去了,没有大张旗鼓、轰轰烈烈地筹划,也没有系统规划商业模式、探讨怎么卖,先做着再说。
等真正做起来,发现确实低估了创业的难度,当时主要有三个问题:第一是人才问题,去哪找人,找到了人家也不来;第二是低估了产品的难度和工作量,畅想未来的时候觉得这不就半年工作量,结果半年之后又拖了两个半年, 一年半才做出来;第三是完成商业闭环,既然是一个独立的公司,就得有管理、有销售、有人力、有财务,可我们当时什么都没有,什么都不会。
回头想想也是神奇(笑),哥几个胆子不小,但我觉得我们作为技术人、理工男不惧怕问题,碰到问题就想办法解决,解决 1个不够就 2个、3 个、100个……当解决掉所有问题,这件事也就做起来了。
草莽期最缺信任感
科创人:您提到的那三个问题中,能否分享下克服招人难的方法,这是很多团队面临的普遍问题?
黄东旭:我觉得初创阶段,专业能力要有,但也没有想象中的那么重要,比如我们要做一个面向未来的数据库产品,那就一定要招有做过传统数据库经验的朋友吗?未必,有两点更重要,一是执行力,二是这个人对项目的信心和热情,相比专业经验,PingCAP更喜欢与Dreamer共舞,等公司大一些再去补全必要的专业领域短板,和公司共同成长。
所以还是要谈理想,要对目标有共识,“他对这件事很有兴趣”,给你这种感觉的朋友要尽量留下来。
科创人:工作量预估不足可以靠经验积累去解决,那第三个问题,商业模式闭环,我们在硅谷设立分部,是不是认为在那边有更多的商业人才可以帮到PingCAP?
黄东旭:前面提到了TiDB在写下第一行代码之前,就被规划成一款开源、全球化的产品,我们所有的内外沟通都是以中英双语进行。这个项目属于企业基础软件,我们认为全球在基础软件上有两个技术高地,一是硅谷,二是中国,这两个地方有全球顶级的技术和用户场景,所以起步阶段我们的规划就是两个基地共同发力,人才、工具、基础设施、信息都可以共享。
但人才也好、资本也罢,这些资源就摆在那,问题不在于“没有资源、人才”,而在于“资源和人才不信任你”,创业初期的短缺大都是因为不被信任造成的。所以创始团队要倾尽全力去建立信任和好的口碑品牌,有了这些然后招人、销售都能事半功倍。
没有知名度的那个阶段确实难熬,各自想办法呗,比如我就经常四处串门,打着跟大家分享Codis(黄东旭在豌豆荚期间主导的开源项目)的旗号,那个项目比较有名嘛(笑),讲一半再将话题转到TiDB。
开源VS收费
科创人:开源模式有没有遭到过质疑?
黄东旭:早期就有,我们的项目delay了很久,在这个过程中有声音说“这个东西这么牛X,那干脆闭源卖吧”。这件事涉及到对投资人的预期管理,这可能是会被创业企业忽略的一个细节,我觉得PingCAP做得不错,在探讨过程中与投资人一起成长。
其实一般的软件快速做出来闭源产品进行销售,在其他公司说不定也是一条正确的路。但对于基础软件产品来说,我认为开源是唯一的一条路。而且开源软件最初的成长曲线很平缓,积累到某个节点后会突然开始爆发。
科创人:TiDB的爆发成长节点时间是?
黄东旭:2017年下半年,摩拜开始使用TiDB,紧接着今日头条分享了TiDB的使用案例,两家特别火的企业验证了我们的产品,短短时间内社区增长了估计10倍以上。
▲黄东旭在TiDB DevCon 2019 大会上分享《The Future of Database》。
科创人:从2015年创立到爆发,这之间团队有没有产生过动摇?
黄东旭:那时候确实很有压力的,甚至一度怀疑是不是方向错了。这里要感谢我们的第一个用户,也是我们的第一个客户,一家游戏公司,选择信任我们。MySQL的扩容是一个普遍痛点,发展到一定规模的企业都会需要,问题在于大家为什么要相信你,在不知道你是谁的时候为什么选择你。有了第一个标杆案例,验证了产品效果,证明了TiDB不是空对空的假想,是实实在在能够帮助到别人的好产品,至少我们自己就不会再动摇了,所以其实是用户帮助PingCAP打消了不确定感。
接下来大家都很踏实地向前走,不再为外部的反馈而起什么波澜——键盘侠一直都不缺的嘛,大家都懂。
科创人:开源与收费的取舍问题?
黄东旭:主要就是为这事,哪些应该免费、哪些应该付费,毕竟收入流水也很重要。但在这件事上我有自己的原则,打个比方就是:我们在做一条高速公路,我希望这条路是没有收费站的,任何产品、组件、工具,如果开源是通向用户成功的必要条件,那么就要开源。最终我们靠休息区的食物、饮料这些东西挣钱,在“优化”层面实现收益,在“使用”层面不设置障碍。
我知道这也许是过于理想化的设计,有一种说法是奇货可居,在最关键的位置设卡收费,这是比较常见的开源收费模式,但截至目前为止我还是想再坚持一下。我总觉得要帮助到更多的人,当你有了海量的用户,赚钱的方式就很多了,TiDB 目前就是一个很好的例子。
创业者黄东旭
科创人:PingCAP这5年来,您在团队中扮演的角色有没有发生变化?
黄东旭:做的事情没有变化,但各项工作的比例变化不小。创始人是个特别的工种,你要承担最终、最高级的责任,任何地方有需要你立刻就要顶上,没有什么借口,你要写代码、见客户、帮销售站脚助威、帮市场想想活动怎么做、甚至还要去做线上服务。
PingCAP是个孩子,当爹妈的最初就得一把屎一把尿天天围着他转,但2018年开始他已经上中学了,有自己的主见和自己的选择,今年感觉更强烈,他考上了大学,做父母的要做好后援,未来操心的就更多了。
借这个话题简单回想了一下这5年,感触挺多,也有过不少教训。毕竟谁都不是生下来就是父母,而是有了孩子后就必须承担起父母的责任,不能设置边界,“这部分不是我的责任我不管了”。话说回来,我还挺喜欢这种感觉的,学技术的时候我就要求自己成为全栈工程师,学乐器也是样样都要学。
科创人:如果有一个机会,您能见到一位已经过世的人,跟他交流1分钟,您会选择见谁?Ian Curtis(Joy Division乐队主唱)?乔布斯?还是毛主席(黄东旭熟读《毛选》,尤其推崇《论持久战》)?
黄东旭:首先不会是Ian,我喜欢Post Punk,但我不喜欢Ian对世界的看法,同理我喜欢涅槃但不喜欢Cobain。(思忖半晌)图灵吧。
科创人:为什么选择他?
黄东旭:一是想讨教他对计算和智能本质的思考,二是想告诉他,世界已经因为他而改变了很多,他当初的一些构想如今已经发展到了什么样的样子。
▲黄东旭从不掩饰对图灵的尊敬。
科创人:被提到这个问题的朋友中,所有人都希望从对方身上获取些智慧,您是唯一一个要告诉对方一些事的。
黄东旭:我觉得这个世界亏欠于他。
【科创人独家】PingCAP黄东旭:想告诉图灵这个世界现在的样子的更多相关文章
- 【科创人·独家】MegaEase左耳朵耗子陈皓复盘创业:第一年盈利被当骗子,线下广阔天地大有可为
[科创人·独家]MegaEase左耳朵耗子陈皓复盘创业:第一年盈利被当骗子,线下广阔天地大有可为 原创: babayage CTO科创圈 与上百位科技创业者共同关注科创人的成长心路. 文末有彩蛋:& ...
- 【科创人·独家】连续创业者高春辉的这六年:高强度投入打造全球领先的IP数据库
您能看到:高春辉的创业观,IPIP.NET半程复盘及未来规划,连续创业的体验,小众产品趣事 您看不到:往年创业的回顾,技术干货,受制于篇幅忍痛割舍的精彩观点 文末彩蛋:<与雷军的分歧并非否定电商 ...
- 【科创人独家】科界CTO林镇南:言必真,行必果,没有尽力而为,只有全力以赴
B2C-->B2B-->O2O-->B2G.从传统电商到电子商务,再到最火医美,最后转入国企,80末的林镇南成长路径有特点:行业跨度大.技能涉猎广.误以为"4点半下班&qu ...
- 【科创人上海行】Tinyfool郝培强 :始于不惑的微服务式创业,背负身心病痛贴地飞行
Intro 科创人,分享技术创业者的成长与创业经验. 何谓创业?勇于面对未知.肩负重任的人生抉择. 何谓经验?沟沟坎坎.有笑有泪,各有其宝贵. 科创人的价值支点是"人",我们不以市 ...
- [转载] Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑们
原文: http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=208733458&idx=1&sn=691bfde670fb ...
- Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑们
转载自:http://www.open-open.com/lib/view/open1436360508098.html
- 2019年7月22日A股科创板开板首日行情思考
2019年7月22日A股科创板开板首日行情思考 原因:2019科创板开板交易 盘面:科创板交易活跃,首批上市25只股票大涨,最高达5倍涨幅:主板交投低迷,量能萎缩,大部分股票下跌. 操作:加仓 西安银 ...
- #CSDN刷票门# 有没有人在恶意刷票?CSDN请告诉我!用24小时监控数据说话!
特别声明: 此次并非针对其他参与2013中国十大优秀开源项目的同行,体系有漏洞要谴责的是制定规则并从中获益但不作为的权贵,草根们制定不了规则但可发现和利用漏洞,这是程序员应有反叛精神没错.但被作为道具 ...
- 用于科创的git log美化输出
git log --reverse --pretty=format:'%cd %s' --date=short > a.txt 更好的: git log --reverse --pretty=f ...
随机推荐
- 安卓之父造手机:该紧张的只有iPhone?
近日,"安卓之父" Andy Rubin正式带来他潜心打造的新款智能手机--Essential.这款设计新颖.配置强大的手机刚一发布,就引起全球科技界的广泛关注.对iPhone.三 ...
- 由一个项目需求引发的 - textarea中的换行和空格
当我们使用 textarea 在前台编辑文字,并用 js 提交到后台的时候,空格和换行是我们最需要考虑的问题.在textarea 里面,空格和换行会被保存为/s和/n,如果我们前台输入和前台显示的文字 ...
- 利用 Rize 来进行 UI 测试或 E2E 测试
之前我曾经在<Rize - 一个可以让你简单.优雅地使用 puppeteer 的 Node.js 库>一文简单介绍过 Rize 这个库.当时仅仅是介绍这个库本身,关于如何使用,我没有给太多 ...
- nodejs通过响应回写的方式渲染页面资源
我们一般通过node框架提供的api操作页面渲染,如何利用原始回写的方式来实现同样的功能呢下面是通过node 提供的异步地读取一个文件的全部内容api readFile进行操作,代码如下: html ...
- TCP/IP基础总结性学习(6)
HTTP 首部 一. HTTP 报文首部 1.HTTP 报文的结构: 2.HTTP 请求报文 图示: 举例子: 3.HTTP 响应报文: 下面的示例是访问 http://hackr.jp 时,请求报文 ...
- 利用virtualenvwrapper创建虚拟环境出现错误“/usr/bin/python: No module named virtualenvwrapper”
Linux:CentOS7 python: 系统默认python版本2.7,利用python启动 自己安装python版本3.8,利用python3启动 问题描述: 在上述环境中利用virtualen ...
- 必备技能六、Vue框架引入JS库的正确姿势
在Vue.js应用中,可能需要引入Lodash,Moment,Axios,Async等非常好用的JavaScript库.当项目变得复杂庞大,通常会将代码进行模块化拆分.可能还需要跑在不同的环境下,比如 ...
- 使用java短信验证
package cn.geekss.util; import java.io.BufferedReader;import java.io.InputStreamReader;import java.i ...
- Redis06——Redis到底能用在什么地方(上)
之前我们介绍了一些列关于Redis的数据结构.持久化.过期&淘汰策略.集群化等知识点,感兴趣的小伙伴可以在文章的末尾查看往期内容.今天将为大家带来Redis的应用.由于本篇文章较长,所以将拆分 ...
- 关于动态路由中路由之间的跳转(页面a跳转到页面b)
由addRouters方法获取到后台的动态路由,要实现路由之间的跳转,不可直接用path: '***',而是将动态路由存储到vuex中,再从vuex中取得,如:this.$store.menu.nav ...