秋招还需努力一把,记一位应届本科生的大厂面试经历

640?wx_fmt=jpeg

/   今日科技快讯   /

昨天,在第六届世界互联网大会“5G,开创数字经济新时代”论坛上,搜狐公司董事局主席兼CEO张朝阳再谈5G辐射,“基站辐射很小对人体没什么影响。 ”

/   作者简介   /

本篇文章来自名字太长掉线的投稿,分享了他在校园秋招中的实战经验,希望对大家有所帮助!同时也感谢作者贡献的精彩文章。

名字太长掉线的博客地址:
https://blog.csdn.net/weixin_43877815

/   前言   /

这个文章主要是笔者今年的校园秋招android岗的面试经历,希望对正在秋招的和准备明年春招的大四、研究生、甚至是博士生的小伙伴们,有所帮助。大家可以参考一下。

个人背景:广东某一本大学大四软件工程专业学生,大二开始学习的android。学校里主要讲的是一些基础的东西,android的知识主要是靠自己课外花时间自学。

秋招结果:鹅厂offer,其他公司投了将近10家。感觉和java的同学相比,今年android秋招还是相对比较容易的,可能是因为今年android的同学比较少的缘故吧。投的公司也基本上都是大厂,面试也感觉没有往年的难,几个公司甚至笔试都省略了,估计他们是真的有点缺人吧。

因为很多面试时间有点久了,所以许多细节都记不清楚了,只能挑一些印象深的讲,希望大家海涵。

/   腾讯   /

拿offer了,最终也决定是它了。面试流程是笔者投过公司里最繁琐的,当然,面试质量也是其中最高的。

一面

很多细节都记不起来了,7月下旬面的,真的太早了。QQ视频的方式面的,加了面试官QQ。在学校里,找了一个没人的小教室,结果没有WIFI,还得自己开热点。。。 视频开了,结果没看到面试官的人,对面是黑屏,看不到人,但有声音,因为对面试没影响,就没管,然后就开始了。

面试官:先简单介绍一下自己吧。

笔者:(扯了一大堆)大四软件工程学生,大二的时候学习的android,后续又陆陆续续学了一些相关的东西。平时学习的话,我主要是通过关注了一些技术的公众号、买一些技术书籍来看和上网查资料来进行。

一般遇到问题的话,我喜欢先翻源码,因为“源码是最好的老师”吧?其次我会上它的官网去查,实在找不到的话,再用搜索引擎。搜索引擎的话,我感觉google搜出来的质量要比某度搜出来的要高;而且,一般来说,英文的搜索结果质量要高于中文,许多问题的答案都是在stackoverflow这种网站上找的的。

因此,我一般喜欢用google进行英文查找,这样效果是最好的;当然,不排除有的时候,中文的搜索结果也不会太差。比如,一般来说,像源码分析一类的文章,只有中文的,好像老外对这个不感兴趣吧。。。

面试官: 看你简历上写了很多的框架,有看过它们的源码吗?

笔者:说了一下Retrofit、Butterknife和郭婶的Litepal,提到了一下java的预编译(Butterknife有用到)和反射(Butterknife和Retrofit)。吐槽了一下前两个框架,说反射性能消耗过大。

面试官:根据你提到的这些问题,有想过怎么解决吗?实现过吗?

笔者:考虑过使用预编译去代替反射,然后说了一下java预编译的内容,并和C语言的宏做了一下对比。自己也尝试过,但没成功,因为java的预编译必须有注释,而注释的使用范围有限。

面试官:读过OkHttp的源码吗?

笔者:没有,主要看过Retrofit的,知道它是基于OkHttp来的,但没看过OkHttp的。

面试官:好吧(语气好像有点失望),对于Activity的启动过程知道多少?

笔者:说了一下Activity的启动过程,5.0和8.0之间的区别,顺便说了点插件化、热修复的内容。也没太多,主要是外来的Activity如何通过启动时的验证问题(自己也没弄过,但之前看了一些相关的文章)。

