张云龙-全国直播-CTO
张云龙老师2018年5月19日在“千名中国前端开发者峰会”上的演讲。作为前端工程界的领军人物、现任全民直播CTO,张云龙老师分享了自己的个人成长之路,希望能够给大家前端职业规划一些参考和启发。
张云龙:大家好,我叫云龙。自2016年3月起,我参与全民直播创业项目,这两年一直在上海。关于我自己的成长过程,我一直想找时间和前端开发者分享。通过分析别人,你也可以总结自己。我害怕像成功研究一样谈论这个话题。事实上,CTO这个职位现在有些“糟糕”,并不算成功。仅供参考。
我是2010年毕业的,毕业后就加入了百度。我毕业时加入百度的同一群人后来建立了一个微信群。八年后的今天,我们仍然在那个群里聊天,分享彼此的经历。我发现可以作为参考——8年前一群同样能力、同样起点的人,在过去的8年里做出了不同的选择,最终成就了不同的人生。有的创业,有的在大公司当高管,还有的靠炒比特币发财。参考他们的选择会给你一些启发:“如果我当时选择那样,我现在会是什么样子?”现在我的职业生涯已经8年了,我想把我的经验作为案例分享给大家。
在发言之前,我想请在座的同学,如果工作时间不满3年的请举手。 。 。 。 emmm,其他的都三岁多了?我一看,比例几乎是一半对一半。
我采访过很多前端工程师,发现每个人工作3-4年后都会遇到一段迷茫期。我问他们下一步想做什么。他们中的大多数人回答说他们想创建一个开源项目并推广它。成为前端“网红”往往很少考虑更长远的职业发展规划。
今天,我希望将自己的工作经历彻底拆解,呈现给大家,作为案例来回答有关职业发展的问题。
第一章:程序员的中年危机。
我今年33岁。虽然我身边有科技,但我难免会有些焦虑。这种焦虑来自于质疑我的能力。在大公司的那些年,有大平台的支持,我80%的成就都是平台给的。拥有健全的制度、优秀的同事、完整的职级体系、丰厚的薪资待遇。你在这么舒适的环境里做着这么一小部分的事情。如果有一天你发现你的20%可以被替代,这个公司会怎么想?你有很多股票,工资也很高。对于公司来说,你的成本是非常高的。在新人的推动下,你将面临被替换的压力。我今年28岁左右,29岁了技术水平还是不行。上升期就有这种焦虑。
在大公司的那些年,我感觉自己就像一个没毕业的学生。我从未失去过“学生精神”。无论我说什么或做什么,我都有这种感觉。其次,技术更新迭代非常快,尤其是前端领域。你会发现,真正能够安定下来的事情很少。第三点焦虑是企业如何对待35岁以上的员工。我在百度的时候,团队里有一个非常厉害的工程师。他在2010年的技术排名已经很高了,但是他的技术思维还停留在之前的时代。技术的发展逐渐无法引导团队的进步。过程很艰难,也让我感触良多。最后一点是,随着年龄的增长,选择的成本会越来越高。你将会有一个家庭。即使公司认为你没有价值,你也不能离开。你不能再动了。这些触动了我,让我开始思考。
我们是做技术的,尤其是前端。很多时候我们做产品,只看到UI设计、交互设计、产品设计。即使我们做出的产品非常成功,那成功又有什么意义呢?可能是UI设计精美,也可能是推荐算法准确,但前端输出给产品带来了什么?而前端技术应该有多深?技术经过长时间的发展是否需要改造和管理?当时我没有这些问题的答案。我可以继续写几页,但五年、六年或十年后,它不还是一样吗?我现在能做什么?我将来想做什么?
带着这些问题,我用八年的时间走遍了三个城市,从北京到广州,再到上海,寻找我职业道路上的答案。
头三年我在北京。那时我刚刚毕业,无法决定自己的未来。我有幸加入了百度。我花了一些功夫准备了一份漂亮的简历,这对我找工作有很大帮助。在学校的时候,我对前端领域基本上已经非常熟悉了,而且我的简历也非常漂亮。当你刚毕业时选择工作时,你的简历将是一个很好的门面。我把所有的精力都投入到了简历中对前端方向的深入研究上。当时我在大公司招聘时已经具备了一些优势,很荣幸能够被百度录取。
百度这三年主要是在技术上做深度。当时,百度拥有一个100多人的大型前端团队,包括百度新闻、百度视频、百度知道、百度百科等。为了解决开发效率问题,整个团队决定成立一个横向支持小组来建立一个工具是fis。当时我还在CMS部门(内部内容管理系统),主动提出参与fis项目。在fis工作的过程中教会了我很多服务器端的技术,包括运维知识。在百度工作三年后,我开始考虑脱离这个平台80%的支持。当时我以为UC是一家中等规模的创业公司。我在那里待了两年多,那时我就开始专注于前端团队建设。我会把在百度学到的技术理念重新运用在UC中,二来指导前端团队提升整体技术水平。
在广州UC工作2年后,我来到上海参加全国直播项目。整个做全民直播的过程经历了很多坎坷。我刚接手全民的时候,全民自己招收的研发生只有两名。经过2年多的时间,组建了近100人的团队,包括服务端、前端、客户端、测试、运维、编解码、大数据等部门,我感觉自己在工作中成长了更多。上海近两年的规模比前五年大公司的总和还多。
我们过去经历过这样的路线:大公司→中型公司→初创公司。专注于从技术到团队再到业务的各个方面。今天我重点跟大家分享一下我总结的成长过程。当你工作到一定年限,遇到困惑时,可以用这个模型作为参考,也算是一个方向。当然,这并不是唯一的增长途径。
我把我的整个职业生涯分为三个阶段:
第一阶段是一项技能。这是关于培养你的专业技能和你的专业技术。
第二阶段是独立工作。当你的技能达到一定深度时,你需要开始思考如何独立做事。
第三阶段是有事业。选择一个使命并带领你的团队实现它。
大概有这样的三个阶段。接下来我就一一分解:
第一阶段:一技之长。
我把它分为五个层次:栈内技术、栈外技术、工程经验、带人做事、行业声音。
所谓栈内技术,就是指你专业领域的技术。对于前端工程师来说,就是我们熟悉的JS、CSS、HTML等基础知识。深入了解我们程序运行的宿主环境——浏览器,可以掌握并灵活控制浏览器内发生的一切。前端没有秘密,所有可访问的页面都接近开源,所以测试栈中技术的标准就是看你最终能否形成一个技术上的“共享根”——那种可以独立复制任何东西的技术。前端产品。记住和辨别它的信心。
栈内技术是你生存的基础,不要轻易“改变方向”。
虽然我现在是做技术管理的,但是我绝对不会放弃作为一个前端人的基本功。我遇到了一些前端同学,工作几年后对前端工作更加熟悉了,正在考虑转行到其他岗位。但我想说,从你转行的那一刻起,你想转的领域就变成了你新的“栈内技术”,然后你就得重新走一遍技术积累的过程。几年时间匆匆而过,不要轻易“改变方向”。前端绝对是一个可以长期坚持的领域。现在新的软件生态,无论是小程序、快应用,甚至是区块链,都会首先针对JS开发者。因为有庞大的开发者群体,工具链也比较完整,所以他们长期从事前端工作。在可预见的未来,任何事物都不会“过时”。
栈外技术是指栈内技术的上下游以及领域外的相关专业知识,包括但不限于服务器端技术、运维、CDN、测试,甚至UI设计、产品设计等.,拓展你的栈内技术周边领域,充分了解你的工作在整个技术研发体系中所处的位置。工作之余投入更多精力,不断将其他栈外技术融入到自己的知识体系中,构建栈外能力。如果你想深入前端,往往会涉及到缓存、模板渲染、用户体验等知识,如果没有相当的栈外技术积累,你很难为你的团队获得足够的话语权。
我个人非常推崇“大前端”这个概念,有点类似于“全栈工程师”,但并不需要一个人成为综合专家。而是需要前端为根,进行上下游栈外技术学习,一专多能。我能够在全民担任CTO,是因为早年在百度和UC积累的栈外技术经验,并且了解两个大部分产品线的运维和架构体系公司。
第三,工程经验。指构建专业技术体系的“解决方案”。通俗地说,就是做事的“套路”,从0到1、1到60、甚至60到100阶段掌握构建专业技术体系的过程。工程经验涉及技术选型、架构设计、性能优化、CI/CD、日志监控、系统测试等,这些都是工程相关的方法论。
许多工程师没有能力总结自己的工程经验。我在面试时经常问,你觉得工作了两年、三年、四年的人和刚毕业的人有什么区别?面试官嘴上说自己掌握了某项技术,但实际上往往只讲一些知识点。那些“今晚查一下,明天就知道了”的东西,不叫技能。决定你比别人更具专业价值的其实是现场工程经验。不管你读多少文章,都是没有用的。如果没有实际练习,你就不能称之为“掌握”。因此,我建议,如果你想获得足够的工程经验,你需要在自己的业务中争取更多的实践机会。
工程经验是技术水平的分水岭。
四是带人做事。前三项是对个人专业技能的深入要求,带人做事则是对团队协作能力的要求。之前我很不明白的一件事就是,我自己做得很好,但是当一个新人进来,得不到我要求的东西时,我该怎么办?当我很着急的时候,我说你不做,我就做。更何况,早年在百度工作的时候,有同事白天辛苦写代码,晚上我就直接重构代码。没过几天,这位同学就辞职了。带人做事就是把自己擅长的事情、好的习惯传递给别人,从而达到1+1>2的生产力提升,让整个团队的产出比自己高。另外,现阶段大家要特别注意“管”和“带”的区别。所谓“管”就是“某个领域我不懂,但我知道你懂,你一定要帮我做好”,而“教”就是“我很了解这个领域,我了解你”不懂,我想教你。” “做得更好”。就是授之以鱼,甘为梯子,为他人取得成功。领导一个人或一个有能力的团队,是生活和工作成熟的标志。
痴迷科技的人往往缺乏耐心,容易导致他人走极端。如何引导新人成长,激发他人能力,也是我在职业发展过程中想要追求的问题。管理中有一个特别好的方法,就是善于启发式提问。问题的深度特别能体现一个人的能力水平。任何用于提出请求的陈述句都可以转换为疑问句,在激发新想法的过程中嵌入对结果的约束。例如,我希望老板给我加薪。如果我直接说:“老板,我要加薪”,我估计十有八九会被搪塞。但如果换个情况,我首先会问“老板,我最近工作怎么样?”样本? “这可能是一个很好的方法,可以激励你的老板思考你的工作成果,并引导他得出你应该得到奖励的结论。当你要求一个人做A时,他会提出B计划。不要强行改变对方的想法并提出A,因为对于一个新人来说,他可能无法一步理解A方案,在能力的限制下,他只能想到B方案。当你带人的时候,你应该尝试一下。你最好将A和B之间的差异转化为你问他们这个问题怎么解决,那个问题怎么解决,一直问,直到A形成,他们就会思考,如果没有这个过程,他的思维就没有进化的过程。虽然他收到了指令A,但是他不理解,他会用其他方式去做,最后得出一个C,然后你再重构一遍,陷入一个循环中无法自拔这是我之前的误区,所以现在特别注意。提问的艺术。
五是行业发声。如果你过去做得很好的话,基本上就能说出来了。向外界发表自己的工作经验总结,与他人交流,碰撞思想,看到更高的山,然后一天天修改自己的想法完善,这是走得更远的一种方式。有时候你真的要把你的想法放到行业的层面来验证。自我愉悦是有毒的,对每个人都好才是真的好。如果别人不认可你的一套想法和想法,基本上可以判断你还没有达到更高的水平。然而,通过在行业中发声获得认可往往需要机会,而机会却很少见。得到他们是我的幸运,失去他们也是我的幸运。这也和你工作的公司平台有关。我的技术声誉增长最快的地方是在百度的那几年。正好是一个大平台,做出了一些成绩,但是当小创业公司出来分享的时候,基本上没有人关心你。
永远不要放弃一项技能。不存在所谓的职业转变或转变。始终坚守自己原来的领域,拓展自己的范围,最终获得更全面的能力。所以,一项技能是值得你长期相信的。
第二阶段:独立做事。
独立做事有几个层次:
独立:给自己一个目标,自己去完成,不让别人擦屁股。
独立引导人:注意提问的程度,帮助他发展自己的想法。
独立带领团队:进入这个阶段,需要更加关注整个团队的氛围和工作效率。用你的工程经验带领团队产出高效、高质量的成果,实现1+1>2。
独立做业务:团队稳定后,开始关注业务和行业的发展,了解你的用户,他们是谁,他们在哪里,为什么使用你的产品,指导团队下一步的工作生产和研究。
独立生存:独立工作的最高境界就是能够带领一群人养活自己,独立生存。互联网上的商业模式数量有限。知道怎么玩,找到适合自己擅长的模型,支持一群朋友,意味着更大的转变。
独立做事的每一个阶段都是一个比较大的跨越,需要思维和各种软素质的重大转变。无论技术人的身份如何,独立做事的阶段也是一个人逐渐成熟的过程。 ,这是我2年多来一直在寻找的结果。
我之前提到过中年危机。在我看来,独立工作的最后阶段,独立生存,才是解决中年危机的最终答案。
就我自己来说,我基本上已经做到了一项技能,并且在行业内有一定的影响力。我还在学习独立生存。职业生涯的最后一个阶段是拥有职业生涯。这部分我仍然不清楚。我只能隐约看到,到了这个阶段,你已经有了团队,可以独立生存了。接下来,你需要找到一个团队任务。如果我今天说我要做最赚钱的直播,我估计很多观众都会觉得没有人愿意和我一起做。但如果我说我要做年轻人爱看的直播,或许很多人都会动心。 ,这就是使命感的力量。使命可以汇聚人才,使命背后还需要有完善的商业模式。阿里巴巴的企业使命是“让天下没有难做的生意”。他们始终坚守这一企业使命。他们先创办了阿里巴巴,后来又创办了淘宝,发现可以和用户交流,就创办了旺旺。后来他们发现交易需要解决支付问题。关于钱,我们开始了支付宝,然后是物流。所有主要战略方向都围绕我们的企业使命。
以上就是我个人的成长模型。培养一项技能需要五年,独立工作需要三年。我似乎仍然不知道什么时候才能最终拥有自己的职业生涯。
上面的模型分享给大家,作为参考,但是走哪条路取决于你想成为什么样的人。
后面还有一些疑问。我想今天很多人可能都会关心这些。这几年,我带着疑问走遍了很多城市,做了很多事情。曾经困扰我的问题也逐渐有了答案。
前端入门应该学什么?现在前端领域的知识非常复杂,框架多种多样。对于前端来说,这是最好的时代,但对于新人来说,也是最坏的时代。他们不知道从哪里开始。我特别推荐的是的文档(需要绕过防火墙),里面涵盖了很多基础的前端知识。通过学习开发者工具,您还可以了解基本的前端知识、浏览器操作原理,提高开发和调试效率。有更好的入门捷径,可以打下坚实的基础。
第二件事是CTO通常做什么?一是招聘。招聘面试是我经常做的事情。我们有一支专门的人力资源团队。我会把我的账号给HR的同学,让他们登录并与其他人联系。有一些专业的高端人才,我会一直保持联系。存志老师就是这样被我勾搭上的(:逃走。第二步是考虑技术团队的组织架构。我需要根据以往的经验来设计一个公司的架构。一个公司的发展,你不同的阶段要做不同的调整,比如大数据,前期我会统一管理运维团队,随着公司的发展,我会考虑独立做事情,不受业务的干扰。另外就是组织架构。和CEO聊天,去湖里散步,把他的战略目标分解成技术目标,然后去落实。 初创公司需要借助各方的力量。通过替代商业资源向业内其他公司寻求技术帮助,以加快生产和研究。
如何确定一个人的工资、奖金、期权?工资是一个人未来可以带来的收入的考虑因素。这是一个市场价值。一个人无论在这个公司做出多少业绩,达到这个水平就必须得到报酬;奖金是对绩效的奖励。 ,是对一个人过去所做事情的价值的衡量;最后一项是选项。如果这个人的公司充满希望,你可以用部分工资奖金来换取期权,以降低公司的成本。这就是三者之间的关系。充分理解薪资、奖金、期权之间的关系,是一个CTO应该注意的事情,有助于营造良好的团队氛围。
如何营造良好的团队工作氛围?除了前面提到的待遇问题外,还有很多措施可以用来营造良好的团队氛围。我是一个比较理性的管理者。我基本上不会用私人关系,比如每天吃饭来维持这个。我相信通过完善的机制、完善的法规,营造公平的环境、引领良好的氛围。另外,良好氛围的基础还要靠业务。如果生意没有起色,基本上无论做什么,气氛都会不好。
那么技术上做不到的话,是不是就得转去管理呢?我认为不存在转行管理这样的事情。对我来说,这个过程就是找到独立做事的能力,最终有实现梦想的使命感。这就是过程。
技术人才不适合管理吗?我曾经有过这样的疑问。后来我自己带了一个团队,经历了一些事情。我逐渐了解到,每个人都会形成自己的管理风格,不存在适合不适合的问题。管理中不是有“五种管理方式”吗?老虎型、考拉型、孔雀型、猫头鹰型、变色龙型,这五种类型,没有谁好谁坏,但不同的风格会带来不同的团队氛围。我估计很多技术生刚开始带团队的时候都是老虎型的。
那么还有一个问题就是应届毕业生应该去大公司还是初创公司。我觉得去大公司经历一下是很有必要的,因为当你去了大公司,你就会明白“什么是好的”。我现在能做到这个职位,一定程度上得益于我在B和A的工作经历,大概知道一个团队是如何从1人成长到60人,然后从60人成长到100人。经历过大公司,知道什么不错,我有足够的视野和高度来带领球队。
这是我创业时发现的,一定要先做,再学。两年多前,有一天,我的一个朋友问我:“云龙,建一个像一骑修这样的平台需要多少钱?” ’我告诉一个朋友,他们需要一个20到30人的团队,工作两到三个月,大概需要两到三百万的资金。他说成本这么高,就不理我了。两天后,他来找我,说已经完成了。我很惊讶,就问他是怎么解决的。他说,他在淘宝上花了100多元买了一套代码,还带了很多模板。这件事对我影响很大。你做技术决策的时候,尤其是初创公司,首先要想到行业里可以直接使用的东西,是不是用公司的资源替代,是不是业务采购等等,来这里用吧先用了再组队学习。学了之后,你就会形成自己的一套东西。这就是过程。
最后一个问题是如何体现技术团队的价值。如果一家公司在产品设计和运营方面做得很好,我们怎么知道它在技术方面做得很好呢?这是很重要的一点,技术经理一定要非常清楚,团队才能有方向。
这里我大致总结了三个关键点:技术产品质量、开发效率和体验表现。
这是一幅漫画。当在线服务正常时,老板想:“一切都很平静,我不知道为什么要聘请这群研发人员。”但当网上发生意外时,老板想,“总有问题,我不知道”。为什么要雇你们来做研发?”这种现象其实很常见。技术产品的质量是基础,稳定性才是最重要的。第二个能体现技术价值的就是提高开发效率,快速迭代,快速上线,稳定基础上小步快跑,但做到以上两点,才基本满足了业务需求,不会被诟病,但要进一步体现技术的价值,还需要。在性能上做文章。
右图是亚马逊提出的一个概念。网站打开速度每降低0.1秒,网站就可以增加1%的收入。优秀的团队需要在业务核心绩效指标上下功夫,突破二级开通速度。
最后,我要向我职业生涯中遇到的两位贵人表示特别的感谢。第一个是我刚入行时的第一位导师。在百度工作的朱旭很冷漠。他在百度工作了十年。他为人非常低调、脚踏实地。他也愿意培养新人,真正成为我的阶梯。很多启发性的指导。第二个人是我在加州大学的老板。离开UC后,我们还建立了导师和朋友的关系。他给了我很多管理的启蒙运动,并指导我,并在我领导人们的最令人困惑的时期给了我答案。
最后,非常感谢大家!