阿里巴巴前端实习面试一日游
上次说要整理笔试题的,结果都没来得及整理,就被通知去面试了。
我带了20块钱准备一来一回坐地铁,然后赶回去做下午的电工电子实验。。
结果一天面了3面,一直面到下午三点。
不过我确实准备了好多,不然真的这么好运气。。。我说运气,学长说,准备充分就是为了提升运气。
最后的交叉面是coolshell的陈皓大神面的,不过我在这次面试之前都不认识他。(虽然隐隐的察觉到了他boss般的气息,但是真的孤陋寡闻了。回来之后发现大家都知道coolshell。。)和陈老师聊了好久,技术的非技术的,都让我内心的热火重燃,深深的被他这种纯粹的精神折服了。我要是不总结下我这次面试我感觉真的损失太大。
早上7点半起床。吃早饭。九点坐地铁到了新街口,说好了九点五十面试的。走进酒店,因为挤电梯的人太多我直接忘了按楼层,坐到了7楼,尼玛我说算了,反正面试是5楼,走下去就是了。。。就在这时我发现尼玛这房子没楼梯啊!!!!然后默默的等着从二十楼慢慢下来的电梯,回到了5楼。。
来早了,一直在等候区等,这段时间真的紧张。右边都是东大的硕士,南大的学长,我一大二小码农真心是来见世面的。左顾右盼,前程无忧的mm过来放了阿里的宣传视频,看着看着我就入迷了,突然就有人叫到我了。。哈哈~一面开始了!
一直以为面试是两个人在小房间里面的。。。。。结果结果。。居然是一大把人在一个大厅里。。。。我坐下来,第一个想法就是记住我的面试官的名字or花名。结果我都不怎么敢直视他。。他也没直视我。一直在打字,估计是记录我的面试情况。最后我看到了我的简历,他给我的是B+评价,允许我进入下一轮。
入正题,一面都是基础。平时看到各种的题目都考到了,他从我的简历开始问,(小伙伴们简历一定要认真写,他们真的是看着简历问的。)估计是不知道我的实力到底如何,期初都是很简单的html css题。第一个是 一个段落,希望让关键字加粗变色,问我怎么处理。我说用<span>标签加class。。。立马我就改口,我说是<strong>标签。然后他问我,有木有其他方法,我说,可以style内嵌css,他说对,这也是方法。然后问我,还有没有了。。我一直在想更高端的方法,觉得自己孤陋寡闻了。。事后我想到了。尼玛很简单啊,直接写strong{color:red;}啊。。。然后他就跳过了。
接下来是javascript的基础题
纸上写的
var a={‘3’};
var b=a;
alert(a===b);
问我这个结果是啥。
我说是true。
这里的知识点还算少。他让我解释,我说引用类型,ab都指向同一个对象。直接o了~~其实这里的===有点小知识,==和===差别他可以考我,但是木有。。===不会做类型的强制转换。必须是一致的类型。
然后他让我写讲一下javascript去实现一个功能。。我用笔写的比较蛋疼。。他就跳过了。。我讲了一部分步骤。具体是啥我现在好像想不起来了。。
然后他问的题目都是常见的,问我了解不了解javascript的面向对象编程,问我css的优先级,我解释了一点点js的继承的知识,我也就知道这么多,我解释说,平时自己学习很少写到这样的代码,但是我的确去了解学习了。。。css优先级直接秒过。不会的其实可以不来了。。
这个时候他噼里啪啦的打字,根本不管我,我没办法从他那里得到我回答是否正确的反馈,这个真的很让人心虚啊。。然后他说,我再来考你个算法题吧。。然后我顿时吓尿了,我说我就做过一点点的acm题目。。不会考我很深的算法题吧。。他说不会。。然后写了一个数组让我冒泡。。
然后我就安心了。。把冒泡的过程写了一半他说行了,他举第一个步骤,问我,这个8冒泡到最后之后,会不会再有比较了。。。我又懵了。。平时用冒泡都是现成的函数。。。虽然知道怎么冒泡。。。但是。。诶诶。我觉得如果还会比较,完全没必要问我啊。我就说应该不会吧,哈哈,他嗯了下。答对了。。
小伙伴们不要眼高手低。。。。。总会有一个细节你忽视掉的成为你尴尬的导火索。
然后他问我,miyijia.com是我做的嘛、我说是的,他说都是你一个人写的?我说是的,前端设计模仿了一些网站,但是代码是我写的。。后端也是。
接着他就拿密议荚的ajax无刷新上传图片来问我。他说这是你写的把?我说是的,他让我解释过程。哈哈,自己写过就是爽。。噼里啪啦一下子解释完了。他立马问我,说,如果我改变父窗口的window.domain的话,你这个上传还能使用嘛?。。window.domain我记得是javascript跨域知识里使用的一种,用在同主域不同子域的跨域传输数据里。。需要把两个子域的window.domain改成他们的主域。才可以传输,他说改一个,那肯定没办法传输了。http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html关于跨域的知识大家可以看下。我说不可以。但是我是思考了一会儿说的。他点点头。嘿嘿。。知识要灵活运用。
然后他让我说几个跨域的知识。
我把上面的几种方法说了,漏了一个hash的方法。。flash我直接忽视了 (flash是什么?可以吃的嘛?好吃的嘛?)
接着下面2个javascript题目把我考到了。。理解不深入。木的办法啊
2个比较 setTimeout() 和setinterval()区别,还有apply和call的区别。。我想说,这2个比较我都是看过文章的。。
但是真的理解不深入。。。。。。让我说出来的时候哑口无言了。。
还得再深入的学啊。
最后他让我自己再说点前端知识,越多越好
。。诶诶我以为完了呢,还要我讲。。。。
我开始讲前端性能优化方面的事儿。。。。结果 我发现我把自己扔进了坑。。
我心中的优化是各个方面的,类似于雅虎35条的。。
他问我你平时写jquery的话,在写法上会有什么优化的方式。。这个这个这个。。我不会。。
然后我继续解释,比方说分子域名存储静态文件,尽量减少dns解析和http请求。他问我如何减少dns解析。。我又楞了。。难道不是少用点不同域名的东东么。。他怎么没问我http请求怎么减少,我可以告诉他css sprite之类的东东。。。
然后最后一个问题,我答出来了问我为什么要分子域存储静态文件,哈哈我解释了下,因为主域的http请求会带有很多的http头里的cookie。但是静态文件是没什么意义的。。所以白白浪费很多流量。。
然后他说,那今天就到这里吧,你到外面等一下。。。。。。
等一下。。。不是面完就行了么。听他们说都是今天一面,第二天二面的。。难道是让我等下,收拾好简历走人么。。。
坐了一会儿。前程无忧的mm来喊我了。。把我带到了另一个大厅。直接带我去一张大桌子上了。有一男一女在等我。。
哈哈,我进二面了不是吧。
好吧,我不作死了。我进二面了,我心里真的很激动。。
面前的mm让我坐下。我礼貌的说了下谢谢。
mm问我,哪里人呀,我说江苏南通,mm说,南通的话轻纺很发达。我说是的。他说你家是不是做这个的。。
我默默地说,我爸妈就是普通职员和工人。我妈妈就是某家纺车间里的。。
然后右边的可爱。。。我该叫他大叔呢还是哥哥(后来知道他是86年的)。他看了下我的简历,问我:“看了你简历,好像是前后端通吃的。。”
我说木有,是了解的比较多点。。
然后他看我的简历开始问(又是看简历。。。)
他说你这个瀑布流是怎么写的。
我开始噼里啪啦的解释,我这个时候有种非常自豪的感觉,自己写的东西就是不一样,印象深刻,甚至说细节处理的地方我都能记得清清楚楚。。
当我聊到我要做自适应处理浏览器resize事件的时候,他兴趣更浓了,问我是怎么处理的。
然后我说我用setTimeout处理的。
他让我手写下来,我写了
var r;
window.resize(function(){
clearseTtimeout(r);
r=setTimeout(function(){
//重排函数
},10);
});
他看完之后好像不是很理解,然后我解释了下。他感觉像接触到了新方法一样的。。难道这个方法很给力么?
然后他说,再给你做个题目吧。。
假设有一个div。然后里面有很多的标签
你点其中的一个,返回这个标签的序号。。
说道这里我就鸡冻了。。尼玛我最近才做的题目。。一个百度面试回来的学长给我做过。。我亲手写过代码。
这题目要考闭包相关的知识。然后我就立马手写起来了。拿起笔就发现不对,学长给我做的是ul下的li
这里是div下的任意标签,这个不难,childNodes。。我嘴上说着这个要用childnode获取子节点是不是。。然后那个哥哥说,是nodes。。。我说我有点不熟悉这些api。。他说没事没事没事~~你不记得问我,有我在。。。
然后我写起来了。
这个题目大家可以想想。代码我就不放了。要把事件侦听写在匿名函数的闭包里。。否则永远alert的都是最后一个数。。
然后这个面试官说:”childnodes“是获取包括文本节点在里面的。要怎么去除呢?
然后我说,判断下是不是文本节点,然后新建一个计数器就可以了~~~。。。
判断文本节点我不会。。。面试官说你直接写个括号。。。。好感动啊有木有!!!!
后来在匿名函数传值的时候漏了一个变量。这个哥哥让我在查查。。结果他再三提醒我才发现,得传两个参数,否则就没法获取当前的元素。。
写完之后他很满意的样子。。然后开始问一些其他的非技术问题。
比方说你的网站怎样,你对阿里巴巴的哪个产品最满意,你接触阿里巴巴多久了。。。。然后我都说了下。。聊得非常high。。。我感觉整个面试大厅其他人都好严肃,就我在和他们聊天。。还笑得很大声。。。
我说我很早就在淘宝买东西,当时初中的时候利用淘宝买家里买不到的mp3什么的,帮同学代购赚钱。。。他们都很感兴趣。。
最后轮到这个mm了。。mm是hr,我一进来就感觉到了。。她问我关于我的专业,问我学习的步骤,问我遇到多少困难,问我为啥大二想来实习。。。。
问我喜欢什么样的工作环境,问我人生职业规划。。。。我才大二。。。。。。我只是想来学习的。。。不过mm职责需要,我也很认真的回答了。他们都很认真的倾听了。。
接下来轮到我问了。其实我早就知道这个环节了,hr都会让我随便问三个问题。。(我回来有人问我,工资如何,话说我真没考虑。。暂时不缺钱。而且我是真的兴趣所向才去的。)。我问的第一个问题:你们会不会录取我,。哈哈我跟网上的学的。他们果断回答,我才不告诉你。。很调皮的语气。。
然后第二个问题,因为我以为今天就一面。。结果莫名其妙被带到这个地方来面试,这个算几面啊? 然后面试官说,我是二面技术面。
他们说应该不会有接下来的面试了。
然后我就放心了。。
最后一个问题我问了,我说你们为什么要加入阿里巴巴呀?当时是什么契机让你们加入的。。
他们分别介绍了。一个是朋友介绍,一个是机缘巧合。
接下来是重点了,他们刚说没面试了。就让我在外面等一下。。。。。
等了会儿,说让我去吃饭,下午一点半过来交叉面试。
。。
这是啥。木听说过。。
面试官前面一个面到1点半,我拿着仅剩的十块钱。。吃啥,新街口十块钱可以吃啥。。
果断去取钱了。。
吃饱喝足回去等。面试官刚面好,去吃饭了,和我打了招呼让我等会儿。
我又等了会儿就开始了。
这一下子面了一个多小时
里面聊了很多,从技术题目到非技术的。
他对我是大二 的非计算机专业的野路子很感兴趣。
我也深受启发和触动。
觉得不虚此行。
他不是做前端的,但是问了我几个题目,我都答不完全,还把我二面的题目又加了点问题(二面我直接把题目写简历背面了。。。。)
我简历写我用git,他让我解释git rebase。。。。我知道
写我用过bootstrap。。。他问我栅栏布局。。
我写了我熟悉ajax。。他就拿了异步编程题来问我。。。
差不多都跪了。。
他最后给我传达的信息是,要知其然,更要知其所以然,知道是什么不够,还得知道为什么和怎么去做。
最后还聊了其他的事儿。
让我摒弃百度,让我慢慢体会写代码的优雅。
让我更系统的去学习,希望我能走的更远。
受益匪浅。
细节就不聊了吧。
倒是上面提到的几个题目,我这几天查查资料,再认真的做下,总结下,看看书。
就这么多了