代室友分享工作面经

来源:互联网 发布:crm软件开发 编辑:程序博客网 时间:2024/04/23 17:34

代大牛室友分享,希望对学弟学妹们有帮助。njunewfish 版权所有。想存档的这里有pdf版:http://bbs.nju.edu.cn/file/D_Computer/njunewfish.pdf

最近看十大,看到很多关于公务员的讨论,有同学的迷惘和前辈的经验,甚是热闹。个人对这公务员方面不太了解,就来说说找IT工作的一些经验和教训,趁刚结束还记得,希望学弟学妹们看到能有点收获吧。先说下lz的情况,cs小硕,本科GPA5/150,获过一些小奖,研究生酱油了,名次跟本科是中心对称,做过一些小项目...先后面试过美味书签,阿里,谷歌和网易游戏等,一阵摸爬滚打后从了阿里。如果算上暑期的实习面试,那还有微软,百度和脸书。lz上大学之前对cs知之甚少,基本印象和大多数人理解的修电脑差不多。开始略感吃力,还好我蓝鲸大学偏重基础,依靠数学等底子没被实验课噼里啪啦敲完代码的大牛甩出几条街。这也告诉我们,开始落后不用太担心,亡羊补牢,犹未晚矣。再者要结合学科的特点,比如物理等基础学科要多做题,而像计算机就要多动手写代码调bug。这里建议本科同学在适当提高绩点的同时,多参加些竞赛,比如ACM/ICPC和数学建模,到找工作的时候会发现受用无穷。我不知道每天一把dota是否能成为大神,但每天切一道题(非水题)一定会成为"神",事实上后者很难做到,其中一个原因是到后来你会发现已经没有不水的题了:),推荐网站有usaco, poj和topcoder。lz没参加过正式比赛,只有poj200题程度的弱菜已经能应付国内绝大部分公司了,貌似现在系里开始重视,这点要跟交大学学,他们有自己的OJ并且持续有作业发布。假如在电脑面前的你已经虚度了本科,不要紧,还有研究生阶段可以把握,如果又像lz一样遇到好的导师能给学生自由发挥的空间,那找不到好工作就是你的不对了。但如果你连研究生都荒废了,好吧,最后我会传你"抱佛脚秘籍"。从目前的情况来看,本科出国读硕的那帮人基本是活的最爽的,对于无心学术的同学来说,从个人成长来看这应该是best practise。对于像lz这样当年完全无出国意识,后知后觉的人来说还有个途径就是直接应聘国外公司。lz在4月份就试着面了两家dream company(G和FB)的暑期实习,在没有充分准备的情况下果然败北,产生的直接后果是FB一年内不能再面,G后来面full time考虑到之前的面试情况再次悲剧。所以面试什么的一定要做好充分准备并且考虑后果,不要心急。另一方面要练好口语,这样才不会出现遇到阿三互相听不懂对方的情况...这两家的面试形式相似,国外的都差不多,一般每一面都是45分钟两道题,先是简单的self introduction,然后就开始编码,phone interview在类似google docs的在线文档上写代码,on site就在白纸上写,对正确性的要求较高,不但算法要最优,而且细节也逃不过面试官的法眼,全局构思好再下手,多处涂改会减少印象分。算法基本是dp, 搜索,贪心和hash,trie,heap等数据结构,不会有图论和计算几何。G家经历了4面,2道系统设计(cache和信息流)和6道算法题(dp, bfs, 二分),最后因为某一轮表现地不好还是挂了…当然除了这两家,还有一些startup会在www.interviewstreet.com上联合举行codesprint,lz参加了一次,收到Rocketfuel和PocketGems两家小公司的talk  invitation,无心恋战就没有面。其他像quora会在网站上公布challenges(http://www.quora.com/challenges),试着做了发给他们,收到回复说安排面试,但一直没有消息,貌似他们对学校比较看重(empolyee里很多standford, mit)。说了这些,大家不要觉得很难,lz就认识同学拿到offer的,只是我太菜了…其他如amazon,evernote,hulu也非常好,有兴趣的可以试试。接着说下实习,如果能去dream company实习那最好不过了,因为会有内部转正的机会,概率会比校招大一些。如果不能,那看个人选择了,去startup辛苦点,更能学习技术,去大公司相对轻松,能了解公司积淀的文化和知识,简历好看点,但通常接触不到核心。lz在微软上海实习了一段时间,面试跟上面那些外企差不多,不过能说中文舒服多了:),外企朝9晚5的生活挺滋润。大多数公司还是看重实习的,比如在面阿里时就看见面试官在实习旁画了一个圈。当然这些的前提是你论文憋得差不多并且像lz一样遇到开明的导师。也有人利用暑假这两个月练习写代码准备开学后的正式校招,如果你有毅力加上善于巩固总结,拿到G家的offer也很有可能。校招一般从9月中旬开始,一般都是笔试,技术面,hr面的流程,个别企业先hr面。基础知识(网络,数据库,算法,OS)准备好很重要,但不可避免的是很多公司的面试官会问他们工作领域相关的问题,比如美味书签问ios移动开发,阿里会偏分布式系统(hadoop)和数据库(sql, nosql),网易游戏问C++的原理,STL的知识,面试之前针对性地看些题目会大有裨益。美味书签lz是报着打怪升级的目的去的,最后拿到口头offer最后也没去,每次面试都能收获很多,无论是知识点还是心理方面。这也告诉我们找工作的事要早早准备,不然等自己到巅峰状态,招聘都结束了。另外面试官会看你是否真正喜欢自己将要从事的行业,问些vim,git等课本里没有的东西,更直接的是网易的hr面会问玩过哪些网易的游戏,由于lz已经被室友洗脑,认为游戏是靠浪费别人时间挣钱的行业,于是过了技术面就开始各种胡诌,最后也就没下文了。不过感觉网易游戏的题目难度比较大,对概率和算法的要求高。至于百度阿里,跟网上说的差不多,好玩的是阿里面到后面可能会让你当场玩一个puzzle游戏。腾讯今年招的少,基本没听说几个拿到offer。除笔试外,谷歌4-5轮技术,阿里2轮技术(后一轮包含hr),百度2轮技术+1轮hr,网易3轮技术+1轮hr。没有群面,基本都是1对1。lz亲身经历基本如上所述,下面推荐点资源,供平时积累和临时抱佛脚用http://ruby-china.org/  ruby论坛,喜欢ruby的简洁www.36kr.com 很多有意思的想法matrix67.com/blog, http://exp618.com,http://www.52nlp.cn  数学,算法理论http://coolshell.cn,  ruanyifeng.com/blog,http://blog.jobbole.com 技术泛读 http://rdc.taobao.com/blog/cs/,http://stblog.baidu-tech.com/  企业技术博客,实际问题下面是面试题,实践觉得,现场想出来 < 看过+假装思考http://blog.csdn.net/v_july_vhttp://zhedahht.blog.163.com/http://blog.csdn.net/fp_hzq/articlehttp://blog.acmicpc.info/http://careercup.com/     外企真题OJ,其中leetcode题量难度适中,lz做完收获很大,交大的OJ也适合做http://www.nocow.cn/index.php/USACO_Traininghttp://www.leetcode.com/onlinejudgehttp://acm.sjtu.edu.cn/OnlineJudgewww.interviewstreet.com/challenges/            题目质量高书推荐三本 《算法导论》,《GOF设计模式》,《Linux内核源代码分析》是目前读的觉得最好的书,但还没理解透彻。慢慢来,称霸华东五校,我蓝鲸大学就靠各位学弟学妹了,师兄只能帮你们到这了 :)

 

 

 

 

膜拜大神...要是早日看到这样的帖子,我也不至于落到如此田地...吊丝顺便韶两句,免得学弟学妹再走我的弯路...产业界的事(我特指新的框架,新的语言发展方向什么的)确实很有意思,但这是个无底洞,耗费精力极大。关键这一点在校招中非常吃亏,各大公司基本都是围着算法转,很少有你展示这些知识的余地。而且越是高端的公司倾向越严重,所以除非你有足够的把握可以轻松pass前面的算法官,别指望这些知识可以给你加很多分。我曾问过GOOG的面试官为啥不问问编程语言的理解和发展什么的,他们的回答是想让所有面试者都同等对待,不搞语言歧视...只有算法很公平...算法绝对不能重要更多(特别是你想进那些大神公司),在此强烈推荐topcoder平台,每天一题,妈妈再也不用担心你的学习...我就坚持了一两个月就转到语言那边去了,亏死...(另,coursera上最近又有算法课了,有兴趣的同学千万别错过..https://class.coursera.org/algo2-2012-001/class/index)最后,对编程语言和范式感兴趣的同学,推荐你们可以看看channel9上Stroustrup和Herb Suctter以及Scoot Myers的几个session,另外Anders的在build2011的演讲和一个E2E系列也非常有意思。不过看这些找不到好工作别怪我...

 

刷算法的确对面试很有帮助但是  算法只是编程的基础而已  地基打好了才能建高楼,但不是说我们要打一辈子地基啊= =如果你想在这个行业上走的更远的话  不要浪费太多时间在算法上面多尝试,多思考,才是真正应该做的国内的blog我订阅了matrix67和coolshell国外的主要是coding horrorbbs的话推荐reddit和hackernews顺便如果还很闲的话可以来我的blog看看http://evol128.is-programmer.com/

 

嗯。。。鉴于lz这类伪学霸(主要篮球打得太好)的分享,我表示我这种算法苦手也想给另辟蹊径的学弟学妹们写点东西。我相信很多人是对算法,acm等不感兴趣的,请注意,这问题不大,对于一个engineer来说,基本的数据结构的掌握和学习能力是要出类拔萃中(至少要有自信),当然英文必须要好(不好也请要有耐性学习和训练)。都想找好工作?我走的方向基本上是linux,是动手派,据我所知在业界,谁懂了linux中的一个小的子系统在(不用非得是mm那么复杂),半只脚就可以随便拿offer了(夸张了点),你要懂的是整个操作系统的轮廓构架(计算机组成原理这本书拜托你们多研究两遍吧),稍微火一点的子系统自然是最好的,比如虚拟化,io等。下面我说说这样的好处,总是被提倡要多关注业界的前沿,什么是前沿不禁也是个问题。好,我告诉你们,Linux就是服务器和嵌入式领域的一类前沿。(下面这个要看清楚)请注意,这里的懂并非是浅尝截止,是要懂代码,自己在查资料的基础上也要想个明白为什么要这么写,再强调一下,要明白为什么,弄明白一个为什么可以当成一个点,慢慢地以点带面你就进入了这个世界(这个过程可能很漫长,难易依人而定)。不懂当然可以问”老师”,除了大Google(基本上可以搞定了,overstack和lwn可以互补),系里面这个方向算是非主流,带网络的夏老师可以帮你,当然不是要你问他这个怎么学啊之类的没法回答的,要_具体问题_,让你真正卡在那里的_关键问题_,你会给他好评的。忘记说了,邮件列表也可以加入进行关注,但不建议问过于表面的问题(自己动手,丰衣足食)。对于补丁(patch的提交),plz think twice before you submit it to the list.不懂游戏规则的玩家是比较不受欢迎的,因为游戏规则已经在documents里写的很明确了。我时常会惋惜本科时候的时间,你们也许也会。

原创粉丝点击