面试官:应该是对我知道插件化、热修复的内容比较满意,又问了Service的启动过程

笔者:没说很好,因为没想到会问这个,之前看的内容也记不大清楚了。

面试官:没关系,很多面试者都是这样的,知道Activity,但不清楚Service的。关于TCP的三路握手,知道多少?

笔者:说了一下TCP的三路握手和断开时的四路握手。面试官又追问为什么这样设计。

中间还问了许多内容,但真的记不起来了。 。 。

面试官:知道进程和线程区别吗?

笔者:按照Linux的进程与线程内容说的,毕竟android是基于Linux的,应该也差不了多少。然后提到了用kill命令向进程发送信号。

面试官:kill不是用来杀死进程的吗?

笔者:(吃了一惊,以为自己搞错了,但又思考了一下)那是它的默认调用,事实上,kill命令可以加上一些参数,来实现向进程发送一些其它的信号。然后手写了一个kill发送其它信号的例子,拍照发给了他,并向他解释。

面试官:(沉默了一会儿)那我再问你一个算法题吧,如何知道一个链表里是否有环?

笔者:(刚好在书上看到了,所以马上答出来了)追击问题,去用。。(只说了一下原理,没有写代码)

面试官:好吧,今天面试就到这里。你有什么问题吗?(一小时了,估计他也厌烦了)

笔者:您觉得我有哪些不足吗?(感觉没戏了,因为很多东西,笔者答得不是很好)

面试官:总的来说是不错的,但一些基础部分,还是需要巩固。说了很多,记不大清了。

二面

过了差不多一星期,然后来的消息,通知二面。也是加面试官QQ,然后QQ视频。 面试官在一个小房间里,白色的桌子,人有点胖,拿了一个mac的笔记本电脑。 开始还是自我介绍,和第一次说的差不多。 这次忘的更多了,只能说几个印象深刻的。

面试官:如何知道一个应用是否发生了ANR?

笔者:(有点惊讶,没想到会问这个)说了一下ANR的定义,然后在面试官的提醒下,说出来了怎么发现ANR。

面试官:Flutter有多少的了解?

笔者:这是Google的一个新技术,主要目的是打通android和ios的壁垒,一套代码,多处运行。而且,Flutter野心极大,好像pc端,也想涉及。但具体内容的话,没有用过。新技术方面,主要用过Kotlin,然后说了一些Kotlin的内容

面试官:关于Kotlin的协程,知道多少?

笔者:很蒙蔽,不知道什么东西,自然也不会。。。

面试官:发了一张图片过来,是段代码。让对两个有序链表进行合并。

笔者:写了最通用的解法,写得很慢,因为记得有个更优解,但一时想不起来了。期间一直在问面试官细节,但他都不说话。写了一大推,参数判断啥的,能写的都写了,写了很久,最后拍照发给他。 这个应该不是最好的,我记得Leetcode有个更好的解法,之前看到过,但一时想不起来了。

面试官:没说什么。泛型呢?

笔者:(好像面试官口音的问题,开始以为是啥新技术,搞了半天,才知道是泛型)说了一下java泛型的实现原理,然后和C++的模板进行了一下对比。

面试官:最后让问个问题,问的和一面差不多,自己有什么不足。

三面

差不多又是一个星期,然后有消息。但这次是电面,结果时间不好,那段时间在实习,电话来的时候,还在车上,结果那天还有点堵车。最后跑回家的,打电话给面试官,开始面试。

听声音应该不是很年轻,声音也比前两位面试官和蔼多了,感觉更亲切。让笔者不要太紧张。 问的问题不是很多,挑几个重要的讲:

面试官:jvm有多少的了解?

笔者:说了下jvm的内存模型什么的,然后问到了类加载机制,没说得很好。

面试官:java的引用类型,知道多少?有何应用?

笔者:这个是常考点了,自己复习的也比较好,说的很流利。应用的话,主要说了用来解决内存泄露什么的,然后又说了内存泄露的一些东西。

