图灵访谈 | Vue.js 官方团队成员霍春阳:跨专业做程序员,是什么感受?
霍春阳,Vue.js 官方团队成员,专注于 Web 研发领域, 是 Vue.js 3 的核心贡献者之一,Vue.js 文档生成工具 Vuese 的作者,技术社区活跃者,曾撰写大量颇受好评的技术博客。
大一那年,读机械专业的他开始与同学创业,拿到 10 万元投资。大三那年,他毅然决定肄业,只身前往北京,开启职业程序员的生涯。
如今,他已是 Vue.js 官方团队成员,还出版了畅销书《Vue.js 设计与实现》。他为何「跨专业」做程序员?为什么决定大学肄业?又是如何加入了 Vue.js 官方团队?
本期图灵访谈带你走近霍春阳,一起来了解他的传奇经历。
01
非科班出身的程序员
机械专业,因创业喜欢上了编程
我是非科班出身,我的专业其实叫做“材料成型及控制工程”,这个专业和编程其实不沾边。
我接触编程是因为⼀个偶然的机会。大一上学期的时候,我们学校计算机学院的⼀个同学创立了⼀个计算机社团,叫计算机创业协会。当时他们去我们班级纳新,我就和他们聊了很多,感觉不错,所以就决定加入这个协会了。
其实我当时比较关注的是“创业”本⾝,而非计算机。那会儿我的想法就是,只要创业即可,至于做不做计算机相关的创业项目并不重要。就这样,我的人生开始和计算机有了交集。
加入协会后,我和这个计算机协会的会长成为了非常好的朋友。值得⼀提的是,时至今日,我俩仍然是非常好的朋友,其实我在新书《Vue.js 设计与实现》的致谢中也提到了他。
后来,我俩就带领协会成员开始商议创业项目,敲定了要做⼀款垂直于⼤学⽣的交友软件,叫聘爱⽹,下⾯这张图是我们当初为了推⼴聘爱⽹⽽做的宣传卡⽚:
而我接触编程,就是从我们一起开发这个网站时开始的。当时去网上看了很多教程,也读了非常多的书,主要都是关于 PHP 语言的。
2013 年,学校分配的工作室(一间教室)
后来第一版网站上线了,感觉非常自豪,那应该是我第⼀次感受到编程带给我的成就感,也许就是在这个时候,我开始喜欢上了编程。
从大一开始创业,不久后拿到了种子轮 10 万元的投资,并且得到了孵化器专门为我们提供的办公场所。
那会儿年轻气盛,觉得肯定就此走上“人生巅峰”了。于是把所有赌注都压到了创业上,从大一下学期开始,我就办理了休学,同时搬到了离学校一小时车程的孵化器“全职”创业。
到了大三,也就是 2015 年的寒假,创业项目发展不景气,团队⾥的其他成员开始慢慢地出去找实习,为毕业工作做准备了,我也不例外。
当时我有两个选择,⼀是回学校继续读书,但是因为休学的缘故,我可能要到 2018 年才能毕业;⼆是选择肄业,出去找工作。
我考虑当时家⾥条件不好,需要我去赚钱补贴家⽤,所以就选择了肄业,然后决定来北京这个城市工作。
之所以选择来北京,是因为 2015 年的寒假,我接了⼀个外包项⽬,这个项目的⽼板当时也在北京创业,后来和⽼板聊得不错,就决定去北京跟着她⼲。
于是,我就带着做外包项⽬赚的 3000 块钱坐卧铺从哈尔滨来到了北京,开启了我的北漂之旅(那会儿印象比较深刻的是,交不起房租,只能住地下室,还是地下⼆层。很小很小的隔断间,里面布满了蜘蛛⽹)。
我⼀开始是写 PHP 做后端的,做前端完全是因为我 2015 年来北京工作的第⼀家公司的需要,后来就一直做前端了。
对于程序员求职,学历和专业背景并非决定性因素——“是金子总会发光”。
我大学肄业主要是出于三点原因:
第一是上面提到的创业休学;
第二是希望尽早帮家里减轻负担;
第三则是我的专业与计算机无关,我个人认为没有继续读的必要。
但我认为学历还是很重要的,要想办法多努力⼀点。要想找到目标工作,那还是得“打铁还需自⾝硬,是金子总会发光”。
02
给程序员的学习建议
基础知识奠定了你的可能性
首先,我建议一定要学习计算机基础知识,楼盖的高不高,完全就看基础牢不牢。
像我这种非科班出⾝的人,最能体会那种基础不牢固,导致后期成长速度不⾜,进步乏力,缺少方向感。
我曾经花了很长时间来弥补这方面的不足,看了非常多的计算机经典书籍。这些知识其实是通用的,不会随着时间的流逝变得过时。
在学习计算机基础知识的时候,会让你感觉短时间内“学无可用”,甚至觉得浪费了很多时间。但请相信我,这么做绝对是值得的,它会成为你未来成长的加速剂。
其次,英语水平对程序员来说非常重要,这直接影响到你的成长和发展。
我在知乎看到过⼀个非常不错的回答,大概意思是,英语不好会成为你的“桎梏”。就是说你的能力本不止于此,但就是进步不了,到天花板了。我举两个直观的例⼦:
我写了⼀个 CSS 解析器,在我的 GitHub 主页可以看到,难度本⾝并不⼤,是按照 CSS 相关的规范编写的,但是这个规范是英文写的,所以如果看不懂英⽂的话,即使这件事儿难度本⾝并不⼤,你也完不成。
还有就是 Vue 3 的响应系统,其实想要实现⼀个完善的响应系统,真的需要看 JavaScript 这门语言的规范,而规范是英文写的,所以即使你再怎么厉害,要是看不懂相应的规范,你还是写不出来。
大概这就是所谓的“桎梏”。
最后,阅读源码至关重要。看看别⼈解决问题的思路,看看别⼈的代码,然后尝试着⾃⼰通过代码把想法表达出来,在这个过程中慢慢提升。
03
与 Vue.js 结缘
2016 年,我还在第二家公司上班的时候,团队还在用 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/code-for-vue-3-book/issues
如何拥有《Vue.js 设计与实现》↓↓识别二维码下单↓↓
05
业余时间都在做什么
工作之余,我的生活其实比较枯燥,就是学习技术。因为要学的确实太多了,哈哈。
除了编程之外,我喜欢找朋友出来撸串喝啤酒,酒量比较好,东北大绿棒子 7 瓶打底,哈哈。
和朋友们喝酒侃大山简直是我人生最喜欢做的事,没有之⼀(实话实说)。
评论