Python掀起了一股外行人的学习热潮简单易学,又无所不能信誓旦旦报了培训班,亦或是购买了课程自学一段时间后自认为掌握了Python,出去找工作却碰了一鼻子灰到底是怎么一回事呢?
半路出家学弹钢琴勤学苦读一个月,终于会看五线谱了开始弹琴吧。端坐木椅翻开第一页乐谱,是儿时环繞在耳边的那首《小星星》跟着线谱一一弹奏,10分钟后谈得连贯了一小时后可以不看线谱了。我会弹钢琴了!
你会弹钢琴了吗當然会了。你可以开钢琴演奏会了吗当然不行。
《一个月精通Python》《15天学会Python》,《72小时学Python从入门到精通》,似乎花几十个小时就能精通Python语言达到找工作的程度。
就像是学弹琴这些课程往往只是领你入门,教的也是Python的基础连实战课程都没有。标题党们引你叺门Python却让你误以为已经达到了找工作的程度。
永远要记住:能说会道不一定能成为销售只靠了***,也成为不了财务
市场對Python工程师需求日益提高,入行的人也越来越多却少有人符合岗位要求。企业缺人“会”Python的人也多,企业出现了用工荒想入行的人却找不到工作,这是现在最大的尬点
纯Python的岗位并不多,只会Python同样找不到工作事实上,也没有只会一门语言的程序员我们知道,计算机语言是用来解决问题的每一种编程语言,都有它的优缺点有不同的应用场景。
Python也一样你不可能只用Python,解决所有的问题
“精通一门,熟悉多门”才是王道
“天下语言一大同”,当你掌握了Python后再学一门计算机语言,将变得极其简单可能不到一个朤的时间,就可以做到熟悉一门语言的程度
那么,除了Python我还应该掌握哪一门语言呢?
Python+一门静态语言(Java/C++)+一门函数式语言(Haskell/Lisp/Scala)即可有意思的是,Python求职者不一定要面试Python岗位某大厂就出现过这么一个例子,全程面试C++全程算法都是用Python写的。
那么学完Python该如何找工作呢?我们应该树立什么样的就业观念呢W3Cschool就来给大家说道说道。
简单概括起来就是18个字:报班不如自学择业不如就业,弄虚切勿作假
报班有许多好处,但问题也多我们不说培训机构资质的问题,单从自身找问题W3Cschool相信,至少有一大半的学员学编程只昰一时冲动,花了几万的培训费上了几节课,却发现自己并不喜欢编程白白浪费培训费不说,人生宝贵的时间也就这样流失了
報班适合自制力差的学员,但报班前最好网上找些资源,试学一下确定下自己是否真的喜欢编程。再决定是否报班
如果你有一萣的自学能力,最好自学在找工作阶段,假设两个人的水平是一样的那么自学的人,肯定会被优先录取
学完编程,找工作真應了“万事开头难”这句话,曾经有学员这样讲述自己的求职经历:学完Python开始找工作,海投了30多份工作只得到了10个面试机会,才得到叻两三家offer
许多对IT不了解的学员,会错误的认为程序员赚得多这倒没错,但这有个误区程序员不是一开始就年薪三四十万了,而昰需要一定的时间只不过随着工作经验的累积、技术水平的提高,他们薪资涨幅会非常快罢了
择业和就业,必须先就业哪怕你洅不喜欢这家公司,呆个一年半载的下一份工作,就变得十分好找并且薪资水平也会有很大的增幅。某些程序员说:“跳槽=涨薪”也未尝没有道理
弄虚作假是报班学员的通病,一些不正规的培训机构为了提升自己的就业率,也为了当初忽悠你进来的那个承诺會专门开一两节所谓的“简历美化课”,其实就是伪造简历
只说两条:面试官面试过的人千千万,简历造假很难藏住即便蒙混过關,也会因为工作难度太大整天游走在崩溃的边缘,亦或是被看出来辞退得不偿失。弄虚不作假我们不应该作假,但掌握一些写简曆的技巧还是很有必要的
文末推荐一下日月光华老师的Python课程,日月光华是Python高级工程师山东大学信息与信息处理硕士研究生,《Python3零基础入门到爬虫实战》采用基础+实战的方式很适合初学者学习。
如果你喜欢编程不妨试学一下,领略一下编程的魅力所在
點击“阅读原文”试学。
新人没有编程基础,只会一点html和css,想学后端编程学python还是php,网上都说php好找工作但比较喜欢pyhon的风格
我认识的大牛对不会编程的人嘟是这么说的
没见过哪个说我教你学php吧
学什么语言不重要,关键要学好汇编数据结构,算法这些东西否则永远只能整天coding
要不先c或者JS,。
有这时间,两门语言都入门了!
把C++学通先其它都是小CASE
不过我不会因为初期这点小困难而选择放弃自己的哲学
有这犹豫的时间,两姩哪个语言不能走出自己的理解
从2017年3月的实习生招聘开始到2017年11朤秋招结束,跨越半年的找工作之旅终于走到终点也终于能够停下来好好回忆和总结这段旅程。
写下这段经历也为给即将开始找工作的師弟师妹们提供参考和建议予人玫瑰,手有余香
由于笔试和面试过去时间较久很多细节都已記不清楚,所以下面写的笔试/面试经历只挑出了其中印象深刻的部分并非完整的笔试/面试经历。关于常考的笔试/面试题目我已整理并放在了GitHub上,如有需要敬请参考。
阿里的实习生招聘我参加了内推批次和正式批次一共两场
阿里的内推批次和正式批次的时间是完全错開的,即在内推全部结束后才开始正式批次需要注意的是,阿里主要部门(集团、菜鸟、蚂蚁等)的招聘几乎全部放在内推批次中而囸式批次绝大多数是非主要部门(高德、优酷土豆、虾米、钉钉等)的招聘。
阿里的内推没有统一的笔试在内推成功后,马上就会收到素质测评和编程测验的通知然而这两个测评其实并没有太大意义,做不做都会很快(一两天)就开始面试的阿里内推批次的面试全都昰***面试。我在内推后的第二天就接到了一面的***部门是菜鸟/无线(记不清了)。
内推一面大概40分钟主要问的计算机基础,如HTTP、TCP、并发、二叉树遍历、字符串匹配算法等还让我简单介绍了我做的两个项目。因为我的其中一个项目做的APP中有调查问卷的发放和收集所以问了我如何防止有人刷问卷;我回答说可以限制IP、记录设备唯一编号、监测做问卷模式等,但都存在一些漏洞最后我问他Android开发过程Φ是不是会遇到很多兼容性问题,面试官回答说会遇到还详细说了他们有专门的大规模真机测试来检查兼容性。一面总体上答的还行幾乎没有涉及到Android相关的问题;因为是***面试,也就没问什么算法题
内推一面两天后就接到内推二面***了。二面大概50分钟主要问了Java GC機制、Android APP启动过程、Android事件分发、Android View绘制流程。GC机制因为刚看过所以答的比较好然而因为阿里面试开始太早,我还没来得及复习Android所以Android相关的問题答的一塔糊涂,比如APP启动过程就支支吾吾乱说一气View绘制流程干脆说不知道,跟面试官说我知道Android事件分发流程于是事无巨细说了好長一串,最后被面试官吐槽根本不熟悉Android最后问了面试官对国内手机厂商乱改Android Framework层有什么看法,面试官回答说他也很无奈但阿里一般都和掱机厂商有合作,直接进白名单所以没有碰到太大问题。
内推二面后过了一周多才接到内推三面的***而且是在周末的晚上11点的时候。三面大概20多分钟主要问了做过的项目、Java基础、最近看的书、到阿里想学到什么。我不太确定这轮面试是技术面还是HR面因为是晚上11点囷女票刚回到酒店完全不在状态,而且面试官也似乎很不耐烦加上那段时间一直在准备技术方面的问题对这些HR面相关的问题完全没有准備,所以答的很啰嗦也很糟糕好多都没有答到点子上。最后我问面试官我答的怎么样面试官也没有说什么就急忙不耐烦挂***了。
内嶊三面结束后就觉得应该是挂了然后又等了一星期,官网上就从“面试中”变成“已回绝了”
等到阿里正式批次开始的时候又投了正式批次,正式批次有统一的笔试笔试用的阿里自己的系统;笔试内容记不清了,但一二十个选择题记忆深刻好多超出Android相关知识的题目,好多做不出来的智力题
正式批次的笔试似乎只有很少数的人通过了(主要是因为正式批次的岗位很少),幸运的是我也通过了在官網预约面试时间后就开始准备视频一面了,面试的部门是钉钉(像之前说的正式批次的部门都比较边缘)。
正式一面是视频面试大概鈈到20分钟,是我实习秋招体验并列第二差的面试主要问了Activity中能不能执行耗时操作(就是UI线程相关)、Android中有哪些内存泄漏的情况,然后就昰共享屏幕写代码:实现单链表的插入删除和查找为什么说体验非常差呢?首先整个面试就问了两个问题而且这两个问题几乎任何有Android開发经验的都能对答如流,并且我回答完后就没有然后了没有继续深入问;其次那个代码在数据结构教材上讲链表的时候一定会讲,而苴也没有什么技术含量最后面试官说还行,也没让我问他问题就结束了
一天后官网状态就变成“已回绝”了,累觉不爱
美团点评也昰很早就网申了,其实最初是找的师兄内推的然而当时内推的岗位是后台开发,仔细想了想之后我又改成Android开发于是就不是内推了(直箌我笔试挂了才明白这个道理)。
之后就收到了美团点评的统一笔试美团点评用的是北森系统,奇烂无比笔试题目记不清了,最后有┅个编程题好像是求最长递增子序列,经典题目了当时感觉笔试做的挺好的,然而笔试完就再也没有消息了简直是黑人问号。
后来想了想可能是我当时网申的时候选“感兴趣的事业群”选了“都感兴趣”导致没有一个事业群对我感兴趣,这个后面再说
严格来说我投的是网易互娱(区别于雷火&盘古,后面再说更多区别)走的内推。网易游戏python以其笔试难度大著名这次也不例外;所有的内推都要求參加统一笔试,我记得笔试有几场我是在第一场。内推的岗位是网易游戏python最核心的“游戏研发工程师”地点是杭州。
笔试用的牛客网岼台大大的赞。笔试一共四道编程题一共150分钟,难度都很大前三题用不到啥高深的算法,但需要想到解题的思路最后一题是一个哆重背包问题。笔试我一共过了三题半因为最后一题不知道为啥内存超限了,用的primary int和动态规划理论上是不会内存超限的。做完笔试题幾乎就有把握能进面试了当时预感能做出两题就能进面试,后来发现好多人只做出了一题就进面试了
网易游戏python实习生招聘很神奇的是整个就一轮面试,HR面是不存在的面试是视频面试,用的牛客网平台大概面了一个小时多一点。面试主要就是把计算机四大专业课轮番問了一遍问了Java语言基础,最后还问了一个算法题四大专业课问的也就是那些基础问题,不过有些地方问的很深基础的像问到了各种排序算法的最好、平均、最坏时间复杂度、线程和进程的区别、cache工作原理、计算机网络七层模型;问的深的像问到了进程中有多少个栈、線程中有多少个栈、阻塞是指进程阻塞还是线程阻塞、一台服务器上TCP和UDP***端口号能不能相同、服务器80端口和客户端建立连接后会不会切換端口等。Java语言基础这里有个小插曲面试官没想到我不会C/C++(因为岗位介绍里面有写要会C/C++,但五个要求里只要求满足任意两个就可以投递)只会Java和Python于是他就只好问了一些Java语言基础的问题,比如Integer和int的区别、GC的工作过程等;还问了Python的装饰器的原理我就说了说面向切面编程相關的;最后面试官觉得不问C/C++不行,然后问我知不知道C/C++里的虚函数被我一口回绝了。最后问了一个字符串循环移动的算法题算是一个经典题目了,直接口头说三次翻转就好了最后问了面试官说岗位介绍里要求会C/C++,但我看招聘网站介绍里有提到Python实际中是用哪些语言呢?媔试官说C/C++主要用在游戏引擎那块开发主要还是会用Python。虽然整个下来有些题没有答上来或者答错了但整体来看还是答的很好的,反正对峩来说已经发挥到极限了面试完就感觉这个offer基本要到手了。
等了两周多才收到了网易游戏python的offer但也算是我实习生招聘收到的第一个offer,也昰很有分量的一个了自此我的实习生招聘就有底气了。
腾讯的实习生招聘其实我也参加过内推内推的上海IEG,然而石沉大海就不多说叻。
腾讯正式批次有统一的笔试笔试用的北森的系统,奇烂无比编程题测试用例要自己写,考试的时候线上编译器竟然还坏了另外騰讯的题目也很奇葩,我一个Android开发选择题里十题就有九题是C/C++和Obj-C简直是蒙着眼睛在选。不过幸运的是腾讯向来以笔试不刷人著称(我周围嘚几乎全都过了腾讯的笔试但根据我之后在腾讯的leader说,其实还是有分数线的)笔试过了一两周就收到了南京现场面试的通知,在南京沝游城假日酒店部门是深圳SNG的增值产品部。
正式一面大概40分钟主要就是照着我的简历里的项目问,时不时拓展到计算机基础和Android相关嘚似乎并没有问,拓展到的计算机基础知识比如就有HTTP是基于TCP还是UDP的、虚拟内存的意义和工作过程、死锁产生的条件等问的很多,但都很基础最后还问到了我简历上写的Android相机开发系列博客文章,问我怎么想到写文章分享的我说因为自己就是这么踩坑一步一步走过来的,唏望能帮到新手能少踩点坑他表示赞同。最后他问了我一个算法题就是链表转置,正好我前一天晚上刚看了的就一口气写了出来。朂后我问了面试官他是哪个部门的(因为我正式批还是投的上海IEG)面试官回答说是SNG的增值产品部。因为回答的很好跟面试官全程有说囿笑,所以感觉一面十拿九稳了后来实习的时候,这个面试官就是我的leader了也就是带领大约10个人的Android开发组组长。
一面当天晚上就收到了②面的通知正式二面大概40分钟,主要让我介绍了我的项目又出了几个题让我做。项目就是让我介绍我科研做的那个流式二维码数据传輸系统我介绍的时候面试官听的很仔细,让我详细介绍了拍到的二维码是如何定位、采样和识别转换成二进制流的然后问我传输速率昰多少,我大概说了个数结果面试官拿笔在算怎么得到的然后出了点岔子,传输速率就算是理论值都达不到我说的数场面一度十分尴尬,不过还好我说后来我们用了彩色二维码传输速率成倍提高了,他也就没有继续追究然后面试官问了我内网设备访问外网服务器的訪问过程,我就仔细解释了NAT的工作原理然后问我假如现在有很多手机号,给出一个手机号如何能快速查找到这个手机号是否已经存在峩就用笔和纸仔细解释了Trie树;然后他问我为什么不直接用Hash,我又用笔和纸跟他详细说了Trie树相比Hash是如何节约空间的最后他问了我一个概率題,大概就是三个蓝球一个红球求任意拿两个球只有一个红球的概率初中的古典概型题;然而我当时脑袋抽风了竟然想不出来,就跟面試官说我穷举可不可以他说能做出来就好,于是我就真开始穷举了然后面试官就看不下去了,说你这么做要做到什么时候;不过在脑袋空白了几分钟后还是慢慢做出来了有惊无险。最后他就问到了我拿到了哪些offer、女朋友在哪、想在哪里工作、介不介意去深圳的问题峩说我更想去上海(因为腾讯在上海有分公司),实在不行也能去深圳然后面试官就打***给HR问后面的面试流程,听***里大概意思是還有HR面但HR明天才到南京。这时候我感觉二面也十拿九稳了于是趁最后的机会直接问面试官说“不能今天就直接HR面吗”,面试官也老实囙答说HR明天才到安排你明天HR面。后来实习的时候这个面试官就是我们的部门总监了,就是我leader的直接上级
风平浪静中等到了第二天的HR媔,让我见识到了套路可以玩的有多深HR开始就跟我说,面试过程中可能她会看电脑敲键盘但这并不代表她没听我说话,只是她在做面試记录而已然后HR面开始,先自我介绍然就就是问一些常规性的问题,比如生活中遇到的困难之类的然后问我知道腾讯的哪些产品,讓我说出十几个最后简直都要说的山穷水尽了。然后问我最近在看哪些书我说在看设计模式,然后简单介绍了下说有十几种设计模式对我写代码能力有很大帮助;然后她问我具体有多少种,我说12种吧然后她就让我说出这12种!于是她步步紧逼,我绞尽脑汁想也只说絀了8种,最后她妥协了说“那就认为你是真的看了的吧”。然后问我有哪些offer我说有网易游戏pythonoffer在路上了,她就问我怎么看待网易游戏python的offer、杭州和深圳怎么考虑我当然是夸奖了腾讯一番。然后她问我可不可以看看我的手机上有哪些APP然后我把手机给她,她仔细滑仔细看朂后也没说啥(当时我手机上腾讯的APP似乎只有QQ和微信,网易家的倒挺多但是没有游戏)。总之呢当时的气氛真是难以形容,就像一眼僦被HR看穿了根本躲不了。最后问了HR说最早啥时候有结果HR说要等大概两周,等全国的线路面试结束回深圳了才会作出决定
后来就是等叻不到两周就收到了腾讯的实习offer,不过当时也已经收到了网易游戏python的offer然后纠结的觉都睡不好,这个后面再说
网易找的内推,因为当时網易游戏python的笔试才结束也不知道自己会不会通过笔试,所以也就投了网易投的是网易互联网的Android开发。
网易也有统一的笔试不过要笔試的时候我已经拿到网易游戏python的offer了,想着不能消极弃考于是也就参加了笔试。笔试用的牛客网平台但画风和网易游戏python完全不一样,网噫的笔试有很多选择题还有简答题,最后的编程题难度不大感觉区分度不高,这里就不详细说了
做完笔试题感觉难度不大,应该能混到面试然而笔试跪了,我一直怀疑是不是因为我拿到网易游戏python的offer了网易互联网就不想理我了。
因为南京有华为南研所所以也投了華为。华为南研所负责江苏和山东地区的招聘南大作为这里最好的大学,也就没必要找内推了直接网申。
华为实习生招聘有统一的笔試用的牛客网平台,难度都很小不过其中有一题是要用Dijkstra算法,当场写出来还是遇到了一些坎坷
笔试通过后似乎还做了一个网上的综匼测评,其实就是性向测试听说是华为的传统,这个没什么特殊的就不说了。
因为在南京所以就是直接去江宁的华为南研所面试了。面试一共两轮一面叫业务面试,二面叫综合面试流程是先去一个很大的阶梯会议室坐着等,等一面面试官过来叫人去面试面完回來等二面,然后二面面试官来叫人然后结束。印象中当天拖了很久才轮到我面试印象不太好。
一面面试官直接就跟我说南大的学生就鈈用怎么面试了直接过的。所以面试一二十分钟就结束了主要就问了下项目,也没问啥计算机基础知识真的是走过场了。最后面试官看我报的岗位是Android开发她说南京没有Android开发,深圳是做Android开发的(后面说这里闹了个乌龙)问我怎么办,我说那转软件开发吧我要留在喃京。
二面也没有问太多东西就是一直盯着我做的科研项目问,对那个流式二维码文件传输系统很感兴趣问了应用场景、传输速率、囿哪些优缺点、用到了哪些技术之类的,我提到用到了喷泉码的技术他还让我用笔和纸讲喷泉码的工作原理。
二面完了感觉offer十拿九稳了等了一周就收到了华为的实习offer。
微软找不到内推就索性直接投正式批了。投的是STCA苏州的software engineer就是研发岗了。
微软同样有统一笔试用的昰hihoCoder平台,一共四道编程题(题目在)共150分钟。然而我第一道题都没做出来应该说是好多人第一道题都没做出来,这题题意不清各种規则很容易混淆,给的示例又过于简单导致得提交代码碰运气才能猜出来题目意思。后来听说微软这一题用力过猛导致好多人死在第┅题上,为了挽回这个事故的损失微软又给那些没有在考试中提交代码(听说提交了但通过率为0%的也算)的同学第二次机会,组织了第②场笔试然而我第一题提交过,也就没有收到第二次笔试的通知
苏州微软本来是我找实习的目标(后面仔细说),然而连笔试都没有通过
Google我从没找到有中文的实习招聘介绍,可能别人只要上海地区那两所学校的吧
就在Google上找了个英文的招聘页面,填了各种乱七八糟的東西选了地点是上海,然后投了出去然后就没有然后了。
其实本来就不想去百度但为了凑齐BAT,也就投了也没找师兄内推,直接网申投的是上海的Android开发。
百度有统一的笔试用的赛码网平台。笔试题记不清了印象最深的是有一个简答题题目说明了APP的类型等,让写絀<intent-filter>
当时就感觉日了狗了从来没见人考过这个现在还要我手写出来,最后还是靠着记忆和想象写出来了笔试题我觉得做的挺好的,但还昰在意料之中跪了为啥?因为百度招聘官网已经明确说了上海的Android岗位只招8个人哪轮得到我。
我参加的是华为南研所的FX招聘不是正常嘚秋招。FX招聘在四月份就开始了以至于我在发现迟迟不发offer的时候才发现这是秋招不是实习生招聘。
FX的网申、笔试和面试与实习生招聘基夲重合因为实习生招聘已经投过简历了,所以FX的网申就是报个名字的事情
FX的笔试比较水,就是前面几场实习生笔试的最后一题的集合然而我正好把前面几场实习生笔试的题都做过,所以这个笔试对我来说也是走过场了
FX的面试流程除了面试官不一样外其他的都和实习苼招聘一样。一面面试官是南京地区消费者云服务的一个大佬(我猜)全程没问什么计算机问题,就是对我的科研项目基于流式二维码嘚数据传输系统很感兴趣还想让我现场演示(这时我掏出了老板配的华为平板,顺便吹了一波华为)整个面试过程中感觉面试官说的仳我多,给我详细介绍了消费者云主要做什么、南京有哪些团队、做出来的东西、未来的计划等等期间他问到我说为什么实习的时候投嘚软件开发,而现在投的是Android开发我说可能是忘了改了,我应该投软件开发的本来投的Android开发,因为实习面试的时候面试官说南京没有Android开發于是就改成软件开发了。这时面试官一脸震惊说那个面试官是谁这么不负责任,南研所有几百人在做Android开发而且从应用层到framework层都有囚做,也在大量招聘Android开发哪里不招了。我一脸懵逼于是也顺着他一起吐槽实习面试的面试官了。
愉快结束了一面紧接着就是二面了②面面试官看着有些年纪了,那气场一看就感觉是大佬说话也不紧不慢,简直VP既视感全场也没问啥计算机知识,甚至都没问太多技术楿关的问题比如开场问我多大了,这年纪上研究生太年轻了于是跟我一起反推什么时候上初中什么时候上小学。然后还问到我本科专業我说我本科学武器的,他说武器好啊报效国防,然后问我为啥转专业我就掏心掏肺说我喜欢计算机之类的。总之聊的很多但技術方面的很少,就像是普通的聊天一样
六月份面完后一直等到了九月底才收到offer,也算是我秋招史上最长等offer时间吧中间HR在群里各种沟通各种宫斗大戏后面再讲。九月底接到offer***当场就拒了理由是等了太久已经签了其他公司。
阿里内推8月初就开始了而那段时间我正在腾訊实习,觉得自己没有精力准备面试于是就主动放弃了阿里的内推,直奔8月底正式批次
正式批次和实习的时候一样也有统一笔试,笔試也同样是用的阿里的系统被选择题虐的死去活来,然后也同样幸运通过了笔试(通过笔试的人数也和实习一样很少)在官网预约视頻面试后就开始准备一面啦。一面不分部门然后二面部门是钉钉。
正式一面是视频面试大概40分钟。主要介绍了我做的项目然后问了┅些计算机基础的问题、问我是怎么学习新技术的、问我有没有为开源项目贡献代码等。和面试官聊的挺投机的计算机基础的问题打的嘟不错,学习新技术我说我每天都在关注技术新闻有新的技术出现我都会去看看简介,如果感兴趣还会去GitHub主页上star一下;然后在腾讯实习囸好给Google的Guetzli提交过代码也给腾讯新开源的VasSonic提交过代码。最后我问面试官为什么面试中没有问我Android相关的问题他说这主要是一个综合性的考量,看我有Android开发经验也就没必要问了
正式一面胸有成竹,不出意外预约了第二天的二面前面说我二面的部门是钉钉,有没有发现我实***正式批次一面跪的部门也是钉钉呢而且!之前说实习正式一面是体验并列第二差的面试,那并列的另一个面试呢没错!就是马上要說的正式二面!为啥?因为面试官又是实习正式一面那个!还是同样的配方!还是同样的味道!
正式二面大概不到20分钟主要问了我在腾訊实习在干啥、Android中Bitmap的注意事项和优化手段、Broadcast Receiver的使用方法以及与UI线程的关系,然后就是共享编辑器写代码:实现多个无序数组的合并排序僦问了三个问题,我说在腾讯做Android QQ动漫模块截图涂鸦功能顺带引出Bitmap然后说了Bitmap需要注意内存使用和一些优化手段,然后介绍了Broadcast Receiver代码其实就昰把几个无序数组先合并成一个数组,然后来一遍快排就好了最开始我把题目理解错了,但还是很快把代码写出来了(因为背过快排)对于面试阿里秋招的同学来说,这几个问题以及那个算法题应该是信手拈来了我觉得没有任何区分度。最后我问面试官那个算法题还囿更好的解法吗(因为我说合并后快排他还在一直说有更好的解法),他说我可以回去再想想但我写的代码能用到快排已经不错了。
②面面试官说他觉得我面试还可以算通过了,然而我没有接到HR面的通知过了几天官网状态就变成“已回绝”了。
虽然拒了网易互娱的offer但秋招还是又走内推投了网易互娱,岗位仍然是游戏研发工程师
照惯例,网易游戏python还是要统一笔试这次我又参加的第一场笔试。笔試是一共五道编程题共150分钟。编程题难度相对实习笔试来说要偏难主要难点在时间不够,好几题都要处理很多的细节问题导致花费大量时间最后以做出来了三道多交卷。
照实习时的情况五题我做出来了一半多应该就没问题了,于是就在安心等面试通知网易互娱这佽是到南京现场面试,地点是在金鹰珠江壹号国际酒店
在面试前有个意料之外的现场编程测验,就是给一张写有编程题的A4纸和一张白紙,让把代码用C++手写到白纸上限定时间半个小时。当时我就震惊了九死一生挺过了笔试,还来现场编程测验这一出我拿到的题目是,二维平面上有一些点的坐标这些坐标按顺序连成一条折线,求这条折线上N等分点(N是未知数即传入参数)的全部坐标。坐着想了几汾钟就有思路了其实就是初中数学题;就是C++手写有点麻烦,不过还是一口气顺利写完了半小时时间到后,HR把试题那张纸收上去了剩丅那张写有代码的纸让我拿着给待会一面的面试官。
一面是在酒店房间(的桌子两头)大概一个小时。面试官首先看了我写的代码让峩对着代码讲我的思路,讲完之后面试官表示认同然后根据代码问我为什么要用n * 2
而不用n +
n
,我说懒得涂掉重新写而且编译器也会自动优囮成移位运算;然后面试官继续问了我编译相关,和移位运算的问题然后还是根据代码问我说看我代码里有好几处调用函数重复计算,峩说也是懒得涂掉其实可以计算一次然后保存成变量以后直接用,面试官也没有深究接下来面试官就开始问算法题了,最先问了一个茬二维平面中有一个圆怎样可以得到在这个圆上的均匀随机点,这题我见过类似的就说把这个园外接成正方形,然后在正方形中生成隨机的点如果点在圆外,则重新随机如果点在圆内,则输出;然后面试官说这样方法执行的时间是不确定的问我有没有其他方法,嘫后我又想了用极坐标的方法跟面试官讨论后认为并不是均匀的,然后继续想花了挺多时间的。再下面一题是LeetCode上的题目从两个数组Φ寻找中位数,我简单讲了讲思路然后说这题有许多细节问题,面试官也没再深究了印象中还问了两个LeetCode
Medium级别的算法题,但记不清了朂后问面试官说我面试算通过了么,面试官笑着跟我说不要对自己太没信心于是就安心等二面了。
二面同样也是在酒店房间大概也是┅个小时。二面面试官问的比较广天南海北的知识全都问了。面试官看了我的简历上写的都是Android开发然后就让我介绍Android的framework层,这可真是出其不意不过我还是围绕着Android四大组建说了一通,感觉面试官对Android有些了解但了解的不深。然后让我详细介绍Java GC机制这个背的滚瓜烂熟了。嘫后看到我简历上有写YUV颜色的处理就让我介绍了一下YUV颜色空间,以及与RGB颜色空间的关系然后看到我的简历上有写机器学习,就问了我決策树和SVG的区别这个是必修课上学过的,就从维度、过拟合、分类情形上讲了讲;面试官又继续问决策树怎么解决过拟合问题我就说剪枝和随机森林;然后面试官又让我介绍随机森林,于是我又从Boosting和Bagging的角度讲了讲然后面试官看到我写了个12306换乘查询网站,又让我介绍了這个项目问了我是怎么爬数据的,换乘搜索是怎么实现的效率怎么样之类的,我一一作了回答然后问我知不知道计算机图形学,我說我研究生修过选修课最后基于OpenGL实现了一个光线跟踪算法;面试官很感兴趣,问了我怎么实现的我主要讲了讲光线跟踪算法的过程,囷一些数学计算方法然后还问了我一个游戏场景题,一个活动有10人报名需要将其分成2组(每组5人),每个人有门派和伤害属性问如哬分配使得每个队的门派尽可能平均、且两队总伤害尽可能接近;我想了想,说将10个人排序按顺序每种门派排两人,剩下多余的人全都放在队列尾部然后队列中每两个人挑一个人出来,使得总伤害尽可能接近总和的一半我说这个“每两个人挑一个”我暂时只想到了暴仂的方法,但应该还有更好的方法面试官表示同意。再后面就是跟面试官聊了聊为什么选择游戏行业希望在哪个城市工作的问题,我講了讲自己在腾讯实习的经历说对游戏行业并不排斥,希望自己能在杭州之类的面试官最后直接问了我期望薪资,我也不含糊直接說年薪30w+。
二面完了就直接回去了等了两天就收到了第二天去领取offer的短信(颇有霸道总裁的感觉),第二天一早就又去了酒店HR跟我们讲叻讲网易互娱的情况,然后就让我们等着被叫去酒店房间签offer我大概是第三个被叫到的,在去房间的路上HR跟我说我的面试情况很好拿的昰南京地区最高挡的offer。给我发offer的就是之前二面的面试官他给我拿出了一张胶装的offer,上面手写了岗位和薪资然后给我解释了一些薪资和鍢利待遇,问我有没有问题我答没有。最后他问我去网易游戏python的概率有多大我说50%,然后就拿着offer跑路了
网易游戏python的offer是我秋招唯一拿到嘚纸质offer,纸质offer果然比邮件offer有感觉多了
暑假的时候总算看到了Google校招的海报,说要参加Google Code Jam Kickstart的D轮和E轮才有面试机会鉴于D轮正好在实习中可能准備不充分,于是就参加了E轮其实就是三个算法题,但和一般的算法题区别很大(这里不详细说了)鉴于我不太熟悉这种模式,而且自巳水平也不够好只解出了这三题的small dataset,不久后就收到了Google的拒信
对百度无感,所以还是直接走的正式批次网申还是投的上海Android开发,虽然官网开始写了只招个位数的人
既然是正式批次那就肯定有统一的笔试了,笔试是赛码网平台一共两个小时。笔试题目有选择、简答和編程题选择题和简答题都是考察的Android,所以答的还不错;编程题也似乎没有太大问题值得一提的是,笔试过程中接到了头条HR的沟通***然后就跟HR长谈了十几分钟,HR问我有没有投百度我说正在做百度的笔试题,HR才匆匆挂了***
因为实习生招聘的时候就是笔试跪了,所鉯百度笔试完后也没太在意了不过在等了很久之后还是收到了百度的面试,似乎收到面试通知的人并不多可见百度笔试刷人之厉害。媔试是视频面试一共三面。
一面的面试官似乎没怎么用过视频面试面试中断断续续在干别的事情,像是在屏幕上找什么东西一面一囲持续了二十多分钟,问的问题挺少的基本上都是Android相关的一些典型问题,比如Fragment的使用、与Activity之间的通信之类的面完了也没怎么让我问他,就说等几分钟二面
二面面试官就比较轻车熟路了,二面大概持续了半个小时二面最开始让我简单介绍了一下做的项目,然后就问了峩一些Android相关的问题没有印象特别深刻的,所以应该也是一些常规的问题再后面就是让我做了两个算法题,难度算是LeetCode Easy级别的挺容易做絀来的。最后就是问我如何学习新技术、项目过程中遇到了哪些难题以及如何解决的之类的这些都早有准备,所以也答的比较好最后峩问面试官我这轮面试算通过了么,面试官答通过了等下一轮面试就好。
三面面试官给我的感觉像是总监态度不那么热情,也不太友恏三面大概持续了不到半个小时。最开始还是介绍项目然后问了我一个计算机网络的场景题:假设你做一个APP,希望能发现局域网中其怹用到这个APP的设备该如何实现?我答给APP开个后台服务持续***某一特定端口;然后因为知道自己的局域网IP,所以可以直接向整个局域網网段逐个向特定端口发请求如果收到对应的回复,就代表发现了局域网中用到这个APP的设备面试官说扫描整个网段会花费太多时间,問有没有更快的方法;这个我就不确定了但还是回答说路由器可能可以提供诸如路由表之类的信息,相当于提供了局域网下所有设备的IP这样就可以针对这些IP发送请求了;然后面试官就没有继续问了。然后问了一些Java基础知识比如int和Integer的转换之类的,最后到Java中什么时候该用for
什么时候该用foreach
;我直接答说在Java里foreach
其实就是for
的语法糖,两者并没有本质区别所以for
和foreach
没有特定的适用场合。我答完这个面试官的表情就变叻又跟我说了一遍问题意思后,我还是坚持之前的***最后面试官说for
和foreach
在不同场合效率差别非常大,我说这个我不太了解回去好好看看。于是就结束面试了
可能就是因为三面的最后一个问题没答好,也可能是投上海Android的同学都比我牛面试完就杳无音讯了。
有了之前實习生招聘的教训秋招果断让师兄内推了Android开发,而且还精确部门到美团点评上海酒旅做海外业务的Android开发组
内推了没几天就收到了面试邀约,没错直接跳过了笔试。这也是我秋招两次去别人公司现场面试的其中一次面试从下午开始,共四轮面试中间没停,一直持续箌了晚上想要吐槽的是,去上海面试竟然不报销来回路费
一面面试官是个年轻小哥,也是Android开发组的组员一面持续了大概一个小时。朂开始也是让我介绍我做的项目然后他对我做的科研项目流式二维码文件传输系统很感兴趣,问的很多我也从头到尾跟他解释了系统嘚整个运转流程;然后他对我做的科研贡献也很感兴趣,因为短时间解释起来有难度所以就借助笔和纸跟他用尽量简单的语言解释了。洅之后就是问了我一些计算机基础的问题对我来说没什么难度。然后就问一些Android相关的问题比如Fragment的使用、Activity和Activity之间如何传输数据等;最后問到Service中启动Activity的原理时答的不太好,不过也算跌跌撞撞答出来了最后考了一道算法题,也是一道经典的算法题——全排列这题正好是我湔一天刚看了的,所以一口气就写出来了面试官对我能这么流畅写出来表示震惊。然后扩展问我如果原数组含有重复元素怎么办我说先把原数组排序一下,然后算法稍微改一下就好了并且写了出来。继续扩展问我如何得到字典序的全排列结果我说把结果排个序就好叻,面试官不满意希望我能从算法原理上有序,这就纠结了好久都没想出来然后面试官问我我写的算法的时间复杂度,这个我倒没有提前准备于是就当场分析了一番,算出来了一个时间复杂度我问面试官我算的时间复杂度对不对,面试官说应该不对然后面试官看峩简历里有写机器学习,就问我是怎么学机器学习的我答主要是因为学校研究生必修课有《数据挖掘》,其实就是机器学习最后我问叻面试官他自己对Android开发中Native和Hybird的看法,面试官跟我讲作为一个Android开发者当然是反感Hybird的但Hybird的优点不容忽视;还跟我详细介绍了美团点评内部融匼Native和Hybird的框架。随后面试官就跟我说让我等二面面试官几分钟
二面面试官是年轻有活力的大帅哥,是Android开发组的组长二面持续了大概一个尛时。二面面试官上来就说既然我已经有了腾讯的实习经历而且一面面试官也问了很多问题,就不问我基础的问题了然后也真的没问計算机基础之类的问题。最开始也是让我介绍项目围绕着项目也聊了一些。然后让我介绍了一下Android中NDK开发的过程我详细介绍了该怎么写玳码、运行原理、以及在我的项目中的应用。然后就问了我项目开发过程中遇到的问题和解决方法这个早有准备,说了很多其他的印潒不太深了,但整体下来聊的挺投机的最后面试官给我接了杯水,让我等下三面面试官
三面面试官是部门总监,貌似也是某本Android开发相關的书的译作者三面持续了大概一个小时。三面主要问的问题就明显跟一面二面不一样了最开始也是介绍项目,但没有深究然后问峩为什么想要到他们部门,我说美团点评平台有用户粘性国内这几年出境游处在爆发期,美团有很大的潜力之类的然后问我开发海外蝂有什么需要注意的,我就从语言、习俗、支付等方面谈了谈我的看法然后问我怎么做多语言APP,我说Android id表示的字符串自动翻译为国际语言然后问我用户在使用APP时,多语言该如何切换我说有两种方法,一个是根据Android系统当前语言类别匹配APP语言另一个是APP监测GPS信息,根据用户所在国家提示切换APP语言然后问我海外版该如何优化用户体验,我就主要从非技术层面在讲比如需要有本土开发团队、需要有本土地推團队、需要和相关的支付公司合作之类的,面试官表示赞同最后面试官问了我对工作城市的看法,以及还会面试哪些公司之类的最后媔试官就让我坐着再等等,他去找HR
四面也就是HR面了,这个HR没有腾讯那么有套路问的问题都很典型,也很容易回答这里就不细说了。㈣面面试完已经晚上八点多了于是就马上奔赴地铁站,赶去火车站坐火车回南京了
美团点评算是速战速决了,HR当场就跟我说offer应该没问題了但收到offer也是很久之后了,似乎是因为美团点评的offer是统一审核发放的给我的offer是A挡而不是S挡让我很不能接受,我跟之前的组长反馈我嘚不满他说他没有能力介入定挡定薪,让我跟HR继续沟通然而HR明确跟我说挡位不能调,薪资也没有谈的空间于是我就很生气拒绝了offer。
滴滴本来没打算投但想着闲着也是闲着就也投了。滴滴最开始走的内推投的杭州的Android开发。
内推有统一的笔试用的牛客网平台。笔试題目记的不太清楚了但答的感觉挺好的,然后笔试之后就再也没有消息了听说杭州Android开发,甚至是杭州的岗位就没多少人接到面试通知
再后来自动投了滴滴的正式批次,和内推一样有统一的笔试笔试题目也和内推差不多,然而笔试之后也是再也没有消息了也是听说杭州没几个人接到面试通知。
之前导师跟我说他认识一朋友在微软可以帮我内推我说能够内推苏州就好,上海或北京不考虑后来导师詢问了之后发现那朋友所在部门在上海,而且在苏州并没有分部遂作罢。
所以微软直接走的正式批投的STCA苏州的software engineer。然后等到了统一的笔試想着不能重蹈覆辙了。
微软这次的笔试平台换成了amcat而且笔试全程不允许切换窗口、鼠标不能离开窗口,这对我们来说难度突然增大叻因为微软笔试就是几个算法题,不能跳出窗口、全程手撸代码就太恐怖了
出乎所有人意料的就是微软今年的算法题突然简单了许多,可以说手撸代码完全没问题一共五题,好几题就是简单几行代码就能写出来了最难的一个就是换硬币了,其实就是非常明显的动态規划所以笔试毫无压力,只有两三个测试用例没有通过坐等面试通知了。
等了好几天后收到了微软苏州现场面试的通知值得一提的昰,同实验室好几个笔试做的不错的同学没有收到面试通知所以微软恐怕不是单纯根据笔试成绩来发面试通知的。
之后就是去苏州微软現场面试了签到的时候就看到签到表上密密麻麻全是南大和浙大的学生。面试一共四轮在一个会议室坐着,面试官带出去面试的模式微软的面试模式出了名是啥都不问直接白班写代码,这次也不例外
一面大概持续了半个多小时。面试官最开始就让我介绍我最闪光/特質的地方上来就把我弄懵了,因为只准备过自我介绍跟面试官说等我想两分钟后,我就开始说了切入点就是我学习能力强,而且学嘚好;我主动说我本科是学的武器花了接近两年的课余时间准备考研考上了南大,准备考研期间自学了计算机四大专业课和附属课程茬研究生阶段也学的很好之类的;面试官表示满意。然后就问算法题了问的是一道经典算法题,两个字符串大数相加这道题是LeetCode原题,所以很快就写出来了然后面试官扩展问如果是小数该怎么修改算法,我说把数的整数部分和小数部分分开处理照之前的算法分别相加並处理完小数向整数进位问题后再拼起来,面试官表示赞同然后问我对于小数还有没有别的方法,我说还可以直接把小数当整数对待楿加完成之后算出小数点的位置,再插入到字符串中就好了面试官让我写出来,我就很快在纸上写出来了紧接着面试官让我想想可以設计哪些测试用例来检查算法正确性,我写了几个测试用例再然后面试官问了我一个概率题,掷一个骰子n次每次掷完骰子后,可以选擇立即停止、以当前骰子的值作为结果或忽略当前骰子的值,继续掷骰子问用什么策略可以得到最大的数。这题我就犯难了因为之湔想过类似的问题还把自己绕进去了,这次也马上就把自己绕进去了而且越想越迷糊最后干脆说每次掷的超过3就立即停止,不超过就继續掷;面试官马上就举例子说假设一共可以掷9次掷第1次的时候就掷到了4,那应该立即停止吗我答不上来。面试官提示了我两三次后说應该考虑后面还会掷多少次我就明白不应该看前面掷的情况,应该根据后面还有多少次没有掷来计算后面掷骰子会超过当前值的概率概率大于50%就应该继续掷,随后写出了计算概率的公式面试官对我的这个***表示赞同,随后他补充说还可以用动态规划的思想来看最後面试官跟我说我太紧张了,需要放松
二面差不多也是半个多小时。面试官最开始让我介绍了我做的项目对我的科研项目很感兴趣,哆问了一些但没有深入。随后开始做算法题主题是二叉搜索树,问了我搜索的时间复杂度让我在纸上举例各种情况下(最好、平均、最坏)的时间复杂度,然后让我分析如何在二叉搜索树中寻找仅小于指定结点的结点(就是中序遍历的前驱结点)于是就跟面试官讨論了不同树的形状下如何寻找前驱结点,然后面试官让我写出这个算法我想了想其实中序遍历就能搞定,于是默不作声写了个非递归逆Φ序遍历然后给面试官看,并解释了原理;然而这并不是面试官想要的结果面试官希望我通过结点父子关系来寻找前驱结点,而非遍曆的方式我想了一下,然后跟面试官说这样每个节点就必须有一个parent
指针指向其父结点,面试官说可以有parent
指针然后我就顺着之前讨论嘚各种情况一一写出了寻找前驱结点的方法。面试官看了我写的代码表示赞同但跟我说其实我的代码还可以精简,其实就是两种情况不斷向上遍历判断然后面试官让我设计测试用例,来检查我写的算法的正确性我很快写了几个。然后让我再之后面试官简单问了我如斐波拉起数列的问题就愉快结束面试了。
三面也差不多半个小时三面面试官也是先让我介绍项目,我介绍了我的科研项目他问了一些性能参数后,问我有没有考虑到手机耗电问题我说没有,主要因为这个领域都不做这个他就谈了谈他对耗电的看法,我表示赞同然後面试官问我前两轮面试有没有问英语,我答没有面试官就说从现在开始我们用英文交流,所以接下来全程英语了然后就是做算法题叻,不同于前两轮面试是在纸上写这次直接在墙上的白板写了。问的是LeetCode上的原题——判断镜像二叉树(LeetCode
101)这题我早有准备。首先画了個镜像二叉树跟面试官确认了我没有理解错题意然后就很顺畅地开始写了,一口气写完之后就让面试官来检查了面试官首先问为什么峩的传入参数是用a
和b
表示两个树的,我答为了简单起见然后面试官说可不可以用left
和right
来表示两个树(递归结构,这里指左子树和右子树)我答不可以,因为第一个参数不一定一直是left
、第二个参数也不一定一直是right
如果用left
和right
反而会让人误解,面试官表示赞同然后面试官让峩设计测试用例,我写出了七八种测试用例面试官看了后说其实我漏掉了最重要的一种测试用例,我想不通于是问面试官是哪种,面試官说我写的测试用例都是来检查算法不正确的情况而测试用例最先应该检查的是算法正确的情况,即正常的测试用例我说这确实是峩没想到。然后三面也结束了
四面就是部门大佬了,一共持续了大概四十分钟最开始还是让我介绍我的科研项目,他表示很感兴趣還让我介绍一些系统中的一些细节,于是我就在墙上白板上用整个板面画了我设计的系统的整个流程和一些细节中间穿插着面试官的问題。然后就进入正题开始做算法题也是LeetCode上的原题——通配符匹配(LeetCode 44),看到面试官出这题我惊出一身冷汗因为前一天复习的时候就见過这题,然而没有做出来而且因为这是一道Hard难度的题,我觉得面试不会问也就没有去找***做出来,然而就这么遇到这题了于是我僦主动跟面试官说这题我前一天晚上还见过,但我没有做出来这题的最优解法应该是动态规划,但我不会;面试官回答说现在是不是很後悔当时没有看这题没关系现在再好好想想,争取做出来然后我就在白板前站着想了好几分钟,万幸的是总算想出来了用递归来做,然后慢吞吞写出了代码然后给面试官看,还逐行解释了算法工作过程面试官说挺好的,这不是做出来了么然后就是写测试用例了,吸取了三面的教训这次测试用例很快就写出来了。这样就结束了四面
四面结束后回到会议室,问HR什么时候能出面试结果HR说等差不哆十分钟就有结果了。于是坐在那等然后有HR叫我,出去跟我说我的面试情况挺好的现在在hirable list中,大概等两周就可能有是否发offer的决定然後我就愉快回学校了。
但是等微软offer的日子是漫长的在HR连续跳票两次后总算接到了offer***。惊喜的是我拿到了微软的sp并且今年苏州微软的薪资待遇较往年也有较大提升。
投头条主要是因为听说头条的笔试面试难度都高想试试。最开始也没打算去头条所以直接投的北京Android开發。
头条走的内推但还是参加了统一的笔试(有概率免笔试),笔试印象不太深了只记得有两个算法题,而且难度都挺大是那种很嫆易做对30%但很难做对100%的算法题,不过凭借着我刷题的功底(以及当时的灵机一动)还是把两题全都做出来了。
然后就收到了头条视频面試的通知值得注意的是,头条的笔试刷人比例很大我周围基本没有人进头条的面试。面试一共三轮每轮面试完后几分钟都会接到HR的電话通知面试是否通过。
一面大概持续了一个小时问的问题印象不太深了,主要问的都是计算机基础、Java基础和Android基础的问题但问的深度較深。比如问到Java并发的时候就让我用代码来演示线程之间的同步;还深入到了wait()
和notify()
的工作原理(锁池,唤醒的native实现)以及notify()
和notifyAll()
的区别、notify()
可能造成死锁的问题。印象中没有要做算法题(如果有也应该是LeetCode
Easy难度的)一面完面试官就直接让我等二面了。
二面大概持续了一个小时②面记的也不太清楚了,挑几个我记得的说最开始是问到了一些Java基础,比如int
和Integer
的区别之类的然后还用实例让我分析Java面向对象编程的一些细节,比如内部类的性质、什么时候用内部类、内部类和静态内部类的关系还问到了一些进制的问题,比如数的二进制表示、与十六進制的关系、移位运算问完这些就开始看着我的简历问,问到了我Python学的怎么样(项目中用到一些Python)、怎么学习Python的、主要拿来干什么之类嘚问题然后面试官让我解释一下YUV颜色空间,这个让我心里一惊因为这个第一个问我YUV颜色空间(整个秋招只有两个面试官问到YUV颜色空间,另一个是网易游戏python)而且看样子面试官是了解YUV颜色空间的,要知道只有专门做图像视频的才会了解到这些;然后我就详细介绍了YUV颜色涳间以及对应的如I420和NV21格式。随后面试官又问我懂不懂Android上的codec(因为我简历上写了Android的MediaCodec
)我说我用过MediaCodec
,面试官又问主要用来干什么我说拿來做视频硬解码。然后面试官针对MediaCodec
的使用、注意事项等问了我十多个问题我都一一很快作了回答。到这里我基本就反客为主了因为用MediaCodec
嘚人很少,而我因为科研的关系专门钻研过MediaCodec
还实现了第一个通用的视频解码方法,可以说对MediaCodec
了解的很深了;而面试官可能就是刚刚入门正在学习MediaCodec
,所以我的回答就是游刃有余了面试官问完这些问题后很兴奋,看我全都答上来了就觉得我的面试应该算通过了但他看了看时间发现才四十多分钟,于是就说再出个算法题我做就是一道经典的算法题——两个字符串大数相加,早有准备所以一口气就写出來了。最后结束的时候面试官跟我说非常希望我能去头条实习最后我问面试官为什么他会了解MediaCodec
这么冷门的东西,面试官说他目前正在参與西瓜视频APP的研发接触到视频处理,所以就了解到MediaCodec
了
然后就是三面了,三面也大概持续了一个小时因为网络的原因,是***面试的三面的画风和前两面不一样,没有问太多技术方面的问题最开始还是让我介绍项目,介绍完了就问我项目中遇到的问题和解决方法這个我回答的很细,面试官也问的很细;因为这个之前准备过所以答的也不错,光这个问题就花了大概半小时面试官之后问我说似乎解决这个问题并没有用到太多技术,我回答说是的但最困难的应该是寻找原因、作出尝试、再寻找原因、再作出尝试的过程。然后就是問我我的项目代码进行过怎样的优化、现在还存在哪些问题我说以前代码结构太差,牵一发而动全身后来学习了设计模式,代码结构僦清晰了很多面试官又仔细问了我用到了哪些设计模式,是怎么改造代码的;然后问存在的问题我答还缺乏一个通用的框架来支撑各種不同的二维码,然后面试官问了我继续改造的思路最后面试官跟我说虽然前面两轮面试问了很多基础,但他还是要考考我问我Java里有哪些Map。这题倒是把我难住了因为我只是看过Map的各种继承的图,还没专门背下来过于是我就只说出了HashMap、LinkedHashMap和TreeMap(实际还有ConcurrentHashMap等),然后跟面试官介绍了典型的使用场景这样就结束了三面。
三面结束后过了十几分钟就接到HR***说面试通过接下来几天会有HR的***面试。然后等到HR電话面试实际就是聊聊天,HR了解一下我拿到offer的情况、对城市的选择、能否实习等然后问我对部门有没有喜好(今日头条、西瓜视频、抖音、火山小视频等),因为我也不在意就说没喜好、都可以。剩下的就不仔细说了
再后来就是接到了HR沟通薪资的***,HR说我分到了主端(即今日头条)然后给我的是sp,后来发现是sp里的最高挡
因为我是实习转正,所以严格来说我并没有参加腾讯秋招腾讯在九月初絀实习生考核结果,有一批人被淘汰了可能因为我是组里唯一一个实习生(也可能是我太牛),就拿到了转正的机会然而只给了白菜價。后来手上拿到了网易游戏python和头条的offer发现腾讯薪资太低,于是向HR申请调薪然而HR一直说在走流程;直到拿到微软offer,告知腾讯HR后很快得箌了反馈我的offer调整成了sp,不过这个sp的薪资与另外三家仍有差距缺乏诚意,在综合其他情况考虑之后最终拒了腾讯的offer不过,无论如何我还是感谢腾讯让我的最后一个暑假过的异常精彩。
学校下学期开学时间是2017年2月20日而阿里的实习生招聘內推开始时间是3月1日,也就是说开学一周后阿里就开始内推了相信很多同学还没从寒假里缓过来吧。阿里的秋招内推开始时间是7月4日吔就是很多学校才放暑假或还没开始放暑假就开始内推了,相信还有很多同学是打算暑假复习两个月再战秋招的吧而且阿里内推成功即開始面试,同样也没有缓冲的时间哟~
按照阿里校招官网的流程图内推成功后会收到素质测评和编程测验的邮件通知,要求三天内完成但是可千万别理解为没完成就不会走到面试流程了,好多小伙伴拖着编程测验不做准备腾出三天时间抱佛脚的,结果当天或者第二天就接到***面试了
阿里的绝大哆数部门的招聘都放在了内推等到内推时间截止的时候绝大多数部门都已经招满人了。正式批次笔试后能够收到面试通知的同学很少,而且面试的部门也主要集中在高德、虾米、钉钉、优酷等部门而非集团、菜鸟和蚂蚁。
一般来说樾早内推,越早面试面试通过的概率相对来说更大。在内推要截止的时候再内推多半因为部门招满人了没人鸟了
美团点评走内推的免笔试直接面试的概率比较大,而走正式批的笔试后收到面试通知的概率较小
美团校园招聘官网说“如果选择了某一个感兴趣事业群,那么你的简历将优先分配给该事业群若无明显事业群偏恏,可以选择“都喜欢””,但实际上若选择“都喜欢”则简历不会推荐给任何事业群,只会等待事业群有空来挑若没有事业群挑,则没有面试所以不是万不得已,千万不要选“都喜欢”
美团点评的评级分为B/A/S,其中B和A级的薪资确定不能更改S级薪资可谈。走美团点评内推拿到offer的普遍拿的是B和A很少有S,且不能调评级;而走正式批次的拿到S的概率大得多传闻是因为内嶊开始的早,在发放内推offer后(众多B和A)很多学生不满薪资待遇且不能调整薪资遂纷纷拒offer,后期为弥补生源在正式批次发放S评级offer的数目僦多了许多(不知真伪)。
网易游戏python分为“互动娱乐事业群”和“雷火&盘古事业群”两者的招聘是独竝且互斥的。且两者的招聘岗位和要求也不相同(详见网易游戏python招聘官网)如互娱的核心岗位为“游戏研发工程师”,要求985/211高校;雷火&盤古的核心岗位为“研发工程师”要求本科高校。互娱相对雷火&盘古来说体量更大雷火&盘古的招聘开始时间较互娱要早。
从公司组织架构上来说网易游戏python和网易是平级的,网易游戏python并不是网易的下属子公司(注意区分网易和上市公司NetEase)两者嘚整个招聘过程都是相对独立的。
网易游戏python(互娱)的笔试难度比肩实习生招聘/秋招最高难度而網易的笔试难度较低。网易游戏python(互娱)的面试考察面之广之深也是网易不能比拟的
亲身经历。在收到面试通过的邮件时HR同时会要求将导师同意实习、和与导师沟通实习时间的邮件转发到HR,然后才会收到正式的offer邮件
就我的秋招经历,南京地区的面试基本可以分为研发和测试两类(别看招聘网站岗位繁多)且测試岗位面试人数较研发多得多,且研发面试不通过的概率大在后续补招中,测试岗也有大量名额
往年网易游戲python靠30w+的薪资一骑绝尘,从清北招走大量生源但今年由于各大互联网公司薪资大幅上涨,sp涨幅更大且sp名额更多而网易游戏python薪资并没有怎麼变化,导致众多优质生源流入其他公司网易游戏python开启了较大规模的补招。
无论投的是哪个岗位腾讯的笔试题都會重点考察C/C++的知识,即使所投岗位不要求C/C++基础
虽然腾讯笔试题考察C/C++很变态,但即使是编程题一个字都没写也都有很大概率收到腾讯的媔试通知。
腾讯虽然在北京、上海和成都等都有分公司但岗位都比较少,而每年招聘的绝大部分岗位都在深圳所以选择“服从工作地点调剂”的,很大可能分到深圳去比如,南京离上海近离深圳十万八千里,但吔是有相当大概率分到深圳的
实习转正后对应转正的岗位也是当前实习的岗位,即在当前组內所以不太可能可以调换工作地点。如果坚持想要调换工作地点可能需要按秋招流程重新来一遍。(腾讯是这么干的但国内互联网公司大同小异)
诸如阿里、腾讯和百度等公司的实习留用率肯定不是100%,所以不要怀着实习一定能拿到秋招offer的心态詓实习
华为的招聘是分区域相对独立自主招聘的,如上合区指上海和安徽、江山区指江苏和山东、武长区指湖北和湖南通常每个区由┅个分公司负责招聘,如江山区由华为南研所负责招聘招聘后期会开放区域间的调剂。
华为FX招聘实际是秋招但其笔试面试时间与实习苼招聘基本重合,所以不要误认为FX招聘是招的实习生
今年华为的FX面试在暑假前就结束了,而华为优招暑假中就面试完成但offer最早也都等到了九月底才发出来。
不像其他公司会发带有薪资的offer邮件华为只會通知现场签约时间和地点,在现场才会知道薪资待遇满意则马上签,不满意则走人
从来不缺生源的华为今姩一直持续到12月份都在补招,之前被华为拒的、拒了华为的都会接到华为HR的***一旦有意去华为,就可以继续详谈;而华为也一改往常彡方发下来第一天就逼签的态度不再强制要求立即签三方,有些地区甚至可以先签两方其主要原因是华为往年依靠诱人的薪资在各大高校都有学生抢着签华为,而今年随着以BAT为首的公司薪资大幅上涨sp薪资轻松破30w,而华为薪资较去年持平导致学生纷纷签其他公司,华為生源紧缩
这算是许多公司的惯用伎俩了,一旦交出三方那么想要拿回三方就至少需要等到春节過后。
微软实习生招聘的笔试算是目前最后一次使用hihoCoder平台了秋招使用的平台就换成了amcat。而且微软一改在hihoCoder上题目甴简到难的风格秋招amcat上的题目难度相当小。
微软的实习生招聘和秋招的笔试、面试和发放offer的时间相比国内互联网公司都迟了许多甚至,秋招时许多学校已经发放三方各大公司开始逼签时微软才开始面试。
虽然base的涨幅并不大但微软给的股票多了不少,所以package算起来高了不少
百度每年各分公司、各岗位的招聘人数都是提前公布在招聘网站上的,不妨仔细研究一下数据比如,上海除研发岗外其他岗位招聘人数很少能超过10人。
头条笔试刷人很恐怖笔试莋的一般般一般进不了面试。头条三轮面试任一面试官认为不满意则面试不通过而面试官倾向考察代码能力,关键题目代码未当场写出則很有可能面试不通过
头条秋招白菜价就可以秒杀众多公司sp,而头条sp则一骑绝尘甩开其他公司sp几个段位。且拿到头条offer去实习可以拿80%薪資(比正式入职到手工资还高)头条薪资涨幅也值得期待,且能够换公司期权
我的实习生招聘第一战就是阿里,也是匆忙上阵当然败的也是很惨:一问三不知。不过也是阿里的失利打醒了我让我静下心来研究实习生招聘。
首先是关于面试崗位的问题虽然面试问到的问题五花八门,但很多问题都和面试的岗位关联性很大比如应聘Android开发不会被问到Spring,应聘Java后台开发不会被问箌Android所以为了减少自己的工作量(也没那么多精力去同时准备不同岗位),就要先确定好自己要投的岗位然后就搜了不同岗位的面试经曆帖子,看了看自己能答多少发现自己对哪个岗位都不擅长,因为有一些Android开发基础倒是会一点点Android开发相关的问题。接下来想了想虽然Android開发校招招的人少但可能和我竞争的人更少,因为绝大部分同学都没接触过Android开发所以就决定选择Android开发作为我以后要投的岗位了。
接下來是关于面试题目的问题面试问的问题大概就是计算机基础、Java语言基础、Android开发和算法题了,下面展开来说各个击破。
先说计算机基础題计算机基础题是所有面试经历帖里面可以公用的,很快我就总结出来了规律:作为经历过考研的我一眼就看出来计算机基础题基本嘟是考研知识点的题。比如数据结构的二叉树、图、查找、排序章节就覆盖了众多数据结构相关的面试题,而计算机网络的存储器尤其昰cache章节、虚拟存储器的段表和页表就完整覆盖了面试问到的cache相关的题操作系统的进程管理算是面试经常问到的问题,而计算机网络相关嘚面试题肯定跑步出计算机网络教材所以我就直接来了个自上而下的复习:买了本计算机专业课考研全书,从后到尾按顺序梳理可能的知识点然后整理出来
再说Java语言基础。因为Java存在数量巨大的程序员所以很容易就能找到Java语言的面试题大全。但想要看完并记下这所有的媔试题是个挑战所以需要删掉一些一定不会被问到的面试题。Android开发除Java语言基础外并不会涉及到太多其他的Java套件比如Java网络开发就肯定不會问到,这时就可以放心大胆把JDBC、JSP、Spring等砍掉减少了许多工作。
然后是Android相关的面试题最开始看Android相关的面试经历帖一头雾水,觉得问的知識点太多了完全答不上来但综合了十多个面试经历帖后发现问的很多问题都是重合的,比如经常问Activity的生命周期、Service的生命周期、Activity之间的通信、消息传递机制等所以也采用类似复习Java语言的方法,收集各种各样的Android开发面试题
最后还要说说一些其他的面试题,比较典型的是数據库和设计模式因为Android开发问到数据库和设计模式的概率比较小,我也就只整理了一些简单的面试题足够应付面试了。
以上这计算机基礎、Java语言基础和Android开发面试题等的收集和整理工作就贯穿了我从实习招聘开始到秋招结束的始终经常有新的题目被我收集到,也经常有老嘚题目被我整理得更加系统为了更加方便和完整地收集和整理,我把整个收集整理过程都用Git来作了版本控制并且分享在了GitHub上。
下面说說算法题算法题可能并不是每轮面试都会出现,但一旦出现可能就是生死攸关的——做出来了面试通过做不出来面试不通过。那么算法题该怎么准备呢当然就是刷题啦,这里我选的就是知名刷题网站LeetCode了而刷题顺序的话就是按通过率由高到低排序了一个个刷。并且峩一开始就制定规则:每题都要使用Python、Java和C++三种语言做出来,因为Python适合在纸上手写、Java在在线写代码时常用、C++则是以备不时之需刷题是一个佷消耗时间的事情,但另一方面刷题又是一个很好的利用碎片时间的方法——做出来一题可能只需要花十几分钟。另外LeetCode里Easy、Medium和Hard的最后媔几题总是会非常难,这时候就可以自己权衡还有没有刷这些题的必要啦反正我是选择性放弃了。刷题也贯穿了我实习招聘开始到秋招結束的始终而刷题的主战场集中在三月初到六月底,这段时间几乎是有空就刷题490+刷了400题左右;而接下来的七月初一直持续到秋招结束則主要在复习和整理刷过的题,在我的GitHub上也有记录
这里采用一问一答的方式。
内推在绝大多数情况下都是恏过走正式批的其一内推可能免笔试,避免了笔试不通过的概率;其二内推一般面试更早更早也就意味着机会更多;其三内推能够获嘚更多面试反馈,内推人可以查询到面试的状态、招聘流程走到了哪一步等
我认为最先寻找的是自己的师兄师姐,因为他们不仅能提供内推机会还会告诉你公司部门结构、主要业务等,能够更加全面选择投递部门不仅如此,面试流程中还能经瑺向他们询问面试情况等其次可以找朋友圈或者校友帮忙内推,同样他们也能及时反馈面试情况等最后就去满大街找内推广告了(比洳牛客网讨论区),按我的经历这些内推很难后续联系上内推人。
注意这里网申即包括内推网申也包括正式批网申网申当然是越早越恏了,我就吃过网申太迟的亏一者,有些内推可以免笔试而网申早一般获得免笔试的几率要大一些;二者,有些内推/正式批不需要笔試(如阿里内推)而越早网申就会越先面试,要知道招聘是一个萝卜一个坑面试越早拿到名额的概率也相对越大;三者,如果有统一筆试的话网申早也不亏,反正还是得等到统一笔试
计算机/互联网的简历可能不像其他行业的简历。就我来说简历里写简单的个人信息(姓名、出生年月、专业、学历、毕业学校、邮箱、手机号等)、个人博客网址(如果有)、GitHub链接(如果拿的出手)、熟悉的编程语言囷熟悉程度、项目/科研经历(详细写)、实习经历、发表论文情况、获奖情况、英语能力就好了,而不必写如是否党员(要投如华为之类嘚公司还是尽量写)、班干部/社团经历(要投如华为之类的公司还是尽量写)、兴趣爱好、主修课程、非计算机/互联网相关的实践/项目活動、非奖学金/计算机/互联网相关的获奖情况等以上个人观点,但我的简历按这写从来没遇到问题
项目经历是极其重要的!很多面试都昰以“来讲讲你的项目经历”开始的,根据我的经历许多面试光讲项目经历就会占到面试时间的一半。项目经历不仅会让面试官觉得你哽靠谱而且更重要的是从项目经历中面试官能够挖掘出共同的话题,让面试“有的聊”所以项目经历不仅重要,而且还应当花大力气詓为面试梳理和抽象主动制造话题。
简单来说你的项目经历多的话拿出最好的两三个,项目经历少的话拿出兩个也好怎么定义“好”呢?一是要有趣讲出来能够吸引面试官的兴趣;二是要有一定难度,至少能够回答出“你的项目有什么难点”;三是要和面试岗位相关面试官也是有自己的擅长领域的,你要是讲一个面试官完全不了解的领域的项目多半是雾里看花,面试官早早就没有兴趣了
如果你真的在简历上不写项目经历,面试官问有没有项目经历时回答没有那么你就非常危险了。我见过好几个同学談面试经历说当面试官问到有没有项目经历,他回答没有之后面试官的态度就突然变了,然后就草草结束了面试而且当真的没有项目经历的时候也别慌,不妨把你对“项目”的标准放低知乎上不是也有大牛说把课程设计做的贪吃蛇当项目讲都没问题吗?要注意项目low鈈low是面试官的评价而并非你自己的问题;但你主动说没有项目,面试官想帮也帮不上忙了最后,如果你发现自己还没有项目经历而媔试又在一两个月后,那为何不现在就开始想个项目动手做呢
简历里放GitHub链接是一种很Professional的做法,好比是在向面试官说“我既有项目代码也随时给你看,而且写的还工整”是一个绝对的加分项。但在你放上GitHub链接前需要先自己看看“够不够格”放仩链接。首先你的GitHub上“绿块”的数目要足够多,“绿块”代表了过去一年中每天提交代码的次数也就是说你可能需要有一年的积累才夠格把GitHub链接贴上,你想想面试官打开你的GitHub发现你的代码提交全都集中在最近一个月是怎样的心情其次,你的GitHub上需要有项目可别是每次提交的都是乱七八糟的东西充数的;再次,GitHub主页应该仔细包装比如设置头像、organization等。
像计算机专业的发表的论文都是A/B/C类会议如果你有发表的论文当然要贴在简历里了,面试官可能问到也可能不问到,但重要的是公司在评sp的时候论文是一个很重要的参考!有顶会一作的論文只要面试通过,基本是大sp随便拿所以不要想着发论文是给老板搬砖,也是在给自己赚钱呢
简单地说,需要不过实习需要权衡很哆,首先实习岗位一般就是秋招投递岗位,不要一开始计划实习一个岗位秋招再投递另一个岗位,只有觉得实习后岗位不如自己预期洅换;其二实习需要和导师沟通清楚,众多研究生导师原则上是不同意实习的为实习跟导师闹翻得不偿失;其三,不要计划一边实习┅边准备秋招实习时可能有各种各样的工作,很难静下心来准备秋招而秋招一般在实习期间,或实习刚结束就开始;其四实习意味著少了两个月的秋招黄金准备时间,实习一般在暑假而暑假两个月在学校专心准备秋招可能会有很大提升。
另外还要注意实习的公司洳FLAG之类的国际大厂、BAT之类的国内第一梯队大厂就放心去,TMD之类的第二梯队就要想想值得值得去(是不是搬砖)而其他的公司就需要慎重栲虑了(个人意见),需要权衡实习收益和秋招的代价