霍春阳,Vue.js官方团队成员,专注于Web开发领域,Vue.js3核心贡献者之一,Vue.js文档生成工具Vuese的作者,以及技术社区的活跃成员。他撰写了大量广受好评的科技博客。大一时,他主修机械工程,和同学一起创业,获得了10万元的投资。大三那年,他毅然决然地辍学,只身来到北京,开始了自己的职业程序员生涯。如今,他是一名正式的Vue.js团队成员,也是畅销书《Vue.js设计与实现》的作者。他为何“跨界”成为程序员?你为什么决定辍学?你是如何加入官方Vue.js团队的?本次图灵专访,带你走近霍春阳,一起来了解一下他的传奇经历。01非学历机械工程专业程序员。由于我的创业背景,我爱上了编程。我不是学生。我的专业其实叫“材料成型与控制工程”。这个专业和编程无关。我偶然接触了编程。大一上学期,我校计算机学院的一位同学成立了一个计算机社团,叫做计算机创业协会。当时他们去我们班招新,我和他们聊了很多,感觉还不错,就决定加入这个社团。其实我更关心的是“创业”本身,而不是电脑。当时我的想法是,只要能创业,做不做计算机相关的创业项目都无所谓。就这样,我的生活开始和电脑有了交集。加入协会后,我和这个计算机协会的会长成了很好的朋友。值得一提的是,我们今天还是很好的朋友。其实我在新书的致谢中也提到了他《Vue.js设计与实现》。后来我们两个带领协会的成员开始讨论创业项目,我们决定做一个垂直于大学生的交友软件,叫品爱网。下图是我们做品爱网推广的宣传片:我第一次接触编程是在我们一起开发这个网站的时候。那时候在网上看了很多教程,看了很多书,主要是PHP这门语言。2013年,学校分配的studio(一个教室)后来在第一版网站上线了,我感到很自豪。应该是我第一次感受到编程带给我的成就感。也许就是在这个时候,我开始爱上了编程。我们大一创业,很快就拿到了10万元的种子轮投资,还拿到了孵化器专门提供的办公场地。那时,我年轻气盛,觉得自己一定到了“人生巅峰”。所以我把所有的赌注都押在了创业上。从大一上学期开始,我就休学搬到离学校一小时车程的孵化器全职创业。大三,也就是2015年寒假,创业项目发展低迷,团队其他成员开始慢慢外出找实习,准备毕业工作,我也不例外.当时,我有两个选择。一是回学校继续学业,但由于停学,可能要到2018年才能毕业;另一种是辍学外出打工。我考虑到当时家里条件不好,需要赚钱补贴家用,所以选择了读书,然后决定在北京这个城市工作。之所以选择来北京,是因为2015年寒假期间,接手了一个外包项目。这个项目的老板当时也在北京创业。后来和老板聊得很好,就决定去北京跟她一起工作。于是,我拿着做外包项目赚的3000块钱,从哈尔滨坐卧铺来到北京,开始了我的北京之旅(当时印象最深的是交不起房租,只能住在地下室,或者说地下室的二楼。非常小的隔板,上面布满了蜘蛛网)。一开始写PHP做后端,前端完全是因为2015年在北京工作的第一家公司需要,从那以后就一直在做前端。对于找工作的程序员来说,学历和专业背景都不是决定性因素——“金子总会发光”。我大学辍学主要有三个原因:一是前面提到的创业暂停;二是希望尽快帮助家人减轻负担。三是我的专业与计算机无关,个人认为没有继续读下去的必要。但是我觉得学历还是很重要的,一定要更加努力。要想找到目标工作,还是要“打好铁,是金子总会发光”。02给程序员的学习建议基础知识奠定你的可能性首先我建议你一定要学习计算机基础知识。楼高不高,全看地基牢不牢。像我这种非专业出身的人,最能理解那种基础薄弱,导致后期成长速度不够,进步乏力,没有方向感的情况。我花了很长时间来弥补这个不足,阅读了大量经典的计算机书籍。这些知识实际上是普遍的,不会随着时间的流逝而过时。在学习计算机基础知识的时候,会让你觉得短时间内“学无用”,甚至觉得浪费了很多时间。但是请相信我,这绝对是值得的,它会成为你未来成长的加速器。其次,英语水平对于程序员来说非常重要,直接影响到你的成长和发展。我在知乎上看到了一个很好的回答,大概意思就是英语不好会成为你的“枷锁”。也就是说,你的能力不止于此,只是你就是提高不了,已经到了天花板。让我给你两个直观的例子:我写了一个CSS解析器。你可以在我的GitHub主页上看到它。难度本身并不算太大。它是按照CSS相关规范编写的,但是这个规范是用英文写的,所以如果你不懂英文,即使难度本身不是很难,你也完成不了。还有就是Vue3的响应系统,其实想要实现一个完整的响应系统,确实要看JavaScript语言的规范,而规范是英文写的,再牛再牛,如果你不理解相应的规范你还是写不出来。大概这就是所谓的“枷锁”吧。最后,阅读源代码是至关重要的。看别人解决问题的思路,看别人的代码,然后尝试通过代码表达自己的想法,在这个过程中慢慢完善。03接触Vue.js2016年,我还在第二家公司工作的时候,团队还在用jQuery+RequireJS。我不会详细介绍疼痛。当时,React和Vue已经逐渐在技术圈流行起来。最后,我们结合自身业务和团队特点,选择了Vue.js。那应该是我第一次接触Vue。那时候觉得Vue真的很好用。Vue的学习和入门对新手来说非常友好。当然,想要学好Vue,还是得有扎实的前端基础。我加入Vue官方团队纯粹是因为对Vue的贡献达到了要求,比如帮助修复bug之类的。加入Vue官方团队,最大的感受就是一种被“认可”的感觉,很开心,这是真的。04写一本书,为Vue.js做贡献的另一种方式其实当策划编辑王俊华先生找我谈写一本书的时候,我才意识到写一本书绝对是一种考验。首先,写一本书本身就是一场“拉锯战”,体力消耗很大,少则一年半载,多则数年。其次,写书和讲故事是一回事。一方面是如何把故事讲好,另一方面是如何讲故事让别人喜欢。至于如何讲好故事,首先要求讲故事的人比故事本身“大”。意思是你要能把故事憋在肚子里,背得透彻,才能把故事讲好。对应《Vue.js设计与实现》这本书,你要对Vue.js的源码有足够的了解。而如何讲故事让别人爱听,更是技术活。但谁都知道,没有人是天生会写书的,就算有,至少也不会是我。所以为了“把故事讲好,让人爱听”,我真的下了不少功夫。在写作过程中,为了理顺一小段的句子,有时我会反复琢磨一两个小时。有时候自己设计的例子还是不满意,反复修改案例。这些都需要极大的耐心和对工作的责任感。有时我真的觉得很累,很沮丧。但回过头来看,写书更重要的是坚持。写《Vue.js设计与实现》对我帮助最大,因为它建立了我的自信心,我觉得“啊,原来我也能行”。如何使用《Vue.js设计与实现》这本书?我觉得还是要按照书上的代码自己写,这样才能看得更透彻。另外,本书的勘误每次再版都会更正,我们有在线勘误链接。如果遇到影响理解的代码错误(包括但不限于变量名错误、错别字等),可以参考勘误表看看有没有Issue可以解决问题:https://github。com/HcySunYang...如何拥有《Vue.js设计与实现》↓↓识别二维码下单↓↓05业余时间干什么,生活其实挺无聊的,就是学技术。因为要学的东西确实太多了,哈哈。除了编程,我喜欢找朋友出去喝啤酒。酒精度比较好。我有7瓶东北大青棒打底,哈哈。和朋友喝酒聊天简直是我一生最喜欢做的事情,没有之一(说实话)。
