转载自:http://www.cskaoyan.com/thread-210464-1-1.html
前言:by Pilgrim
嗯,大学一直倾向于课内,其实做了很多自己并不是真的喜欢以及不是非常有用的东西,有时候还是满羡慕那些不考虑成绩,只是学自己喜欢的东西的人...
嗯,但是很早开始,就不能回头了。现在手里的课题走到了试验阶段,如果效果好的话,就可以结束了。然后就是保研or other choise....
再然后,最理想的情况,就是大四去好实习啊,最喜欢的数据挖掘or大数据,大公司数据质量会好吧......
嗯,以上都是幻想。下面是转载的.....
前言:我们说,中国互联网有三雄,人称BAT:北京百度,杭州阿里,深圳腾讯。近几年来,对于我邮码农系毕业生来说,这仨一直是炙手可热。但对于2013届毕业生来说,阿里突然抛出的现象级的不分本硕双15待遇,毫无疑问地秒杀了国内其他互联网公司,甚至是高处不胜寒多年的Microsoft也难以望其项背。“阿里双15,家喻户晓”在2013届火了个彻彻底底,而我坚信对于马上要真刀真枪开始抢offer的2014届同学来说,独领风骚的阿里会更加炙手可热,因为我们知道2013届是阿里的小年,全国只招了150名码农,而2014届可就招的多了。《毕业生找工作》版块一位阿里的兄弟开了一个阿里问答帖,短时间内就顶到了25页,足以可见大家对阿里的满满热情。现在是5月份,阿里暑期实习生招聘正开展得红红火火,而纵观全版,却缺少一个详细分享阿里面经的帖子,显然,强烈的用户需求没有得到满足。今天我决定在《兼职实习信息》版块写下这个阿里面经帖,一方面是考虑到有这方面用户需求的2014届同学目前主要集中在《兼职实习信息》版块,另一方面我想说的是,暑期实习跟校招往往是打通的,差别并不是很大,若拿到了阿里暑期实习的offer,不出意外的话,基本就拿到了阿里校招offer。各位加油。
个人介绍:LZ是我邮计院小本一枚,码农,开发环境嗜好Mac OS X + oh-my-zsh + Vim + Git的组合,以及clang + gdb进行编译、调试,键盘流,快捷键党,尤其反感编程的时候用鼠标的编程习惯。编程语言方面熟悉c/c++/python/php,有代码洁癖,平时没事喜欢看点源码,常年混迹github,google group等等开源相关的社区。之前拿到过新浪、百度、腾讯offer, 最近有幸拿到了阿里补招offer,最终决定前往美丽的杭州阿里总部,在那里开启职业生涯的第一站。去年10月左右阿里正式校招时LZ投了简历后忘记填写网上测评了,结果连笔试通知都没收到,希望学弟学妹们首先能杜绝LZ这样的低级错误。后来LZ在百度郁郁寡欢地待了半年多,终于等到了阿里的补招,我知道这是2013届进入阿里的最后机会了,于是果断抢下阿里补招offer。这次补招面试一共有4轮,前前后后持续了1个多月。
一面:电面,预热。主要是个人基本信息、实习经历的确定,面试官对我在百度的经历非常感兴趣,于是花了大量的时间和我聊在百度做了哪些项目,有哪些具体收获等等。这次电面大概持续了半小时,没有问任何具体的技术问题,我感觉面试官的主要目的是核对信息,以及为之后的技术面试热身。
二面:电面,技术。上来寒暄两句后,面试官直截了当地来句:那我们这次技术面试正式开始吧。这位面试官同样对我在百度的经历非常感兴趣,一上来就让我自己说在百度实习遇到过的一个印象最深的技术问题。我那会儿正好碰上一个Memcached性能问题的项目,于是向他详细介绍了这个项目中Memcached表现出的性能问题,我们想到了哪些可替代性方案,我们最终如何定位到性能瓶颈在Memcached跨机房网络延迟上以及相应的解决方案,絮絮叨叨地和面试官讨论了大概20分钟。然后面试官说看我喜欢混github,问我git和svn的区别。于是我介绍了下git基于分布式管理的特点,每台机器都是一个本地代码仓库,离线状态下也能ci,以及git的内容存储使用的是SHA-1哈希算法,内容完整性更好等等。通过git,我们顺其自然地聊到了软件去中心化的分布式趋势,纵观hdfs, hive, hbase, git, memcached等优秀的软件,我们一致赞同软件去中心化是大势所趋。然后二面就结束了。
三面:现场面,技术。二面一个多星期后收到通知去现场三面。阿里北京在大望路那边,第一次去那边,选了个蛋疼的需要中转一次的公交车方案,没想到等了半天没等到第二辆公交车,眼看时间快不够了,果断打的,正好准时赶到。现在看来,临时改变方案花30块钱打的显然是划算的。。。去较远的地方面试一定要首选地铁,公交尤其是需要中转的公交方案不可控因素太多了,风险太大。一进面试房间,齐刷刷坐着3个壮汉。。。观察了一下,一个应该是刚毕业没多久的年轻码农,一个是貌似是开发小组长的30岁左右的精干码农,还有一个肯定是leader的头发花白的老码农。好家伙,车轮战阿,看这架势就知道今天这果断是场恶战,而且应该是决定性的。那会儿我正好看了点redis源码,于是决定这次以redis源码为话题中心。在夸赞了阿里对开源的贡献之大,表达了对大名鼎鼎的淘宝Tengine的仰慕之情之后,他们问我对github上哪些项目比较感兴趣,有没有深入研究过。我终于可以开始高高兴兴地和他们聊redis了。介绍了下redis相对于memcached的一些优势后,以redis的核心数据结构dict为话题,开始探讨一个好的dict应该怎样设计。纵观stl map实现复杂的rb-tree,stl hash_map设计粗糙的hash_table,redis中设计精巧的hash_table,redis中极其节约内存的高效ziplist, 不得不夸赞redis教科书般的数据结构设计。我们具体探讨了redis hash_table中一些优秀特性的实现:相对于stl hash_map简单hash算法,redis hash算法使用了大名鼎鼎的smhasher(https://code.google.com/p/smhasher )算法和基于djb实现的简单粗暴有效的33系数算法;redis考虑周到设计细腻的渐进式rehash方案等等。数据结构和算法这边聊完,进入网络编程环节,于是介绍了redis的事件驱动库ae,以及跟网络编程相关的select, poll, epoll, kqueue等知识。我们知道,redis并没有像memcached那样使用庞大的libevent事件库,而是自己封装了一套轻量级的事件库。由于我个人长期使用Mac OS X的开发环境,只能使用类似epoll的kqueue,于是就选择kqueue进行具体开发细节的探讨。纵观nginx, redis, memcached等开源项目,其实现在网络编程这块的设计都差不多,基本都是以epoll/kqueue为核心的事件驱动模型。由于我一直在夸赞redis的设计实在是太优秀了,接着就不可避免地抛出了一个问题:我们知道,世界上1%的人写出了99%的优秀软件,那么,什么才是优秀的软件?我记得《黑客与画家》中有这样一段话:在达芬奇的《女性肖像》中,你可以看到,他在少女的头后摆了一片树枝,他很仔细地画出了树枝上的每一片叶子。许多画家也许会觉得,那不过是放在背景里的衬托物,没有人会仔细看的,不妨简单处理一下就可以了。但是达芬奇不这么想,他对作品中每一部分的认真程度完全不取决于预料中会不会有人仔细看这个部分。同样的,优秀的软件也要求对美的*追求,如果你查看优秀软件的内部,就会发现那些预料中没人会看见的部分也是优美的。三面一共持续了40分钟,技术方面基本都在探讨redis一些突出模块的具体实现。非技术方面,聊了聊开源文化,unix哲学和黑客精神。此外他们还非常关心,为什么我要离开百度来阿里?这个问题的答案是显而易见的。三面结束。
四面:现场面,HR面。3面后一个星期通知去HR面。HR只关心一件事情,钱。虽然人人都知道阿里双15,但我作为一个小小的本科生,不敢托大,只开口要了10K。此外HR还问了为什么我要离开百度来阿里。
offer:四面后一个星期收到电话和邮件offer,阿里果然是不分本硕的双15。在通知offer的时候,阿里的HR让我感到非常温暖,她反复地说,感谢选择阿里!
总结:2014届的兄弟姐妹马上就要参与浩浩荡荡的秋招了,我一直认为,每年校招季来临时,作为应届生,抢offer是一件很严肃的事情,这个事情的本质是残忍的竞争。所以对待这个事情,在心态上,请尽快凶狠起来。说白了,就是干。若发生了心仪的offer被别人抢走了这种事情,一定要引起重视,不能让它就这么过去了,因为这种事情本应发生在竞争对手身上。在策略上,我向来不赞同突击《程序员面试宝典》、《编程之美》、《微软面试100题》等快餐书,原因很简单,竞争获胜的关键是差异化。 这种快餐书人人都能在短时间内掌握到差不多的水平,没法玩出自己的差异化。相比之下,去大企业如BAT参与真刀真枪的pv上亿的项目;利用业余时间研究如linux,nginx,redis,git,lua,python等优秀开源软件的源码;认真阅读《Unix编程艺术》,《黑客与画家》,《计算机程序构造和解释》,《Unix环境高级编程》等经典计算机书籍,才是扎扎实实的王道。
最后,祝2014届的兄弟姐妹们都能拿到心仪的offer。
谢谢大家,谢谢!