1个目标
强大的前端学习工作氛围,玉伯、李牧、高云、寒冬等等优秀的前端前辈一直是我追随的目标。每天唤醒你的应该是一个梦想而不是闹钟。
20篇博客
适当做点总结,写些博客,提高语言表达能力和相关知识点总结把握重点能力。
60x2页 B5手写笔记
数不清的草稿纸。对于作用域链和闭包等知识概念,画图,会比语言更利于记忆和在面试中表达你的思路。
18篇文档
摘抄或总结自网络,一个知识专题一个文档,方便反复查看反复记忆,其中涉及计算机网络、操作系统、HTML5、闭包等。
这段时间,不少同学获得了多家公司的offer,和他们相比,我只能算是一个小白。始终保持谦逊态度是我一直的追求。
回想寒假,同届的同学留在学校为项目奋斗到年前才回家,而我交完课程设计就早早回家了,原本以为能够认真好好复习,准备实习生春招。结果,呵呵,进度跟不上计划!二月初,每每想起同届的同学摩拳擦掌、认真储备春招的弹药,我内心一阵阵郁闷跌宕。寒假没有好好把握,只是简单地把《编程之美》《剑指offer》大概看了一遍,但总体效果不佳,映象并不深刻。
真正的学习开始在三月——第一份简历投递后。感谢廖老师,感谢师兄们,感谢实验室的小伙伴,感谢面试中认识的小战友。
这两个月的学习可以分为3个阶段:
等待阿里——面试腾讯——等待阿里
本随笔说说在这个过程中,我学习总结和根据实际情况作出的调整。
第一阶段,等待阿里
1,制作我的个人简历
http://www.cnblogs.com/0603ljx/p/4306861.html
补充:简历是个关键的东西,不仅决定是否通过简历审批,获取笔试面试资格,决定你面试过程质量;更重要的一点是,在面试过后,面试官也许要在你和竞争对手之间作对比,优秀的简历也许能够勾起面试官对面试这个过程更好的回忆。经过一些事情,思考过一些问题后,我更偏向于工整权威专业性比较强的简历(是否绚丽已经不是考虑重点),但是不能太过普通,又要自己的亮点,不能落入平常队伍中。
如何写出打动人的个人简历http://topview123.sinaapp.com/article.html?id=c05
平时开发的时候注意技术沉淀和积累。如何体现呢?你最好能够为面试官提供一些在线源码(例如github)或者一个博客。这些实质性的东西,胜过简历上的千言万语。
2,这段时间计划安排得比较紧凑。网上整理笔试面试题目,基本的css属性和布局,跨域,优化,seo,javascript的基本语法等。
这个过程基本可以总结为:
1)针对岗位要求针对性复习
2)网上搜罗面试笔试题目,尝试多种解决方案
不知不觉,摘录整理出一百页的doc,对前端基础有了基本的概念。这个过程个人感觉比较重要,像是一个全面扫盲的过程。(虽然说本人有一年前端开发经验,但是过去那段时间因为项目紧凑,基本没有时间整理复习细节,也就是说动手实践能力算不上厉害,基础技能不扎实)。基础技能不扎实,自己自信不起来,又怎么能让面试官相信你的能力呢。
这里要提一下岗位要求的重要性。腾讯网页重构岗位要求提及HTML5、CSS3、SEO、性能优化等知识点,阿里前端实习生岗位要求提及Ajax数据交互(前后台交互有几种方式)对于这几方面的学习,不能有所怠慢。
3,总结所做的项目,回忆细节
对于我这种学习成绩不突出,校内活动不丰富,没有什么大奖项的同学来说,当然主打项目经验。
项目中遇到的问题,怎样才能描述清楚,怎么解决,解决后又出现什么新的问题,想到更好的替代方案,替代方案的核心思想是什么。
有一个大概的流程,但是要注意要符合岗位要求,面试网页重构尽量讲些关于重构的问题,避免面试官质疑你对职位要求的理解。
第二阶段,面试腾讯
也许第一次印象都特别深刻,所以当时写了一篇博文来详细记录过程:http://www.cnblogs.com/0603ljx/p/4347958.html
1,非技术问题
内推结果不通过,回来总结,我感觉自己从一面就表现不理想,走到最后的部门主管面,晚上十点的面试,各种疲惫焦虑,面试时候表现不太自信。后来参加的校招,二面仅仅面试了非技术问题。回答得太普通了,于是就让人觉得你太平庸了。同样死在非技术问题上,看来很有必要好好总结这些问题:
1, 你是怎么学习的?
2, 你最近在看的书是什么?
3, 未来职业规划?
4, 你希望从公司(实习)中收获什么?
5, 你会继续从事编程(这一方向)吗?
6, 你有什么优点和缺点?
如果问题一,你提到你看书,看博客或者什么团队的,记得要交代清楚它们的名字和其中印象深刻的一点。
查询二面结果:“目前的岗位可能并不适合你”。当时的心情,可以用陈奕迅的一段歌词来形容:
“也许相恋这条路 挤迫的怀抱 不够让我高攀进内才摔倒 踏上分手这条路”~
每每听到这句歌词,内心都要啜泣好一阵子。后来我把查询的结果截图下来,作为手机锁屏背景,时刻鞭策自己,少玩手机多看书。
我知道你会忍不住往下看,那就看吧。负能量有时也是正能量。真实面对所做的事,如实面对自己的真心,这是迟早的。有过痛,才真正懂得乐。
2,补基础
前端面试工作问题(上):http://www.cnblogs.com/0603ljx/p/4326674.html
前端面试工作问题(下):http://www.cnblogs.com/0603ljx/p/4334228.html
CSS常见布局问题整理:http://www.cnblogs.com/0603ljx/p/4440449.html
纠正前端开发中容易出错知识点:http://www.cnblogs.com/0603ljx/p/4354656.html
浮动:http://www.cnblogs.com/0603ljx/p/4385773.html
基本视觉格式化:http://www.cnblogs.com/0603ljx/p/4384759.html
内边距、边框和外边距:http://www.cnblogs.com/0603ljx/p/4385762.html
结构与层叠:http://www.cnblogs.com/0603ljx/p/4383483.html
30个你“不可能全部会做”的javascript题目http://www.cnblogs.com/0603ljx/p/4458127.html
30个你“不可能全部会做”的javascript题目-答案解释http://www.cnblogs.com/0603ljx/p/4388172.html
HTML5 API
HTML5 Web Worker:http://www.cnblogs.com/0603ljx/p/4438821.html
HTML5 Storage API:http://www.cnblogs.com/0603ljx/p/4440601.html
HTML5 Geolocation API:http://www.cnblogs.com/0603ljx/p/4436388.html
HTML5 Communication API:http://www.cnblogs.com/0603ljx/p/4437735.html
HTML5 SSE 数据推送应用开发:http://www.cnblogs.com/0603ljx/p/4353903.html
数据结构与算法
javascript实现八大排序http://www.cnblogs.com/0603ljx/p/4379418.html
常见抽象数据类型https://github.com/floraLam/dailyLearn/tree/master/ADT
javascript实现数据结构题目https://github.com/floraLam/dailyLearn/tree/master/dataStructure(努力实现剩下三十题,日后逐一公布)
常见面试题 https://github.com/floraLam/dailyLearn/tree/master/interview
重新看了一遍的书
《HTML5程序设计》
《CSS权威指南》
《jQuery基础教程》
《Effective JavaScript》
《JavaScript数据结构与算法》
《剑指offer》
《编程之美》
额外补了一下计算机网络与操作系统
第三阶段,等待阿里
1,面试
小白我水平有限,别人半小时就能够解决的面试,我一面需要两个小时,二面需要一个半小时。
正如珑姐姐所说:一面是想知道你会什么,二面是想知道你不会什么。
一面更偏向于基础知识,面试官耐心聆听我们的话,争取每个问题都能有所补充,不断完善;二面这是针对我提交的资料,面试官“即兴”问问题,让我防不胜防,更能考出真实水平和思考能力。
平时开发和学习,对于任何问题保持一种谦逊而好奇的态度,思考深究其实现原理是很重要。这是我得到的最大心得,”谦逊好奇,思考深究原理“我努力追求实现。
(两轮的面试官都当面对我做了总结,想知道的同学点博文右下角”推荐“后,私信我,我私下告诉你。『奸笑』)
2,沙龙会议
面试当晚接到面试通过通知,第二天参加了圆桌沙龙会议,女主持介绍企业文化和实习生入职事项提醒,心中对阿里充满无限的向往。小白我的二面面试官为李牧(据说部分同学是winter寒冬面试的)。会议结束后,李牧回答了我们四位通过前端面试同学的疑问并且给我们耐心的建议。
李牧说,面试对你能力做出评价结果,实习是印证这个面试结果。下面还原一下他对我们的最后的建议和忠告:(未能100%还原,望见谅)
1,对于前端实习生,是要求所有能力保持在一条基准线上,你可以有某个方面特别擅长(他列举了模块引擎,jQuery源码等等方面),但是不能有太明显的跛脚缺陷。所有的能力保持在一条平稳知识水平上,能够确保基本的工作需求,这就需要你系统地复习知识点。《javascript高级程序设计》《javascript权威指南》选取一本,反复地看,遇到问题,也许网上或者身边人能够更快速给你提供答案,但是更好的学习方法是,回到这些书本上面,翻查相关的知识点。
2,课本知识不能丢下。数据结构,算法,编译原理等等知识,作为计算机基础知识是需要花心思去学习的。(这里作一个小插曲:杭州的同学4月份面试完,告诉我:面试官曾经问了他数据结构和操作系统的问题,最终他没能回答出来,面试官当场回绝“只能写网页的人只能算是码农,阿里是不需要这类人的”。尽管我和小伙伴的面试都没被问道数据结构等问题,但是你真的忍心丢下这些基础知识,让自己陷入进退两难的境况吗)
3,同样的技术,在不同的人手上将会有不同的呈现结果,要注重用户体验,让你的作品表现得更加流畅。作为一个前端人员,对待事物应该用一种较真的态度,极客,追求完美。
总结与补充
如何看待网上所提供的面经
备战后期,网上搜罗“阿里前端面试”,我获取不少别人所提供的面试题目。你可以采用同样方法,考察一下自己水平,但是千万别因此自乱阵脚。这些题目,相当一部分我也不会,初次看,容易妄自菲薄,“惨惨惨,我都不会这些题目,万一被问道怎么办”。其实!别忘了,你可以引导整个面试的流程,很多时候,你能够把面试官的关注点引导到你擅长的部分(换句话说,那些“有参考价值”的面试,很多都是那些厉害的同学把面试重点引导到他所擅长<模块化,框架源码,nodejs等等>。)这些问题很多不是公司要求实习生所要掌握的,表现你自信的一面,说出你懂的就已经足够了。
一颗强大的内心
接着上面的故事,万一面试过程中,真的被问到没有涉猎到的知识面,我有两种解决方案:
1)谦逊地告诉面试官,我没有涉及到这方面 的知识面,但是我可以跟你说说,我对这个问题结果的猜测。
2)自信地告诉面试官,我没有将这方面知识应用与实际的开发中,但是我知道,某某问题,使用(我所提供的方法)也许比你所提及到的那个知识点解决会更好,因为(你可以从项目性质,团队特征角度回答)。
关于腾讯网页重构岗位选择的思考
不少同学在腾讯网页重构和前端职位上做过思考。网页重构更偏向于用户体验和网页呈现,还原设计稿;腾讯前端偏向数据交互。从腾讯网页重构师口中得知,平时比较少些javascript。我的个人看法是,选择哪个公司的哪个职位,要认真考虑你对你的未来的想法,也就是职业规划。
我个人的情况是,较多的PC端项目开发经验,但是在移动端和网页重构方面几乎没有任何经验,平时更多编写javascript代码,对新知识嗅觉不足够,但是计算机网络、操作系统和数据结构等计算机基础知识算是没有完全丢下(不能说很扎实,但是对于常见问题还是能说一点的)。面对这种自身情况,投递腾讯的前端岗位被留下来的机率更大。但是,我希望日后能够从事更偏向于关于用户体验和交互设计方面的工作,果断选择网页重构。最后被那些丰富移动端网页重构经验,掌握各种新技术新概念的同学比下来了,也是心甘情愿的,因为我曾经努力过,为我的这个小小的职业想法争取过就算被刷下来,也是无憾了。
注意知识面的广度和深度
深度,很多前端知识点,不是说一两个月的突击复习就能完全掌握的。在平时开发过程中,不能只是单纯地追求进度,而忽略细节斟酌。
广度,实验室的小师弟,也许能够从实验室中得到比较多的PC端网页开发经验,但是别忘了,前端有一块重要而流行的领域——移动网页。如果可以,自己做点这方面的小作品,哪怕只是一个小玩意。虽然平时正式开发未能接触这些领域,但是你曾经努力争取过这方面的学习,这样不仅能够体现你的学习能力,还能够体现你对前端学习的热情。
最后,分享几位小伙伴的面试心得:
重阳同学(实验室小伙伴,同时得到了阿里巴巴和微信TST计划offer,安卓客户端方向)http://pan.baidu.com/s/1sjJUfNZ
彦明同学(实验室小伙伴,获得阿里巴巴offer,他的经历很励志)http://pan.baidu.com/s/1sjofZkD
jeff同学(腾讯面试中认识,他获得微信网页重构offer)http://devework.com/about-interview.html
齐霁同学(隔壁实验室的前端小伙伴,感谢他在这个月对我的鼓励和技术上的帮助,他懂很多,技术很牛逼)https://github.com/rchee