专访|腾讯实习生@Chee的前端之旅
前言
为什么会有这类型的文章呢?是因为有不少的童鞋在公众号后台或直接在微信上跟我探讨如何学前端,在小公司里就我一个前端该如何学习?还有平时在面试的时候,早读君都会问的一个开放性的题目是你为什么想做前端?
带着这些疑问,早读君觉得这种类型的人应该还蛮多的,所以我就跟今天的要男一号@chee聊了想法,让他分享自己在前端的道路上如何走的?
正文从这开始~
1)自我介绍,包含现在在哪里实习,所学专业,现在在公司负责什么项目或业务
Hi,大家好,我是Chee,来自广东工业大学,计算机科学与技术专业。目前在腾讯公司实习,主要负责一些移动端 H5 运营活动小页面的开发。现在手机QQ的手机版官网就是我参与制作的(可以用手机打开 http://im.qq.com 查看)。
2)什么时候认识前端,如何入门的?平时怎么学习的
我接触前端比较早。在我初中的时候, WHATWG(其实我已经忘记这个组织的名字了,是google找回来的)发表过一系列的web标准化教程,从0开始解释HTML是什么、css是什么、js怎么用,有点像今天Head First系列教程的感觉。那时候Opera公司在官网上提供了这个教程的中文的翻译,我就是跟着那个教程初步了解了前端的。可惜后来中文版下线了,再后来这个系列的教程我也找不回来了。
真正开始做项目也是大学以后了,和大部分前端初学者一样,最初也是从 w3school 里面学习 css 和 jQuery ,后来就是根据项目的需要用到什么学什么。渐渐得在大脑里形成一定体系之后,又去买了《js高程》回来看。应该是属于比较中规中矩的学习路线吧。到这里的时候其实已经有点沾沾自喜了,因为项目里遇到的困难几乎可以很快解决、遇上不会的 css 样式也能通过搜索引擎找到答案,再加上一直使用别人封装好的Bootstrap,几乎不会遇到什么问题,自己开始有点飘飘然。现在回头想想,只能用“井底之蛙”形容当年的自己。
直到后来在慕课网看了 D2 峰会的演讲,才发现现在的前端和我当年学习的已经大不一样了,各个公司都在讲自己的“工程化”方案、大家在用的也是以前从没听过的框架和工具,于是赶快恶补。由于我手里的项目大都是中小型项目,一个人课余时间一两个月就可以开发完成了,所以我给自己定下目标,每个项目都要比上一个项目多学点东西。从最原始的 jQuery+hash 实现简单的路由、到自己写 jQuery 插件、再到 Angular、gulp+sass、最近也在着手一个基于 React.js 的个人项目。
我是一个比较懒的人,累了就喜欢刷微博。后来觉得这样不行,就直接在微博上搜索“前端”,把那些我能找到的大公司的前端微博全部关注了一遍,看看他们都在研究些什么。这才慢慢接触到了最近吵得很火的 BFC 、ES6这些概念。后来也找到了早读课,所有公众号里面只有情封的早读课和钠盐的科技美学我是天天都看的,因为推送的文章质量都很高(不过钠盐现在不发语音了,所以只剩下早读课了)。
另外近几年来中文前端圈里面有很多大大小小的分享会,我能接触到的有D2峰会、iWeb峰会、CSS大会等等,当然个个地区还有自己的小分享会(好像情封大大也在厦门组织了分享会,以后有机会一定要去听听),像一些大型的分享会一般都会有人录像,这些分享会上的内容质量都特别高,非常适合找来学习。真的非常感谢这些活动的组织者,给国内前端圈搭建了这么多优质的交流平台!
3)在学习中遇到的困难,如何解决?包括技术问题
我在学习的过程中主要遇到了这么几个比较大的问题:
知识点零散 前端的知识点特别零散,很难找到一本书可以穿针引线,把所有的知识连接起来,这也让我慢慢理解了,为什么计子 winter 大大经常会总结一些脑图。其实跟着 winter 老师总结的脑图顺藤摸瓜,就能把前端的知识结构比较全面的过一遍。
学习新框架时,中文资料不全面 由于最近在学习React,发现中文资料是在是太少了,所以很多时候要硬着头皮去看英文。可以给浏览器装一个翻译的插件,慢慢看多了也就适应了。
容易沾沾自喜 前端总给人一种入门很简单的错觉,学习的过程中很容易自以为已经触及到天花板,没有什么好学得了。其实这是大错特错的,每当发现自己飘飘然的时候,一定要多想想,自己已经学会的知识是不是真正掌握了,还是说需要实现某个功能时才去搜索引擎查找,事后不再做总结了呢。关于这点,张鑫旭前辈有一篇关于“瓶颈”的文章很好的解释了这个问题。
而剩下的,关于具体技术问题(比如移动端的各种奇怪现象、怎么跨域、性能优化等等),只要你能很好的用语言描述出来,不论中文英文,网上总能找到答案的~
4)在实习面试过程中有需要注意点的吗?
网上有大量的面试题目、面经,我觉得只要你准备好了,面试的问题应该不会太大。这不是鼓励大家背面试题答案,正如百度FEX的面试题目所说,如果你能把面试题都准备好,实际上你的学习能力已经到了公司需要你掌握的地步了。另外,毕竟自己在前端项目中遇到的问题还是比较片面的,所以如果能找一些题目来做,也能扩宽自己的知识面。
再之后就是要认清楚自己的强项了,想想看你相比其他同学有哪些优势。如果你看过 jQuery 源码分析、试图理解过为什么 anguler 的性能一直被人诟病,都可以拿来说一说。
另外,讲一个面试的小技巧。一般体面的面试官都会在最后问一下你还有没有什么问题,这时候你可以稍微想一想,自己在这场面试里面的表现令人满意吗,如果觉得自己明明准备的很充分,但是整场面试下来都没有表现出来,你可以在这时候跟面试官多聊聊,我相信面试官也不愿意错杀任何一个适合他的同学~
5)在公司实习中,要注意哪些特质或注意点
单纯从实习的角度来说,我觉得只要拼命的学东西就好啦,毕竟还不知道最终能否在公司留下来,所以学到一点算一点。
另外我觉得在公司里,理解好自己的导师和leader要你做什么是很重要的。最近在参与一向新技术的预研工作,发现同事和leader对预研的期待是不同的。leader的角度来说,更希望看到的是这项技术能否投入到生产环境里,所以会看重性能、网络开销等等和现有技术的比较;而同事可能更看重这个技术具体的实现细节、如何编码等等。知道了大家想要了解的东西,就能更有针对性得进行研究了。
6)校招需要注意什么?
时间点很重要,不要错过投简历、笔试面试的时间;
找个基友一起喝酒聊天,正常来说校招肯定不会一帆风顺的,能有几个哥们一起吹吹水谈谈心,可以很好得释放压力。
7)我的书单
这一两年来看了不少前端开发方向的书。一些很经典的《javascript高级程序设计》、犀牛书等等在这里就不再介绍了,推荐几本对我帮助比较大但很少被提起的书籍好啦~
《web性能》
这是一本详细介绍web中可能遇到的性能问题的书。算是我计算机网络的启蒙教程,哈哈。作者并不仅仅提出了 web 中可能会引起性能问题的地方,还对每种性能瓶颈做了详尽的分析。起初阅读起来还是会有点痛苦,但是随着逐步的深入,你会发现自己学到的不仅仅是性能优化的结论、而是一整套的分析思路。当然,如果你完全没有计算机网络基础,书中的一些概念可能会给阅读带来一些障碍,不过对于计算机专业的学生来说,这些概念迟早都是要掌握的,提前预习一下也无妨。
《javascript异步编程》
这是师兄买的一本书,我借来翻过。js 最被人津津乐道的内容之一就是异步回调函数的编程方式了,在 js 的世界里,通通都是单线程,这甚至也成了 Node.js 出现的契机。但是这种方式也会带来一些问题,比如我们常常说的“回调地狱”。这本书就是用来告诉你,怎么样才能优雅地解决回调地狱的问题。不过由于篇幅有限,这本书对每一个解决方式都只解释了最精华的部分,因此看完之后还要自己继续学习。其中的 promise 模式绝对是重点中的重点。看完书后可以参考新浪微博 @寒冬winter @十年踪迹 在2015年4月10日左右发的微博,里面有他们关于“怎么用 promise 实现红绿灯”的争论(其中有大量干货代码,感谢几位前辈我们理解 promise )
《jQuery技术内幕》
阿里的高云前辈写的 jQuery 源码解析,这本书比网上的代码解析要讲的透彻很多,当然也是一本很难啃下来的书。
《你不知道的javascript》
原本看到标题和目录,觉得这本书好像也没啥,不就是把js里面的一些语言特性集中到一本书里面吗,我上网看看博客就行了。但是真正拿到书读下来,就会发现根本不是这样。这本书对每一个简单的知识点都做了非常详细的解释,而且配上了一些浅显易懂的插图。我感觉用来了解js的语言特性非常有帮助。
后语
最后的书单,是@chee是自己补充上去的,非常感谢@chee的支持!!虽然每个人的如何走上前端,如何学习的道路都不一样,但别人的经历,都值得参考。
最后非常再次感谢!!!
长按图片识别图中二维码