刘博文:代码无终点,坚持跑,就不会输

图片描述
图灵访谈第1027期前端

2012年,他17岁,中专毕业。

2015年,他20岁,加入国内知名互联网公司360,成为360最大前端团队奇舞团的一员。现任360导航事业部资深前端工程师。面试

2019年,他24岁,出版首部技术书籍《深刻浅出Vue.js》。后端

目前负责360导航首页及二级页创新项目等亿级PV站点的设计与优化,推进Vue.js成为部门内普遍使用的核心技术栈,独立研发相关开发工具与技术解决方案并使之成功落地。前端工程师

从中专毕业的门外汉,到360前端工程师并出版技术书籍,他完成了职业生涯的巨大跨越。他是怎样自主学习,快速成长的?本期图灵访谈对话刘博文,一块儿来了解他的前端之路。框架

8000块钱在北京能活多久?

「虽然也很努力,但我以为更多的是靠运气。」

17岁那年我中专毕业,是学计算机的。但当时的中专就是告诉我什么是计算机,有个职业能够用计算机去工做。函数

刚毕业的时候,我到沈阳的一家企业去上班,不会JS,CSS也只是略懂。面试的时候,他们可能不知道个人水平,以为我还能干活,就让我去了。结果入职后发现,我啥也不会啊,又很差意思直接让我走。就给了我两个选择,一个就是接着干,当学徒,学徒就没有工资;还有一个就是别在这干了。我想了想本身确实挺菜,那就跟着学吧。工具

同窗都说我傻,不给钱还给人干活。如今回头看,是我运气好。若是没有这个当学徒的机会,我就没办法踏入这个行业。学习

2013年,我18岁,想本身来北京。那时家里人有一点担忧。他们是不支持的,但仍是给了我5000块钱,以为等我钱花完了就本身回来了,总不能在那饿死。开发工具

但他们确定想不到,我就用这5000块钱,加上本身攒的,一共8000块钱,一直坚持到如今。优化

当时我算好了这8000块钱,要在北京租个房子,押一付三,一个月房租按1500算,一共须要6000。我包都拎来北京了,还没找工做呢。就是住一个小旅店,天天还要花200块钱。也就是说我要在10天内找到工做并租个房子。

当时也是命好,真的找到一个特别小的公司,让我去上班。由于我知道本身的水平,能找到工做还挺高兴的,先能养活本身就行。并且公司最好的一点就是供住,员工能够每月花200块钱住在宿舍里面。这就直接解决了个人生存问题,也是我在北京迈开的第一步。

图片描述

工做了一段时间后,我仍是只会写页面,切图,并且忙到没有时间学习。这样下去确定不行,我就换了一个比较轻松的公司,为了有时间去学 JS。后来学到必定阶段的时候,我遇到瓶颈了,由于学的东西没办法在工做中用上。

我就又换了一个公司,这家公司只用一种语言就是 JS,服务端是用 Node.js 写的,比较符合个人须要。我能够充分去实践和提高技术,并且工做任务很繁重,那是我成长最快的一个阶段。

再后来,就到了如今的公司360。360给个人感受像学校,总体工做氛围是比较轻松和自由的,任务不会把人压到一点时间都没有,咱们有充分的时间本身去学东西。并且像月影、成银、李松峰老师和屈屈这种大牛会常常在公司内部讲课,有什么不懂的还能够去请教。

Vue.js 才没有看起来那么简单!

初识Vue.js时,它还未被众人承认。想不到5年后,为它写了一本书。

我接触 Vue.js 比较早,大概是2014年。由于上一份工做接手了一个同事的项目,就是用 Vue.js 写的。当时它是零点几的版本,尚未正式的一点零版本。我简单了解了一下,发现它和 Angular 1 很像,挺轻,挺优雅的。需求都能知足,学习成本还不高。

当时用 Vue.js 的人比较少,你们都没怎么据说过。它不火到什么程度呢?咱们组新来了一我的,跟我一块儿写项目,我说项目是用 Vue.js 写的,就给他看了一下代码,讲了一下项目。而后,次日他就离职了。