面试官:简历上的项目经历,能说一下吗?又遇到什么问题吗?怎么解决的?

笔者:主要提到了自己大二时参加的一个学生项目,当时有大牛带,还是可以说许多东西的。

问题的话,提到了最近自己写的一个小东西,java和kotlin的混编。问题是,kotlin里找不到java的一个方法,IDE里面没问题,编译时报错。最后发现原因,编译器在编译时,编译顺序为:Kotlin、java预编译、java。而java里,我用了一个预编译框架,生成那个方法,因为编译顺序的问题,编译时,kotlin里自然找不到那个方法了,因为那个时候,该方法还未生成。

解决方法的话,当然是不用那个框架了,有点水。。。但可以解决问题。

因为面试官提到说等下还有另一个面试,所以这次电面,只弄了三十多分钟;而前两次,都是一个多小时。

HR面

几乎又是一个星期,刚好那天还有其它事,实习请了假,可以专心准备面试。上午十点,电话面试。

起初笔者以为仍然是技术面,所以当天还在看一些技术的文章,所以电话打过来的时候说是HR面的时候,还有点吃惊,没想到这么快。

面试官:为什么想加入腾讯?

笔者:扯了一些平台对个人发展的重要性。然后指出腾讯是一个足够包容的公司,容得下不同的看法,个人很喜欢这点。之前看过一个黑腾讯的文章,热度很高,腾讯官方知道后,只是简单提醒作者不要中伤他人,还允许其文章在QQ、微信上转载。

面试官:个人的兴趣爱好?

笔者:说了下喜欢看书,平时不怎么玩游戏(手残党,基本都只能坑队友,所以玩得少)。最近在看一些英文小说,所以自认为英语能力还不错。

面试官:有女朋友吗?

笔者:没有。。。(单身狗的无奈,有点奇怪为什么问这个)

面试官:成绩如何?

笔者:个人成绩不是很好,因为自己对于大学课程,目标是可以及格,顺利毕业就行了。其他的精力,花在学习技术上面了。比如,自己学习Linux的时候,装Win10和Ubuntu的双系统,就花了将近一个月(游戏本装Ubuntu是个大坑。。)

后面还问了下报道时间啥的,然后就差不多结束了。这点小伙伴们要注意一下啊,公司只会取你说的最早时间,不会管后面的其他时间的。所以,你说的最早的那个时间,就是你的报道时间了(于是乎美好的大学时光便将提前结束了。。)

/   奇安信(360)   /

思考分析


来学校开了宣讲会,本来跟笔者没关系的,没有招android的。笔者的一个做java的好友想去面试,但胆子太小,把笔者一起拉去了,于是投的Linux开发。

笔试

一半C++,一半Linux知识。C++的基本上没答出来几个,Linux的大部分猜出来了,自己开发环境就用的Ubuntu,所以Linux相关的知识比较熟悉。算法题也是java写的,虽然这个岗位是用C++。

技术面(2轮)

因为做android的,对C++很多东西不熟悉。直接告诉面试官,是听了宣讲会,感兴趣才来的(不可能说是陪别人来的吧。。)

主要问的一些Linux知识,和自己android的项目经历。整体还是很容易的,估计是照顾笔者不熟悉C++的缘故吧?

HR面(挂了)

因为面试官提及她是负责全国招聘的,不只是广东区域的,所以问了她其他分司有做android的吗。然后面试官就提到了成都的分公司有做android逆向,可以帮笔者问一下。 于是就问了面试官许多成都分公司的事情(这个大家要注意啊,估计笔者HR面不通过的原因就是这个。 。 )

那位java好友:顺利拿了offer。但因为java后台是在南京和北京的分公司,广东只有做PHP的,于是转PHP了。他本人是广州土著,所以不想出广东省。

/   VIVO   /

一轮技术面,一轮HR。过了,但最后放弃了offer。

技术面

主要问了项目经历和一些android基础,期间笔者还说了十几分钟的Kotlin知识,结果面试官说不用Kotlin。。。 感觉技术面只有一轮还是太少了,笔者感觉自己很多东西说得也不是很好。

