7年前Android异军突起,成了新的万亿级市场,无数掘金人涌入,期待可以一展拳脚。
那时候大环境下的手游圈,只要你能有个可以运行的连连看就能找到工作,走上赛道被浪潮推着前进,这个行业不可谓不光明。
2020了,浪潮速度放缓,漫天飞舞着唱衰Android的讯息,“凉凉”是最多的字眼。
但放心,Android真的没凉!
Android入门相对简单,初级Android很多很多,趋近饱和,你随意打开一个招聘app就能很直观的判断出来,现在Android准入的条件越来越高了。
当一个行业的标准越来越高,基础的东西越来越稳定,这哪叫凉,叫成熟。
一个广州非985/211普通本科生,计算机科学与技术专业。以前老是梦想能考一个厉害一点的学府,学习物理专业(因为初中和高中对物理比较有兴趣),无奈高考考得不尽人意。来到了计算机专业,才知道有C语言这玩意。
2013年大一,专业C语言成绩太差,被分配到B班学习。临近学校工作室(有真实项目锻炼)招新,那时候基础太差,又不愿意做一个loser。正巧同乡会有一位学长进了该工作室,我向他了解了该工作室的情况,得知有移动Android开发方向。那年,因为当时用过索尼手机,上面的小游戏有“Java”标志,女朋友喜欢小游戏,于是打算学东西开发一个小游戏给她玩。于是努力地啃下了Java基础便去面试,也很幸运地进了工作室。学完Java回头反而把C语言知识打通,成绩一直居B班首位。别人老说“学习其他语言前先学好C语言,看来我是一个奇葩。
2014年,跟着工作室开始做项目。前后差不多完成了5个Android方向的项目,主做的有3个。这一年,边学习Java边学习Android开发
2015年,春招前。我借助工作室的项目经验,制作了简单的简历之后,假装成大一届的师兄去参加学校举办的招聘会。面了三家,最后有一家对我印象挺好给了我 offer(感觉很罪恶)。但是这三家面试让我了解了我简历上的薄弱点,知道了那些知识点我只会用但是原理,那些知识点必须深挖才能在面试上突出自己的能力。于是我到 2015年秋招前都在为这部分做准备,那时候一心就只想进微信。
从 2015 年春招到2016年春招,一共投了 CVTE,阿里巴巴,腾讯,唯品会,4399,珍优科技,YY,百度,迅雷,京东,酷狗,汇丰,技德,美团,网易。这一年的经历起起伏伏,心情和体重都有较大的波动。原因是我被拥抱了变化,打乱了我的方向,但是我又坚持了下来,收获了自己心仪的 offer。
这里要画重点
对于学习计算机的同学而已,大三这个时期很重要,原因是很多大厂会提前招聘实习生,此时只要你技术基础相对较好,学习态度端正积极,借助自己有实习或者工作室的项目经验,很有很大可能通过实习招聘提前进入心仪公司的,并且实习生的转正几率很大,所以如果大三下学期可以到大厂实习并争取转正,大四就有足够多充足的时间可以自己慢慢安排!学习,旅游,谈恋爱!都可以!
如果大学可以重来,我一定,一定大一就开始努力学习
CVTE是春招中比较快的,也是我面试的第一家企业。
结果:在宿舍等了一个晚上,挂了。好揪心好不甘心。于是开始继续复习,准备腾讯春招和阿里。
由于过年在家那段时间,工作室的师兄帮我们内推了阿里巴巴春招岗位。自己对部分不熟悉就写了淘宝和UC,后来内推名额满了,一个研究生师兄帮我内推到yunOS事业部。现在看来,我更推荐学Android的朋友选择支付宝和淘宝。
结果:阿里内推通过,选择阿里巴巴yunOS事业部实习
这次面试是和我工作室安卓组的一位朋友去微信总部直接面试。因为之前我们因为感兴趣参加了华工的微信课程学习,朋友得到了面试机会并也跟着前去,那时候是5个人一起去的。
结果:跪了。工作室的朋友面试功过;另外一位华工的朋友也没进。让我们去参加腾讯春招。这次面试看到自己的在网络方面很不熟悉,网络课程要等到下学期才开始,所以只能提前自己恶补了。
结果:没能参加鹅厂实习〒_〒。现在工作回想起当初如果去 QQ 可能就不会出现后续的曲折,但是想想每个决定都是自己做的,只能自己承受。
到此,春招告一段落,最后选择了yunOS事业部实习。整个过程面试安排得很紧密,会觉得面试后很累。建议参加春招的小伙伴能选择3-4家自己追求的企业针对性去复习,不推荐海投。我本已为春招进了阿里后,能学习留在杭州,接下来一年的大四生活可以安排更多的学习机会〒_〒。然后最后并没有,那一年的实习成功拥抱了变化,虽然能转正到北京或者在杭州转正做C++,但是并非自己所好。
当大三春招没有办法提前去实习转正的时候,大三秋招其实到了关键的时候。一般在我们学校学计算的,基本大三秋招确定了 offer,大四去实习,这个是大部分人选择的规划。所以在yunOS实习之后,从杭州飞回广州,回来的时候是9月5号,进入秋招时段。
因为知道事业部今年实习生基本都没有转正机会,身边很多实习的研究生师兄自己在阿里平台上联系其他事业群。无奈我还天真的以为事业部会安排我们面试其他事业部,然而并没有〒_〒,让我感觉到巨坑。后来自己在阿里平台上搜了做Andoird工作的很多工程师后,有一个主管愿意接纳我。面试了一些内容后,在后续面试过程中由于岗位需要在北京工作,而且可能需要转前端,不符合自己的发展意愿,所以就明确说了,也很感谢这位大哥给我机会。
回到广州的时候已经9月初,那时候刚下飞机朋友就说明天一起去腾讯笔试〒_〒
结果:这次的失利让自己变得很急很慌。腾讯本来以前自己大学最想进的公司,结果在最关键的秋招失败了,而且自己的阿里实习的时候并不是做安卓技术开发工作,一定程度上让自己的项目停在春招水平,虽然也有在深入学习其他知识,但自己开始紧张。
结果:跪了。原因,至今未知,不过也好像懂得些什么…
结果:挂了。自己的发展方向和公司有所差异,这一天也因为来面试4399放弃了魅族笔试。
笔试(11/12):在中大听完宣讲会后当场笔试,笔试题比较基础。 酷狗测评(11/13):群面〒_〒,技术群面,给一个辩题让我们进行无领导小组讨论。还好之前学过一点点辩论,混过去了o(∩_∩)o 二面(11/15):在面试完YY后直接没吃饭就来面试。问了数据存储方式;了解框架源码吗;imageloader底层设计;内存泄露有哪些;handler机制及其内存泄露(当时用EventBus混过去);跨进程通信;如何保持进程间变量一致性;找出10001个数中,两两相同只有一个不同,找出不同(全部一次异或) HR面(11/15):理想的工作你会考虑哪些因素;工作地点;看过那些书;有没有女朋友;她打算以后怎样;在校学习情况;社团活动及其学习计划;如果兄弟失恋了怎么办;理想工资;介意公司规模吗;还有提问环节,我问了会有下轮马?具体下轮面试时间; 总裁面(11/20):问了技术规划;学习习惯;针对自己最熟悉的知识点提问;交流了酷狗音乐的部分技术实现和用户体验;整个过程很nice,面试官是一个很沉稳资深且很有魅力的人 结果:过了。
因为自己在简寻上写过简历,所以接到了北京技德的面试通知,经过和HR沟通后基本每周面一次或者隔周面一次,整个面试过程差不多一个月。技德的面试都是在线编码 一面(11/6):编写一个字符串压缩算法; 二面(11/13):编写一个文件系统,需要自己设计数据结构,给定一个文件名,输出其目录下的所有文件; 三面:编写一个算法,用最快的算法找出两个递增数组的中位数;然后了解职业规划等等;(记忆模糊,不知道是不是这个算法…) 结果:过了。技德的面试很新颖,全部是在线同步编码,面试官看着你便编码便问你问题,考察实际工作的编码能力和在线debug能力。第一面的时候感觉比较大压力,后来就不会了。反而很享受整个过程(幸好以前很注意编码风格o(∩_∩)o)。
笔试:YY的笔试好像是在华工进行的,笔试题难度适中。 一面(11/15):每天的面试安排都安排得很紧密,对自己说“把每天的面试都当作最后一场面试”,因为又得等待4399,又得继续前进。问了多线程断点下载;数据存储方式;UI开发优化;TCP滑动窗口;字符串匹配算法;双链表的优点;Binder机制;设计模式;JNI编程;Service运行在哪里线程;Activity启动模式及其启动过程;性能优化 结果:跪了。无比难受,感觉自己回答得很不错,知道结果后继续整理笔记,自己就要像“打不死的小强”继续寻找。
笔试:在线通过了美团的笔试,难度适中,算法题在剑指offer中出现过。 一面(11/16):在英歌海假日酒店。面了快一个钟,问了进线程通信及其区别;tcpudp区别;手写三次握手;Http请求方式;get和post有哪些区别;java同步方式有哪些;手写二叉树中序非递归;数据库事物及其底层索引实现;Activity启动模式;两种Service启动方式及区别;Handler机制;安卓进线程通信;view绘制原理;广播注册方式;实习项目做什么; 结果:没过。那天去面试美团的时候就已经有知道会跪了,并不是准备不好,而是当时因为其他事情心情很复杂,在公交车上脑子一片空白,虽然在面试问题基本都能答出来,可是细节没有掌握好,回来后知道可能没过,特地重新复习了一遍面试题,〒_〒心里苦,一直很紧凑的面试行程中,很累。*
笔试:在线测试+英语测试(〒_〒我的天) 一面:这次一面我的补面的,因为之前去参加酷狗的面试而放弃了。酷狗面试结束后参加。英语+粤语面试,问Java基础;Android基础;阿里项目;提问环节知道是基本做外包工作,业务是外汇,不太感兴趣。 HR电面:直接谈工资,自己说了期望薪资,对方满足后自己因为业务及发展规划不符合,故拒之。 结果:拒之…
微众银行的面试已经在秋招末。在微信公众号得知有次机会,故奋不顾身去参加。 笔试:和腾讯笔试题差不多。(记忆模糊) 一面:也是在东圃酒店。〒_〒面我的是C++工程师,问我会不会C++,我说不会后…狂问算法,我记得是4道,具体不太记得。其中三道都能手写出来,最后一道是小存储存大数据,用的是位图方法。由于自己在面试的时候想不起来(后来回来复习大数据题目的时候才掌握),故只能用hashmap存储,效率不高。 结果:面试官让我等,结果无果〒_〒
实际上从HRG在杭州告知我回来后会有一个终面部门交叉面,结果在腾讯失利的第二天。直接电话说“对不起…”我直接说理解后挂了电话。 在面试汇丰过后,一段时间,差不多到了11月末,面试了阿里健康。得知从集团简历池中选了我之后安排面试,谈了转正待遇后安排面试,两面都视频面试。 一面:安卓基础;项目技术;性能优化;学习目标;Java基础及其内存回收等 二面:项目技术;安卓Framework知识点;性能优化;开源框架知识;提问环节问了所做业务等 结果:过了,资薪待遇谈了也清楚了。因为实习时间及所在地点时间与自身情况冲突,也不是自己最想要去的部门就拒绝了。
面到这里基本秋招都已经结束了,学校基本快放假。得到迅雷的面试是由工作室学长B推荐的。由于部门比较缺人,所以直接技术面 技术VP面:项目技术细节,面试官抓了很多项目细节问,比如说多线程断点下载的每一步,每一个代码逻辑等;性能优化,这一方面我是有过准备的,回答得比较系统,比较满意;最新安卓技术了解情况;Java技术细节,问得很深,从程序启动到垃圾回收,〒_〒不愧是vp;最后问了下Java异常和安卓异常的区别,答得不太好;问了发展意愿及其职业规划等等。 结果:直接发offer…很感谢迅雷的HR和技术vp,人真的很nice,后来考虑到发展地点及其工作,没有接受offer,很可惜。到现在心里还一直对负责我入职的HR和技术Vp心存愧意。
也许是我不愿意放弃,不愿意将就,所以我才会选择坚持,感谢网易不拘一格。
放假了,基本同学朋友都回去家里了,整个宿舍只有我一个人,年末了,也该收拾东西回家了。
网易的招聘,是我在校招日历上看到的,当时和一位学java后台的哥们一起投的。然后赶紧在校复习知识点和开始画安卓知识架构(我喜欢用画图的形式让自己掌握的知识互相关联),然后开始在牛客网(之前面试的企业历年笔试题基本都在上面能找到,是一个刷题的平台)及论坛找网易笔试题和面试,基本刷完了网易互联网和网易游戏的题目,虽然有些不懂可是还是需要硬啃下去。接近笔试前昔,我们还是没有收到笔试通知。哥们的表姐也投了网易,不过人家是名校硕士〒_〒,收到了面试通知,我俩妥妥地跪了。我不甘心,我认为自己能够做得出网易的笔试,如果能有一丝机会,死也要让我死得明白。于是我俩去“霸笔”…几间笔试科室,广州地区几十个运营岗笔试名额,几十个产品笔试名额,只有6个技术笔试名额,这让我瞬间很慌很难受。
哥们让我走,估计我们没机会,可是我那一刻真的很难受很不甘心。
我硬着头皮进去问HR说 “我来自…,我投了贵公司的技术岗位后没有收到通知,请问可以给我笔试机会吗?”
另一个HR说 “没收到通知是不可以笔试的,除非有人没来笔试,试卷只有6张”。
我把自己的简历递给前面HR。
“这个是我的简历,如果技术岗有人没来面试可以不可以给我一次机会,我在外面等候,谢谢你!”
我出去外面后,刚才接了我简历的HR出来了说“你们都是没有接到通知的吗?(还有一个产品来霸笔),在这里等一下,如果有机会我就来通知你们。”
后来笔试开始了,有些参加技术岗的还没有来,可是没有人通知我们进去笔试。我哥说等到30分如果没有就走了,后来30分过了,还是没有人通知我们。我不愿意走。
“要不你先走吧,除非HR出来说没有机会,不然我多等一下吧。”
笔试开始了一段时间,有一位HR走了出来,说 “你们都是来笔试的吗?进来吧,把简历给我。”
我幸福地跟着进去,而哥们却说“我就不了…”先回学校。
我很激动,自信地完成了那份笔试题,到现在,我还依然能记得那时候的感觉。哪怕失败,也要让我知道我不行。
一面:一面是在网易大厦附近的E时光,三个面试官,一个Java面试官和两个Android面试官。问了:Java基础;线程安全处理;手写解决判断链表是否有环(当时写了思路);手写例模式(进程安全版+枚举);Java程序启动过程(5个过程);Java内存回收机制(包括回收算法);安卓基础;Handler机制及其源码(面试官细节到具体代码及方法,〒_〒很年轻的面试官,技术好扎实);消息传递机制(具体到View和ViewGroup的区别);框架了解及其imageloader;Lru算法及其软弱引用的使用;分辨率适配等等。
HR面:网易大厦,问了面试公司及其offer情况,如实回答,希望能在广州;发展规划及其学习习惯;网易招聘的优缺点;阿里平台资源的优点;网易bobo产品及其同行产品的了解比较;提问问了是否还有面试,具体工作还有是否可以提前实习,实习安排。
面到这里,已经年末了。HR说可以提前回去家里,我还是依然留在学校几天。整理这几天的面试问题还有面试经验,整个宿舍楼没有人,只有我和几只流浪猫。偶尔做做饭,它们也会来我宿舍,我也会给它们吃的,感觉自己变得很安静。在回家的大巴上收到了网易的终面,表明年后还有终面。面了那么多公司,累也该累了,反而觉得很释然。带着这个面试消息回到家了,始终没能放得下。除了在家了帮帮这帮帮那,在朋友家聊聊天,基本都是在看书,也买了一本新出版的安卓技术的书,过年那段时间看完了。初九那天回到学校,继续复习,整理在家学习的和以前的知识点,打算面完网易后休息一段时间,希望能倾尽自己所有心力去完成这次面试。
终面:HR面+总裁助理面。因为不知道是否是技术面,所以把所有的技术点用三天都复习完了,用一天准备了HR面及其自身情况的问题,主要理清楚说话的逻辑思维。HR面,是我年前的HR,很亲切。和她聊了下年前到年后这段时间的学习情况及其学习了哪些新的知识点;自己每天的学习规划;bobo产品竞品分析;使用过的一些工具,比如思维导图为知笔记(因为之前裸ubunut系统,所以只能用为知笔记);职业规划;实习内容及其轮岗事宜;期望工资及其在手offer薪资;行业薪资等;整个过程氛围很nice;面试完后搭车快回到孤岛的时候收到电话通知到需要再面试〒_〒,是另一位面试官。当时心里其实蛮紧张(难道对我之前所述技术有疑惑?还是我表达的内容公司还有争议?)。在车上我回想着整个几轮面试的过程,细节到我所说到的内容,技术在脑海里过了一遍。对自己说“来吧!如果你想问我技术,来吧,我都做好准备了!”就这样,我很有信心地冲了回去(快6点了,怕面试官下班)。结果回到公司竟然发现面试官是一位很年轻亲切的总裁助理,她和我表明了回来面试的原因和给了一杯水(〒_〒,感觉好感动),表达了歉意后开始面试,问了生活情况;学习背景;兴趣爱好;长期规划;聊到网易bobo的产品及其同行同类产品;事业部发展前景;网易公司文化;面试官自身在网易的经历;女朋友及其未来规划;学习习惯等等。整个面试过程更像是在聊天,是一个了解双方和建立信任的过程,很nice。
结果:过了。也欣然接受了offer。
在面试阿里腾讯三四次的过程中,虽然有收获到其他 offer ,但并不是我大学时期心仪的 offer。所以到最后,还想去网易搏一搏。结果这一搏,就一直待到了现在。我觉得人生很有意思。高中的时候,我努力想考一个物理专业,但是后来我却进了计算机专业。大学的时候,我努力想进腾讯或者阿里的技术部门,但是后来我却来了网易。就是如此梦幻。 假如你已经是应届生了,经历过一两次batm的面试失败没有关系,只要有机会就上。哪怕最后你最心仪的机会没有了,你要懂得抓住当前最合适你的机会。真的,很多时候未来发生什么你都不知道,或许当前的机会,才是最适合你发展的。
自己的知识准备得怎么样,这直接决定了你能否顺利通过一面和二面,所以在面试前来一个知识梳理,看需不需要提升自己的知识储备是很有必要的。
关于知识梳理,这里再分享一下我面试这段时间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)
资料获取方式:前往我的腾讯文档
知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结:
《960全网最全Android开发笔记》
《379页Android开发面试宝典》
历时半年,我们整理了这份市面上最全面的安卓面试题解析大全
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。
如何使用它?
1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数
《507页Android开发相关源码解析》
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
试的几率。
如何使用它?
1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数
[外链图片转存中…(img-V3y5XSvH-1618390770082)]
《507页Android开发相关源码解析》
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。