一个acmer的校招经历
Posted tomjobs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个acmer的校招经历相关的知识,希望对你有一定的参考价值。
关于博主
蒟蒻acmer,有过5个月的字节实习经历,拿到了微信、百度、字节、拼多多、迅雷、知乎、富途、虾皮…的offer
关于春招
春招比较浪了,寒假的时候一个大佬在群里说字节有个部门实习只面算法,然后确实除了算法什么都没答上来。比较印象深刻的是,我问三面面试官职业发展要学什么,他说先证明自己有学好一个东西的能力。面过后就躺平了。
关于实习
- 首先感谢mentor和ld,团队氛围也非常不错,字节不讲title还免费三餐,确实是我想象中的黄金天堂。实习最大的感受是将各种类型的知识给串起来了。实际项目中,数据量会很大,服务也会很多,不可避免的要考虑出错的情况,考虑上下游兼容,考虑服务未来的扩展,考虑大量请求下的并发问题,考虑多人维护下造成的shit code问题,考虑海量数据的存储问题,解决这些问题需要综合各种知识。当然,最深的感受不是技术方面,而是业务方面,很多时候技术方面的问题是确定的,重点在问题的解决上,行就行,不行就不行。而业务方面的问题是模糊的,重点在问题本身,需要经验和权衡,有时候问题根本就不是这个。如果半桶水来弄,结果一定是挖了许多坑给后面的人。我比较喜欢一句话:”人人都是产品经理“,技术业务都是要懂的。
- 经验的话,一般实习都会干很多杂活,实习太短那就纯打杂了,一不能转正,二也学不到什么东西。而实习太长的话有可能会错过秋招时机。部门里和我对接过的一个pm,工作非常认真,好像还拿过最佳新人还是啥,8月转正答辩的时候失败了,然后准备12月继续答辩,结果实习到11月,部门没hc了,非常难受。
- 实习一开始还是挺激动的,后来感觉越来越疲惫,每天都像期末考试前一天,最主要原因是自己能力问题,就像王小波说的,人的一切痛苦,本质上都是对自己无能的愤怒;如果每一个问题都能搞懂或许就不会有那么多烦恼了。所以实习的时候只要一有空我就去学更多的东西,甚至包括中午晚上吃饭,感觉比较有意思的是分布式和存储方面,不过越学发现自己越菜哈哈。
- 记得看过一个知乎问题是问为什么要来大厂实习,要来看shit code。回答是,实习不是为了学东西,是为了知道自己真正工作能接受什么,不能接受什么。实习最后我没有接受转正(转正成功了),虽然我还是不知道自己要什么,但我确实知道了我不想要什么。不过,其他地方就会不一样吗?
关于秋招
- 我是8月准备转正,9月回学校,回学校以后还复习了一个月的八股和项目,10月开始大量投简历,所以完美的错过了提前批和秋招黄金时机,8月投的只有百度和微信,用来试手,百度一面过了,然后约二三面,结果那个时间刚好我转正答辩,就约到下一天,结果没了,没了。。。直接正式批流程清空了。
- 9月份投了一个欢乐互娱。欢乐互娱面试官都是acmer,二面问项目很多技术细节答得很烂最后挂了,面试官说看你写的喜欢探究底层原理,怎么这都不会。事后反思确实底层原理太渣了,项目理解的不够深。百度的笔试估计很烂,一个月都没有约面(同实验室的都已经面完oc了)。整个9月的感觉就是焦虑,特别的焦虑,感觉自己就是无比的菜,感觉坏起来了。
- 10月份开头是国庆,我有种预感,或许这就是最后的机会,于是拿出了之前打acm的劲,疯狂的看书学项目。功夫不负有心人,国庆回来就被百度约面了,然后顺利的通过了三面,期间还有一个面试官发短信说对我面试感觉不错。之后陆续投了其他公司,也有了很多笔试和面试,日历里整个10月都是笔试面试,百度最后意向书了,最想去的腾讯也到了三面,面试基本都答上来了,似乎好起来了。
- 11、12月,手里的offer开了,不是特别理想,腾讯三面完泡了一周挂了,至今不知道挂的原因,其他的公司比如pdd、知乎之类都面完了,迟迟没有hr的消息…似乎又坏起来了。后来消沉了一阵子,感觉想通了,人生的意义不止一场秋招,我们还可以学习喜欢技术,还可以做出伟大的事业,正因为啥也没有,所以之后肯定会更好。然后放低期望安心搞自己的项目,随便看点书,也不求甚解,只因为喜欢。有意思的是期望高时候的结果都一般,放低期望后,反而结果更好了,以前感觉挂了的都越继续约面了,面试感觉答得不好结果也过了,腾讯给捞起来继续面了。
关于学习
- 基础知识: 这部分就按照一些经典的路线去学习的,主要还是看教材看具体面试问题来准备的。不过我相信校招一般也不会特意刁难,把基础打好,再在自己感兴趣的点深挖一下就好了。
- 项目: 博主主要语言是C++和Go,因此项目一个是web服务器,一个是用Go模仿开源框架(简历上就这么写的,学习型项目)造的一些轮子,RPC和Cache之类的。博主个人对存储和分布式稍微感兴趣,因此课余也在做mit824,还学习了leveldb和boltdb(boltdb代码很少,是学习数据库的很好例子)。几个项目还可以当做学校实训和毕设交差,一举多得。
- 算法: 因为有过一点点算法竞赛经历,所以算法没有刻意准备,但也没有松懈,毕竟面试是要求bug free的实现。所以业余时间也刷了几百道leetcode,记得之前打leetcode周赛还打到过11名,差点拿到了前10礼物。
经验教训
- 出来混都要还的: 高考不好好学,大学会还的。而春招的时候偷懒,秋招也会还的。寒假的时候感觉还是写算法题有意思,懒得去复习一些基础知识,而且靠算法还水到了实习,于是更加懒了。结果就是实习的时候基础不牢处处碰壁,只能靠着需求空余的时间一点一点补,而且秋招还得接着学。
- 注意时机: 实习越长越好,但是要有权衡,因为秋招越早投hc越充足,面试也会相对越简单。一般互联网暑假就开始了,金7银8铜9,菜如博主在10月才开始投,个中滋味自己体会。
- 打好基础: 很多时候看面经会有一些玄学的题目(这玩意金牌大佬没写过都不一定会),玄学的问题,但不管是校招还是长远的职业发展,起决定性因素的肯定都不是一些奇淫巧技,一定是基础的东西。之前打acm的时候就有种体会,在整体实力没有金牌的前提下,不太有必要弄一些算法分工,把各种基础算法都弄懂比钻研一些高级算法有用的多,高级的东西你在比赛里面想不到也没有用。
- 最后,我感觉很多东西是有运气成分,好坏不定,有的offer就差一点,有的offer不太理想,有的offer无法拒绝。不过我相信一句话:人生是动态平衡的,偶尔波动,但最后会趋于稳定,稳定值来源于你这个人本身,或者是命运,或者是实力,总之你要相信一些东西,你相信的东西决定了你是谁。所以,骚年,别太焦虑,命里有时终须有,命里无时莫强求。
校招碎碎念
前两天拿了去哪儿(Qunar)的offer,不打算接着找了,心累,结束我的校招生涯吧,写写这段时间的经历。
本科生一只,普通一本,非211/985学校,出了省就没人认那种,计算机专业,目前大四。找工作大概从大三下学期开始吧,那时候各大厂开始招实习,接着陆陆续续的有七八月份的内推,九、十月份的校招,一路面试过来,跪了一路。个人是做Java开发的,做过爬虫,做过Web,学过一点机器学习算法,然后就踏上了找工作的不归路。
找实习的时候内推了几个公司厂,不过不多,只面了阿里和美团。心酸的面试经历就从这里开始了。
阿里实习内推面,先是简历面,挂了。面试就随便问问简历,问问个人情况,看什么书,学习涉及到哪些领域啊之类的,人生中第一次面试,也不懂什么面试技巧,跟面试官瞎侃,然后简历面就挂了,不开心。后来还有一次校招内推面试,下面会提到。
然后是美团实习内推面,电话面,一面就挂了。面试官不错,加了微信,用的微信打过来聊的。问了Java源码,HashMap的实现,问题比较细,实现方式,还有插入的时候是插入到链表的哪个位置,扩容是在插入前还是插入后,加载因子什么作用,默认长度和加载因子是多少。然后问到如果重写compareTo()方法或实现Comparator接口要遵循什么,就是自反性对称性传递性一致性这些,主要是为了问Jdk中集合类的排序用什么方法。Jdk1.7的实现方案由归并排序改成TimSort了,如果被比较的类实现的比较器不能严格遵守自反性对称性传递性一致性这些原则,原来在jdk.6中运行正常的代码在升级到Jdk1.7中、后会出问题,所以说面试点主要在这里,估计是面试官踩过这坑。当然,这些东西,当时的我是一点都不知道的。又问到虚拟机调优,用到过什么工具,又问了一道算法题,对有序数组中找出和为给定值的两个数,比较简单。又问到用命令在linux中找出某文件中多行数据中重复次数排前几的数据。问到项目,爬虫的url去重问题,bloom filter原理,项目中的测试,等等,最后又聊了聊机器学习算法,MapReduce,PageRank算法,以及一些其他的,给了我一些建议,面试官很nice。
有了这两次面试经历之后,查缺补漏,哦,不对,应该算是女娲补天了,认真补了补各种知识,然而大厂的实习已经过去了。所以后来暑假七八月份只能去了海尔某部门实习做后台开发。这期间差不多就是各大厂的校招内推时间,又是一波内推。这段时间其实也蛮无奈的,各厂都内推了一遍,最后得到面试机会的只有阿里和网易。
先是阿里内推的面试,面完hr之后挂了,内推了简历两天后,上午正在公司写代码,接到了阿里的面试电话,没想会到这么快。面试官上来问我知道Dubbo框架么,然后问到Hadoop,又问到数据库的一些知识,问到了丢失修改的解决方案,悲观锁或者乐观锁,我数据库一直很弱,当时没答出来。然后又问到我的项目,还是bloom filter,还有一个web项目,遇到什么问题,或者说有什么比较有创意的想法blabla....接着问到缓存啊,反向代理啊,以及分布式环境中怎么保证同一个用户多次请求,每次都能访问到它的session,解决方案是用一个缓存服务器来专门存储session,或者是用反向代理根据客户端的ip把请求交给相同的服务器来处理。框架方面问到了Spring的FactoryBean和BeanFactory,还问了什么记不清了,时间久了,最后让我问问题,我就问他那个防止丢失修改用什么解决方案,他也没直说,一步一步提示我,最后还是我自己给出了版本号方式的乐观锁解决方案。
本来对一面是不抱什么希望的,结果晚上就接到阿里二面的电话,吓死了好吗,怎么会这么快!二面应该是总监级别的,面试的时候总是乐呵呵的,但是分析总结能力极强。面试问到的多是一些安全相关的,问到了项目,遇到过什么反爬虫策略,还聊到淘宝会根据用户的行为轨迹来判断是不是爬虫,问到网络的几层模型,http和https,怎么加密的,公钥从哪来,还有项目中怎么防止sql注入。中间有问到在倒计时抢购时怎样保证客户端与服务器时间同步做到所有客户端公平,主要是用到了NTP协议。大体就这么多吧,当时以为gg了,没想到过了一段时间竟然接到了hr面的预约。阿里的hr面真的不想多谈,传说中的闻味官,第一次面到hr面,面试的感觉真是....如鲠在喉,很不爽。妥妥的,最后挂了。校招笔试没过,阿里的校招个人页面,笔试面试的记录,列的满满的全是Rejected。
然后是网易的面试,跑杭州去面的,顺便再杭州玩了两天,止步二面。一面面试官挺好,问到java内存模型,运行时数据区,辣鸡回收,volatil关键字的可见性以及是否线程安全,并发包,concurrentHashMap原理,synchronized底层实现,Redis数据类型,Spring框架源码,BeanFactory,ApplicationContext,AOP原理,动态代理,Spring事务原理Mybatis中#和$的区别。还问到了一些架构问题和高并发问题,限量抢购时怎么保证不超卖,给出四种解决方案,分别是悲观锁、乐观锁、队列、分布式文件锁,怎样防止服务器雪崩现象,可以采用快速失败。一面过程中聊得很愉快,虽然有些东西没答出来,还是给了机会二面。
二面就不爽了,主要是因为面试官似乎不怎么爱聊,态度很冷淡。去找面试官的时候正巧还有个同学跑去问他为什么二面把他给挂了。面试内容其实还不如一面难,问题主要都是一面中问到过的一些问题,没聊多久就结束了。最后前台hr告诉说面试没过。在杭州又玩了一天半,回青岛继续做码农。
一直到九月份,都没有任何内推面试,其他公司简历都没过,只能校招了。
校招也是跪了一路,先是京东,笔试过了之后去北京面试,中秋前面完技术面,中秋过后回学校hr电面。面试过程一直很轻松愉快,问题也没有跑出以前面试被问到的范围,然后我就安心等通知了,等到10月中旬,终于等到了...拒信。老实讲对京东蛮无语的。
面过京东后又做了n多笔试,一周之后收到了百度的面试通知,又赶去北京面试。一天面完,三面技术面,没有hr面。一面Java面试官,先是让手撸个快排,撸完之后拿过几张纸,上面都是题,让我一个一个指着说答案,有linux下各种操作和权限的问题,还有java基础的一些东西,一不小心就踩了很多坑。接着问设计模式,问到责任链设计模式,设计模式的六大原则,开闭原则是什么,问到项目等等,还有一些根据项目拓展的设计题,答的并不好,结果一面就过了,等了一会二面,结果是个c艹面试官,然后就是各种智力题各种手写代码,手写socket通信,写sql,聊项目,答得也不算好,面试官给个面子让过了,有幸来到了三面。好吧,三面又是个c艹面试官,以为不谈基础,结果上来就让我写了个链表奇偶位置交换的算法,然后对着我的代码拿样例一行一行的测试,卧槽。接着是个在数据中找有两个只出现一次的数的算法,又问了两个智力题,聊了聊项目,谈谈个人规划,目前怎么做的,平时怎么学习,等等,然后就回去了。至今仍未给消息,想必已经妥妥挂掉了。
百度面完已经是九月末了,就回家了。正巧又接到北京好未来公司的面试预约,回到家视频面了两面,轻松拿到offer,不过薪资略低,12*14的薪资,再加上岗位跟我方向不对路,没打算去,但也没立刻回绝,算是拿到的第一个offer吧。
其后投简历一直投的是一些银行证券或者金融类的科技公司,因为个人以后想做机器学习偏金融方向。做了n多笔试题,结果还是杳无音信。期间也拿到了几个面试机会,魅族,YY,华数,不过因为时间关系或者薪资太低就没去。最后意料之外的接到了去哪儿的面试邀请,第二天就坐车去北京面了,去的时候信心满满,也顺利拿到了offer。
一面又是该死的c艹面试官,不过这次算是与c艹面试官聊得相当不错的一次了,问了道算法题,我说了思路,他貌似没太懂,就接着问了。问到设计模式,手写一个代理模式,什么是死锁,手写一个死锁例子,问到tcp,udp,握手挥手差错处理等一些老掉牙的问题,让我解释一下JVM的内存管理,辣鸡回收,运行时数据区,Java里面怎么解决的引用计数法中引用成环导致的内存泄漏,主要是因为Hotspot采用的是可达性分析算法,只要不可达,形成环也会也会被回收。问了一些项目的问题,最后就把我领到hr那里等二面了。
二面是个金融部门leader,先是问了一些机器学习的算法,又让我讲一下最熟悉的算法,就跟他简单聊了下推荐算法。问了下Object中有哪些方法,问了道算法题,然后是关于网络的问题,迅雷的浏览器在相同带宽下谁下载的快,为什么。我说迅雷下载的快,因为是P2P,面试官说不考虑P2P的话,其实是因为迅雷采用的多线程,而浏览器采用的是单线程下载,又让我解释一下为什么这样会下载的比较快。我说每个线程与服务器建立一条链接,而服务器对待每个连接都是平等的,所以迅雷多线程更快。然后他居然捏着下巴沉思夸道"平等"这个用的非常好,你是怎么想到这个词的呢?,我表示很无奈,不知道是不是这个拉高了面试的印象分。又问了些Java内存管理,运行时数据区,辣鸡回收,堆区的分区设计的原理。最后我问了他一堆问题,就让我去等着hr面了。
这时候已经基本算是拿到offer了,在去哪儿只要面到hr,基本都会现场发offer。等了会就到了hr面,聊的过程很愉快,hr很nice,不像阿里的hr,一趟面下来让人生厌。谈了谈各方面的东西,问了我期望薪资之后就直接把offer甩给我了,然后我问了不少问题了解公司情况,走的时候送了我一只小骆驼手办。
回去的路上想了想,薪资还可以接受,暂且决定去哪儿了,结束校招生涯。一路走来虽然面的公司不多,但是苦等不到面试机会也是难熬,面完之后等不到offer更是难熬,有段时间每天睡觉都睡不好,夜里做各种关于offer的梦,白天精神状态也是奇差。也许是因为学校和学历的原因,两三个月以来饱尝挫败,不过毕竟大学是自己考的,没考到一个好的大学只怪当初自己不努力,人总要为自己的行为买单,现在或以后。过两天回学校拿三方,我的校招生涯告一段落。新的生活开始了。
以上是关于一个acmer的校招经历的主要内容,如果未能解决你的问题,请参考以下文章