HR面

小姐姐很漂亮,说话也很亲切。主要问了笔者一些实习期间的经历(写简历时刚开始实习,所以没写上去),说了一下自己实习期间的收获,主要是团队开发与个人单干的区别,团队精神啥的,技术上的东西没说到,可能HR小姐姐也不知道吧,就没提及。。。

/   美团   /

没有笔试,直接一面。因为没有认真对待,主要个人还是想留在广东,所以一面后直接结束。 貌似美团今年android有点缺人,招聘信息上android岗都是红色的。

在成都面的,成都这边的话,感觉大厂也挺多的(腾讯的天美、微信事业群,阿里的蚂蚁金服,美团,抖音);缺点的话,感觉竞争压力有点大,很多陕西、重庆的小伙伴也过来面试了,貌似他们那里没有什么合适的互联网大厂。

主要问了android的消息机制、jvm内存模型、Object类、HTTPS与HTTP的区别,最后手写一道算法题(对一个数组位移N位)。因为没有认真准备,所以走了个过场,就结束了。

/   网易   /

两轮技术面,一轮HR,目前还没有消息。不过就算过了,肯定也会拒绝的,因为已经决定去鹅厂了。 最有印象的就是,网易的秋招,本科生非常多,感觉至少有50%; 其他公司,基本上除了笔者,其他全是研究生,加上笔者,可能就两三个本科生。 当然,和其他公司相比,网易的笔试感觉是最难的,几道算法题除了得到结果,不做优化的话,都会超时。

另外的话,网易的HR小姐姐是所有面试公司中,颜值最高的,很惊艳。

技术面

基本上和网上差不多,没什么可讲的。 印象深刻的是,二面的面试官问的几个问题。

面试官:你喜欢用Google,是怎么弄的?

笔者:用的Shadowsocks,但具体原理不太了解。

面试官:为何不考研?

笔者:家里条件不允许,可以的话,想出国,去美国。但现在的局势下,好像未来10年,都没什么希望了。。。

面试官:个人的未来规划?

笔者:短期是先提升个人能力,争取尽快成为中级开发人员;后面的话,希望能自己写点技术书籍、开个技术公众号啥的,和大家分享技术;更长远的话,希望可以参与一些大型开源项目的开发,为开源社区贡献自己的力量。。。

HR面

也没什么,但有个问题印象很深刻,这也是大家面试时的需要注意的。

面试官:你对个人的薪资待遇,有什么要求吗?

笔者:这个的话,个人倒不是十分地在意,最起码,能保证我每个月的饮食住房等基本开销就行了。比起这个,我更关心个人的成长问题。比如说,工作2年之后,我的技术水平有多大的提高,是否和刚毕业一样,没有什么改变呢?这些问题,才是我关注的重点。

/   其他公司   /

因为各种原因,自己主动提前结束面试的。

小米:没有笔试,直接一面。时间冲突,拒了。

华为:鹅厂的事情定下来了,就没考虑再去面试其他公司了,浪费别人和自己的时间,而且答应了的事情,自然应该做到,没必要三心二意。拒了一面。

OPPO:理由同上,没有参加笔试。

/   个人学习   /

英语

迈向中高级程序员的必备技能,没什么好说的。主要要求的是你的读写能力,听说的话,基本不会用到。基本要求(不要求一步到位,但需要逐渐精进):

阅读源码、github、overstackflow、android官网、官方文档等的内容。

Google查阅东西,一般来说,技术问题的答案质量排序为:Google英文、Google中文、百度(真的不是在黑。。。)

代码命名:好的命名可以抵过一大堆的注释。

英文原著阅读:能到这一步的话(要很久,不要急于速成),就程序员而言,英文能力基本就够用了。

Linux

作为一个程序员,不会Linux,感觉就像无照驾驶,更别说android是基于Linux而来的了。

shell

简单的shell脚本编写和常用的几个命令要掌握吧,比如find、grep、kill、ps。。。

