先说个人情况,现在大二,去年 9 月开始学习前端,到现在学了大概半年多。
作为一个不 nai 甘 bu 于 zhu 现 xing 状 zi 的人,总是想尝试各种花样作死,在知乎上看到了"暑期实习生"这个东西的存在后,开始了一波找暑期实习之旅。也快半个月过去了,聊聊这半个月发生的事吧。
前一天晚上看到于江水在微博说有内推名额,之前自己也在阿里自己投了一下,不过后来的自由发挥部分感觉有点烦,就没继续填。微博上问了下于江水要不要大二的,他表示可以试试,积累经验什么的。
于是扔了个简历过去,他表示把我推到了他们的团队也就是淘宝 FED 。(感谢于江水~)
晚上就收到了阿里的内部邮件,让我补全资料。
下午 3:49 接到了来北京的电话,也就是阿里一面,持续了 14 分钟 2 秒:
* 来段自我介绍:
巴拉巴拉(省略 N 字)
看过 jQuery 源码吗?
没有(之前看过有人说自己看过 jQ 源码,然后把自己拉到坑里了 23333333 )
JSONP 的原理?
只知道是用来解决跨域的,具体的没遇到过。但是我知道其他的几种常见的跨域方法,比如 HTTP 头中设定 CORS ,比如隐藏 iframe 。
(后来搜了下 JSONP 的原理,其实很简单,就是利用了script
中资源引用不受跨域的限制)
讲下 CSS 盒模型:
IE 和 Chrome 是两种不同实现,(面试官:你就讲下标准盒模型吧),长,宽,外边距,内边距,额……(面试官:还有什么?),边距。
讲下 JS 的闭包:
(开始和面试官扯司徒正美的那篇讲闭包的文章,然后面试官说没听懂 233333 ,让我简单点说)控制变量作用域, JS 在 ES6 之前没有块级作用域,是函数级作用域,闭包外面无法读取闭包内的变量,避免了全局变量污染。
讲下浏览器事件模型:
事件冒泡和事件捕获。(介绍懒得写了,自己查一下吧。然后还和面试官扯了一下事件代理。)
看你的项目经历里说到了前端性能优化,你讲下你做了些什么吧:
小图转 base64 , css/js 压缩合并,文件 hash 冗余等等。
你简历上还写了了解 vue.js ,你觉得 vue 和 react 有什么区别?
这个和 angular 一起来说吧, angular 是脏值检测, vue 是利用 ES5 的 getter 和 setter , react 是实现了一个虚拟 DOM 树, diff DOM 来检测修改真实 DOM 。
我的问题就是这么多了,你有什么问题吗?
请问你对我感觉怎么样?(面试官:我觉得还可以啊,知识点基本都掌握到位了,有些细节可能有点不了解。)
请问你是淘宝 FED 团队的吗?(面试官:嗯?嗯嗯,是的。)
一面就这样结束了,刷新了校招网站上的状态,很快变成了等待面试结果。然而二面来的异常的快:
下午 4:21 来自杭州的电话,我猜大概是二面,果然。二面持续了 22 分 30 秒:
* 来段自我介绍:
巴拉巴拉(省略 N 字)
我看了你的 GitHub ,你写过一个叫typing
的插件,你能介绍下这个插件吗?
这个插件是实现一个打字机效果的插件,之前看到了有依赖 jQ 的类似的插件,在 npm 官网主页的动画也是打字机动画,然而 npm 官网做了混淆,已经不知道是什么插件了(后来知道是叫malarkey
),
由于一开始我就没有使用 jQ ,我又不想为了一个动画引入一个依赖,于是就考虑自己动手写了一个无需依赖的。
(接下来问了些这个插件的 api 和实现细节,大概是想确定这个插件是我自己写的吧,这里就不罗嗦了,有兴趣请移步typing)。
你的项目经历里写了你做过前端性能优化,你是怎么做的呢?
(同一面。)
你说你了解异步加载,谈谈异步加载吧
AMD 和 CommonJS , CommonJS 更适合服务器吧, Node 做的挺好的, AMD 就是 requirejs 了。对了还有玉伯的 CMD 实现也就是 seajs ,不过已经很久没有维护了,玉伯也说了 seajs 已死。
(以前的项目用过吗?)
没有,考虑到团队成员前端开发能力不一,异步加载学习成本相对高一点。
(如果不考虑协作开发,你会用什么?)
requirejs 。
你还提到了 vue , vue 和 react 的区别?
(同一面)
如果有新的项目让做技术选型,你选什么框架?
移动端的话 vue 吧,毕竟 angular1 脏值检测性能很多场景下性能不是很好,桌面端的话无所谓了。
你对 CSS3 的新特性了解多少?
只了解一些常见的,比如transform
之类的。
你是怎么学习前端的?
看书,写 demo ,做项目,遇到问题 Google 和 Stack Overflow 解决。
你说你了解 Node ,你用 Node 做过什么?
其实 Node 和 Python 都了解一点,了解程度差不多,写过简单的爬虫,也写过简单的 Web 站点。
你愿意在杭州吗?
这个无所谓吧,愿意服从调剂。
你以后打算往哪个方向发展?
继续巩固前端知识,另外学习更多的以 Node 为主的后端开发的知识。
投同程是因为有个学姐在同程做前端,直接把简历让学姐给他们前端 leader 看了下,他们 leader 表示如果我愿意去同程肯定要,但是暑期两个月学不到什么,建议我大三结束直接去投大公司,
问我愿不愿意去大公司试试,然后把我的简历发给他以前的同事们(好人啊)。
这个公司是看了同程 leader 放出来的我的简历后找到我的,是一群从阿里辞职出来的员工创业的初创公司。
上午 10:20
一面(电话面试)持续了 26 分 3 秒。相比阿里不是那么严肃,更像是和面试官的一场瞎扯。
一开始是面试官介绍了他们公司,然后说了他们的技术栈( ES6/7+webpack+babel+Node ),还说他们不用考虑兼容性。
然后问我的问题基本已经超出了前端基础的范围了,对 ES6/7 的了解程度( promise,generator 等等),用 Node 做过什么,写不写测试,对 Linux 运维了解与否,做过日志吗等等。
个人感觉没什么参考的价值,这边也就不罗嗦一些细节了。
一开始面试官问我学了多久,我说去年 9 月开始的,他说现在的年轻人都这么厉害了吗(他 25 岁,然后接下来被他吊打 2333333 )。后来他还和我谈了学习等等一些生活方面的东西,感触还是颇丰的。
遗憾的是,上午九点多,面试官在微信上告诉我,技术方面他很愿意我去,但由于我只愿意实习两个月,公司不能接受这么短的实习周期:(
他还表示等我大四时希望能够考虑下他们公司。
坦诚的说,这个公司的技术栈还是很吸引我的,毕竟连前端都会玩 docker ,做运维,技术方面一定是个工程师文化很浓的公司。(貌似工程师文化这个词被某些公司滥用已经招人讨厌了?)
首先是基础一定要踏实,这个无异议。
然后就是博客和 GitHub 上有东西可以加很多分(关于这个 V2 上做的比我好的小伙伴应该一抓一大把吧==),诚心想要你的面试官一定会去仔细看你的博客还有 GitHub 的,作为本科生,倒不会去指望你的博客有什么牛逼的文章, GitHub 有什么牛逼的 Project (有就更好啦),
但是博客和 GitHub 能从某种程度看出你的能力,免去面试时的一些废话,还能看出你对社区的态度,是不是一个乐于分享的人;看出你的眼界,是不是一个喜欢画地为牢的人。
然后就是如果有内推,或者有大牛推荐,一定要抓紧这种机会,省去繁琐的笔试什么的环节,对大家都有好处。(再次感谢内推我的于江水还有推荐我的同程前端 leader !)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.