有半年的时间吧,我都在想是否是由于咱们组的这个项目,用 Vue.js 他以为太 low 了,因此不想干了?直到后来 Vue.js 被你们普遍承认,我才打消了这个想法。

我刚入职360的时候,咱们组的项目都运行了很长时间,很稳定。一次偶然的机会,咱们打算新开发一个后台管理系统,你们开会讨论技术选型。就业务来说,我认为使用框架和对应的组件库会极大下降开发成本,就强烈推荐使用 Vue.js 技术栈,由于考虑到学习成本比较低,并且我对 Vue.js 比较熟。

如今你们已经习惯了使用框架开发,但在当时,个人提议遭到了很是强烈的反对。你们不停地提出各类问题,我也不停地给出解决方案,会议室现场变成了辩论会。

最终,个人 leader 给了我一个机会,若是想使用 Vue.js,就要在短期解决两个最重要的问题,登陆和部署流程。由于公司的统一登录中心是结合后端来实现的,纯单页静态项目就意味着以前的登录彻底不能用了。部署流程也须要全新的解决方案。

当时我还有其余任务,因此就只能利用下班和周末的时间去作,好在最终问题解决了。这就是咱们组正式使用 Vue.js 技术栈的时间点,也算是在后台项目中的一次试水。后来,咱们组开发一个新产品,是面向C端的项目。在技术选型时,我又一次强烈推荐 Vue.js。由于上一个项目,有一些同窗已经熟悉了 Vue.js 的开发模式,此次我也解决了一些遇到的问题(因为产品是图文内容类,存在 SEO 问题,等等)。就是这个项目真正推进 Vue.js 成为了咱们的核心技术栈。

对 Vue.js 愈来愈熟悉,我在博客上陆续发布了一些梳理它内部原理的文章,做为总结和记录。2018年,王军花老师看到了个人博客,找到了我,问我有没有兴趣写本书。当时我感受很忽然,这东西我写不了啊。内心边是很想写的,又担忧写很差,心里很挣扎。一天后,我和军花老师说能够试一下。

可能跟性格有关系,我历来都不是等把一切都准备好了,再去作一件事。通常都是机会来了,先干着再说。中间有问题再去解决问题。

当时我给本身定了的目标是6月份交稿。我列了一个大纲,而后倒推,一个月为一个节点。写做过程当中,每一个节点的进度可能比预期的快或慢,但整体在可控的范围内。

写做时间就是午休和下了班以后,一天差很少要写两三个小时。其实后期也会以为枯燥,没有灵感。开始怀疑到底值不值得,这件事真的这么重要吗?我是否是用这些时间作其余事更划算?但没有真正想过放弃,就这样坚持下来了。

图片描述

在写做过程当中,我对一些 API 原理的细节理解得更深刻了。

举个例子,我发现 Vue.js 对函数报错这方面作了很严谨的处理。当咱们使用 Vue.js 开发项目时,编写的全部代码都是 Vue.js 调用并执行的,因此它在执行用户的代码时,作了错误的捕获处理。

还有就是计算属性。一个函数,能够返回计算后的结果。它要实现一个很重要的功能,就是当计算属性所依赖的某个状态发生变化时,计算属性的返回结果也须要作相应的变化,这个我以前确实没想过 Vue.js 是怎么作到的。

工程师的赛道上决定输赢的,只有两个字叫「坚持」

「我本身特别在乎的事,多苦多累都要把它干完。」

一直以来,驱动我作事情的都是「我想」,而不是外界的指望。

这种性格有优势,也有缺点。好比说上学的时候,我学习很差,倒不是由于笨,而是由于我当时以为,学习的结果就是分高分低一点,而这个分数什么用都没有。优势就是我本身特别在乎的事,多苦多累都要把它干完。包括来北京弄这个计算机。

我以为个人职业生涯,更像是一条没有终点的赛道。并且这条赛道是不公平的,你们不是在同一条起跑线上开枪往前跑。当我刚开始跑的时候,可能别人已经跑了五年了。别人跑了好几万米了,我才刚开始第一米。