Linux C编程

NDK编程之前的基本技术储备,对于理解android底层的一些东西,也有很大的帮助。

vim

学会之后,可以解锁一个浏览器插件——Vimium;相比鼠标在浏览器里点点,这玩意儿的装逼程度,急剧上升。

技术公众号

公众号的缺点的话主要是知识比较零散,优点的话是随时随地可以查阅。不需要每次的文章都看,挑你自己需要的就行了。 这里推荐几个大佬的公众号: 郭霖、玉刚说、后厂村刘皇叔、大飞码字。 。 。 不仅是技术,大佬们很多非技术方面的东西,也是值得学习的。

/   书籍   /

极重要的学习方式,相比其他东西,书籍的内容更加系统化和全面。当然,所花的时间和精力也是极大的。一本书,几个月到半年,都是常态,更不要说一些书,需要反复研读了。这里推荐几本笔者读过的,认为质量比较高,或者有特定价值的书:

  • 《第一行代码》android入门第一书
  • 《Android开发艺术探索》把这本书的内容吃透,你面试的android知识,基本上就没问题了
  • 《Effective Java》java程序员分两种,看过这本书的,和没看过这本书的。
  • 《UNIX环境高级编程》《UNIX网络编程 套接字联网API》《UNIX网络编程 进程间通信》Unix三部曲,看完之后,你对Unix、Linux、操作系统和计算机网络,都会有一个全新的认识。
  • 《Android C++高级编程 使用NDK》NDK开发入门用,缺点的话是书有点老,上面的项目构建还是make,而现在都用cmake了
  • 《Kotlin实战》入门kotlin用,未来可能替换Java进行android开发,虽然现在国内没有几个公司用(笑。 。 。 )
  • 《漫画算法》算法零基础同学的福音,相比其他算法书,这本书更适合用来进行算法入门,java编写。
  • 《Java编程思想》笔者实习时的老大和现在鹅厂所在部门的老大都提到的一本书,重要性不言而喻。 国内也有英文版,还比较便宜,有能力的小伙伴可以尝试一下。

/   其他问题   /

面试官:我们部门的研究生很多,你一个本科生,有什么想法吗?

笔者的小伙伴遇到过的一个问题,别扯什么学历无用论,完全作死的节奏。提供一个例子,大家可以参考一下:
        
对于这个的话,其实我本人到不觉得是一个劣势,反而感觉是一个非常好的机会。正所谓,近朱者赤近墨者黑。能和这么多优秀的人一起共事,我相信:对我个人的能力也是一个极大的锻炼,会对我个人的成长产生极大的帮助。所以,我也希望能有机会在这样的工作环境下工作。

大厂有学历歧视吗?

大概率有,笔者面试的公司里,基本以研究生为主,本科生都很少。而且,不知什么原因,也只见过一本的同学,二本、三本的同学,都没遇到过。当然这不代表这些同学就没机会了,你的能力够强,还是有可能进大厂的。人家让你过来面试,就是有招你进来的想法的,剩下的,就看你自己的造化了。

多余的话

另外笔者发现一个很严重的问题,许多研究生的小伙伴,虽然技术上很厉害,但面试的时候太沉闷了。比如面试官问一个东西A,如果不会,就直接说不会了;而一般情况下,你如果不会A,说与之相关的B,也是可以的。

面试官又不知道你的技术水平如何,你如果不主动去说,然后又运气不好,连续遇到几个不会的问题,就直接再见了。因为你这样给面试官的感觉,就是你什么都不会,面试官不会去再花时间来问你更多问题的。面试官的时间也很宝贵,而且那么多面试者,不可能每个人都能面面俱到的。

所以,面试的时候,一定要主动点。可以的话,一定要多说。比如说道知识点A的时候,最后也最好能把相关的知识点B也提一下。

推荐阅读:



欢迎关注我的公众号
学习技术或投稿

640.png?

640?wx_fmt=jpeg
长按上图,识别图中二维码即可关注

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值