图灵访谈第1027期
在2012年,他,一个年仅17岁的少年,刚刚中专毕业。他的名字尚未被世人熟知,但他的职业生涯已经开始了波澜壮阔的旅程。
时间流转到2015年,他步入了国内知名的互联网公司360的大门,成为奇舞团的一员。凭借着自己的努力和坚持,他逐步成长为现今的资深前端工程师,深得业内人士的尊重和钦佩。在这一年里,他在亿级PV站点的设计与优化工作中表现出色,成功推动Vue.js成为部门内的核心技术栈。他不仅独立研发相关技术工具,更成功地将这些技术落地。这是一个质的飞跃,他从一名普通的技术工程师蜕变为技术领域的佼佼者。那么他是如何完成这一转变的呢?让我们一起走进他的前端之路。
他叫刘博文,一个平凡而又充满传奇色彩的人。在中专毕业后,他开始了自己的自主学习之旅。那时的他并没有放弃任何一个学习的机会,哪怕是学徒的工作。在沈阳的一家企业,他开始了自己的职业生涯的第一步。虽然一开始他对JS和CSS一无所知,但他凭借着自己的努力和坚持,逐渐掌握了这些技术。他的成长之路并非一帆风顺,但他始终坚信自己能够成功。
在谈及自己的成长经历时,他表示:“虽然家人曾担心我在北京的生活,但他们肯定想不到我用仅有的8000块钱坚持到了今天。”当时他带着这有限的资金来到北京闯荡,面临着巨大的生活压力。但他凭借着对技术的热爱和对未来的憧憬,克服了种种困难。他经历了许多波折才找到了工作并解决了住宿问题。他说:“每一次的经历都是对我的历练和成长。”正因为他的坚持和努力才有了今天站在行业顶端的他。那么他在技术领域的经历又是怎样的呢?让我们继续深入了解他的故事。
在初识Vue.js时它还未受到广泛的认可和理解刘博文认为它与众不同给人留下了深刻的印象他对Vue.js的学习和研究开始了在早期Vue.js版本还在不断更新中这个年轻的工程师已经对其产生了浓厚的兴趣并在公司内部成功推动其成为核心的技术栈对于他在Vue.js方面的独到见解和理解是经历了多次的学习和研究对于这样一个在不断变化的行业他始终保持着对新技术的热情和追求这是他在技术领域不断前进的重要动力那么他是如何看待Vue.js的呢?让我们一起走进他的技术世界感受他对技术的热爱和追求。在一个偶然的机会中,我们团队决定开发一个新的后台管理系统,大家为此聚集在一起讨论技术选型。在业务角度,我坚信使用框架和对应的组件库能大幅减少开发成本,因此我热情推荐Vue.js技术栈,考虑到其较低的学习成本以及我对它的熟悉程度。
尽管大家现在普遍倾向于使用框架开发,但当时我的提议却遭到了强烈的反对。会议室里,问题不断被提出,我也不停地提供解决方案,现场气氛仿佛变成了一场激烈的辩论。
我的领导给了我一个机会,如果想使用Vue.js,就需要在短时间内解决两个核心问题:登录和部署流程。由于公司的统一登录中心是与后端结合的,纯单页静态项目无法直接使用,部署流程也需要全新的方案。
当时我还有其他任务要完成,所以只能利用下班和周末的时间来解决这些问题。最终,我成功解决了这些问题,这也标志着我们团队正式采用Vue.js技术栈的起点,也是后台项目的一次大胆尝试。
后来,我们团队又开发了一个面向C端的新产品。在技术的选择上,我再次强烈推荐了Vue.js。之前的项目让一些团队成员熟悉了Vue.js的开发模式,这次我也成功解决了遇到的一些问题,如SEO问题等。这个项目真正确立了Vue.js在我们团队的核心地位。
随着对Vue.js的深入了解,我在博客上开始分享一些关于其内部原理的文章,作为总结和记录。2018年,王军花老师看到了我的博客,并联系我,询问我是否有兴趣写一本书。虽然当时我感到十分意外,内心也经历了挣扎,但最终我选择了接受挑战。
我并不是一个喜欢打有准备之仗的人。通常,我会先行动,然后再去解决问题。当时,我给自己设定的目标是6月份完成书稿。我制定了写作大纲,然后按照一个月一个节点的进度进行。过程中可能会遇到快或慢的情况,但总体进度可控。
我利用午休和下班后的时间进行写作,每天大约写两三个小时。虽然过程中有时会感到枯燥和怀疑,但我没有真正想过放弃,最终坚持了下来。
写作过程中,我对Vue.js的API原理有了更深入的理解。例如,我发现Vue.js对函数报错的处理非常严谨。当我们使用Vue.js开发项目时,所有代码都是由Vue.js调用并执行的,因此它在执行用户代码时会进行错误捕获处理。计算属性也是我深入研究的一个点。一个函数可以返回计算后的结果,而当计算属性所依赖的状态发生变化时,返回结果也会相应变化。这一点我之前并没有深入思考过。
在工程师的赛道上,输赢的关键只有两个字:坚持。对于我自己来说,特别在意的事情,不管多么困难、多么累,我都会坚持到底。一直以来,驱动我的都是“我想”,而不是外界的期望。
我的职业生涯就像是一条没有终点的赛道。这条赛道并不公平,每个人都在不同的起跑线上开始奔跑。当我刚开始跑的时候,可能别人已经跑了五年、甚至更远。但我认为,在这条赛道上唯一能决定输赢的,是坚持。是那些为数不多、但一直坚持跑的人最终能赢得比赛。
阅读代码也是一种能力,可以通过锻炼来提高。一开始可能读不懂复杂的源码,可以从简单的工具函数如Underscore开始练习。重要的是训练你的大脑。经常阅读代码的人,理解力会逐渐上升。如果你不经常看代码,面对一段复杂的代码可能会研究很长时间。尤其是面对框架时,可能是一整块复杂的代码,这时如果你没有经常阅读代码的习惯,可能会直接感到困惑。全栈工程师养成计划:清晰脉络与丰富内涵的养成之旅
对于热爱规划、珍视记录的我而言,时间的脉络如同手中的纹理,清晰且可控。每年,我都会为自己定下明确的目标,探究特定技术领域的深度。我深知,只有明确目标,才能有效地积累知识。
在技术的海洋中,我选择深入感兴趣的领域,全面研究其中的各种问题。对于其他领域,虽然暂时放下,但我知道,这些知识的积累将在未来闪耀光芒。我的选择,源于对知识的热爱和对未来的期待。
在日常工作中,我运用番茄工作法,但不同于秒表的计时,我用它记录每天的专注时间。我发现,每天的专注时间虽短,但积少成多,便足以攻克技术难关。基于此,我可以更好地规划每一天的学习与工作,将专注力投入到最重要的事务上。
除了年度大目标,我还会设定短期的小目标。例如,坚持一个月或两个月专注于一件事。每天分配一部分时间,持续努力,直至完成。我的性格使我无法同时处理多件事,因此我专注于一件事,力求做到极致。
过去几年,我学习了许多知识,但感觉收获甚微。如今我意识到,做一件大事比无数小事更有意义。我将调整我的学习方式,把关注点集中在一个领域,深耕细作。我也计划拓展计算机其他领域的知识,以期成为一名真正的全栈工程师。前端与后端的知识结合,才能应对复杂场景下的挑战。单纯的前端工具函数已无法满足我的需求。
生活中,我热爱旅行,每年都会计划两趟旅行。我向往去未知的地方,接触新鲜的事物。我也期待缘分带来一位伴侣。
世上没有偶然,只有必然。如果你想得到什么并最终得到,这并非偶然,而是你的努力和意愿将你引向成功。此刻,我以清晰的计划和坚定的步伐走在成为全栈工程师的道路上。图片友情提供:刘博文。采访:乐馨、李冰。撰文:李冰。 |