好多人想问我怎么才能跑得更快,把这场比赛跑赢。其实没有任何方法和经验可让谁跑得更快。即便在短时间内快一些,但在这条没有终点的赛道上,没有任何意义。大部分人跑到中途就主动放弃了,这就是为何大牛那么少。惟一能决定这场比赛输赢的,只有两个字叫坚持。在这条赛道上跑赢的,不是那些跑得快的人,而是为数很少坚持跑的人。他们能跑赢,只是由于他们还在跑。

图片描述

读代码实际上是一种能力,能够锻炼。你一开始可能读不懂比较复杂的源码,能够读像 Underscore 那种简单一点的工具函数,重要的是训练你的大脑。常常阅读代码的人,理解力会逐渐上升。若是你不常常看代码,一段就研究老半天。尤为是框架,不是一段代码,是一坨,你直接就蒙了。

全栈工程师养成计划

对于习惯计划与记录的人,时间的脉络变得清晰和可控。

我每一年都会给本身定目标,应该在哪一个技术方向上深刻一些,而后把相关的经典的书买下来,看一看。平时也会读一些所谓没有用的书来调节一下,好比哲学类和心理学的书。

几年前,我发现一我的很难把全部东西都学会。若是漫无目的地去学,不少东西看完以后就忘了。我会挑比较感兴趣的领域去研究,这个领域中的全部问题都看一下,可是对于其余领域的比较深刻的知识,可能就先放一放,之后再去研究。

若是本身有目标的话,哪些东西是没看的,哪些东西是应该看的,其实内心都有数。

平时作事我有一个小技巧,是使用番茄工做法。不是用做秒表,到点了就停。对我来讲,它是统计的工具。好比说以一周,一个月为周期,记录我天天有效的专一时间是多长。据我统计,我天天专一的时间很短,也就两三个小时,差很少四五个番茄钟。

一旦获得了这个信息,我就能够规划,天天把专一的时间用于哪些重要的事。不重要的,或者一些不太须要脑力的工做,均可以日后放。

除了这种大目标,一年中我还会定几回小目标。好比说一个月或两个月,坚持作一件事。天天我都会为它分配一部分专一的时间,持续下去,直到把这件事作完。

多是个人性格缘由,没有办法同时作不少事。我更适合一次只作一件事。

图片描述

无论是写本书,仍是平时本身学习,我以为作一件大事要比无数小事要好。前几年,我就是学得很杂,看什么火学什么,没事就看论坛的各类文章。过了一年,都不知道本身看了啥,彻底记不住。就像一个漏斗,我细碎的时间所有漏下去,什么都留不住。我应该把个人时块变大,才能卡在这。

将来我想成为一名真正的工程师,而不仅是前端工程师,打算涉猎计算机其余领域。如今前端一些颠覆式的工具和创新,好比 Webpack,Babel,都不是一个纯粹的前端工程师能创造的。好多超大型的项目,都须要前端后端综合的解决方案。若是只作前端,只能写个 JS 的工具函数,仅此而已,解决不了真正的复杂场景下的问题。

生活方面的话,我比较喜欢旅游,每一年都会计划出去玩两趟,将来仍是会出去多玩一玩。我喜欢去本身没去过的地方,看一看,接受一些新鲜的东西。要是有缘分的话,找个女友。

世上并无偶然,若是一我的务必要获得什么,并最终获得了,这就不是偶然,而是他本身的功劳,他的意愿将他领向了那里。——赫尔曼黑塞

图片:刘博文友情提供
采访:乐馨,李冰
撰文:李冰

深刻讲解Vue.js实现原理

图片描述

扫一扫,京东购

扫一扫,京东购

《深刻浅出Vue.js》 做者:刘博文

本书得到360奇舞团团长月影和《JavaScript高级程序设计》译者李松峰做序推荐,从源码层面分析了Vue.js。

相关文章
相关标签/搜索