想要成为一名优秀的Android开发,你需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样~。
2020届的秋招提前批已近尾声,目前Android开发岗已拿到的offer有[百度],[字节跳动],[美团点评],[网易],岗位均为Android开发方向。距离毕业答辩还有点时间,写写我的互联网转行之路。
先介绍一下自己的背景,北航本硕,学习成绩中上,有两个学科竞赛奖项,一篇SCI。
计算机方面,没有实习,只有一个略微相关的项目能写到简历里面。专业知识全靠自学,所以过程也异常痛苦。准备时间从2019年寒假开始,到2020年八月底结束,前后跨度不到一年。
秋招期间,互联网总共投递20多份简历,笔试8次,面试9次,5家单位给出明确录用意向,最终的结果比自己的预期理想。
1.如何学习准备的?
学习路线:了解市场招聘需要哪些技术?了解常用的业务指标有什么?了解常用的分析方法工具有哪些?简历上需要什么项目来证明自己?
学习的门槛在于如何入门。如果入门了,那么接下来的学习就会很容易。因为接下来的学习就是边做项目、边面试,你会发现你的能力会有很大提升。要知道,面试也是提升能力的一种手段。
面试前要刷常见的面试题,面试过程需要你能够手写算法,所以面试前多锻炼在草稿纸上手写算法的习惯。
关于项目
每个人的项目经验起点不同,有人两袖清风,想着法子无中生有;也有人左拥右抱,却也无从下手。
我认为,寻找/选择项目需要遵循以下两个原则:
首先,什么是可扩展性知识点?是指一个知识点,作为一个根结点,它的延伸分支可以深入到很远。举个栗子。ListView,来大家跟我一起背,用于显示列表,需要一个adapter来对数组进行包装,通过RecycleBin进行缓存。……这就没了?不可以!请跟我继续:ListView如何对convertView复用?ListView中图片过多引起OOM如何解决?上下左右滑动冲突怎么做?ListView中可以包含大量图片,布局复杂导致卡顿怎么办?ListView如何实现下拉刷新上拉加载?用RecylerView代替ListView解决了什么问题?……
我想你大概明白什么叫可扩展性了。为什么需要这个东西?因为他能够 控场 !
因为这些延伸分支就是你的套路呀!提前准备好一两条分支上的基础知识、重难点、优化点,并在描述项目时做一些诱导,就可以非常心机地让面试官按照你早已精心准备的套路问问题~
你看,我并没有说出你们想要的答案:首选很难很剽悍的项目。因为再难再复杂的项目面试官都见过,你的难对于他们而言只是大巫见小巫,并不足以吸引他们。
当然,如果你足够自信,认为能把握住两大基本原则的同时激进发挥,把一个前无古人后无来者的项目说的精彩绝伦。那你是大佬,我甘拜下风。
对于没有项目的同学,可以在黑马、腾讯课程上跟着做一个简单的项目。在准备过程中需要融入自己的思考,化为己用。
2.简历需要避免哪些坑?
简历一定要按照招聘职位要求去写,重要的事情说三遍。很多人的简历写一堆有的没的,比如自我评价、社团、无关的课程也放上去。其实人家面试官根部不看你这些。
如果你没有相关的能力,请自己先准备一个月,做个像样的项目出来放到简历上,然后再去面试,不然就是白白浪费自己的时间。
有奖学金写奖学金,但是写一个最高级别的就可以,没必要把所有的奖学金都罗列出来。简历上最重要的部分就是你的项目经验。
很多优秀的大学生同学会有竞赛经历,但是你一个项目参加四五个比赛,然后把四五个比赛的奖项都写上去,意义在哪,想告诉面试官我很会比赛?请把比赛奖杯转换成项目经验。
对于自我评价请不要放在简历上,没有面试官会喜欢套话,下面的自我评价你细细品:
有较强的自主学习和自我管控能力;
有较强的创新能力;
细心, 善于换位思考, 易于相处;
有较强的抗压能力。
3.面试中遇到哪些问题?
我是从3月开始投递简历的,我自己的投简历方案是:海投小厂、尝试中厂、内推大厂。
对于没有面试过的小白来说,小厂的面试非常适合练手。中厂的面试难度接近大厂难度,如果中厂感觉非常顺利也意味着自己可以去大厂面试了。
大厂的面试风格很不同,有的偏向于算法,比如字节。有的偏向于实践,比如阿里。有的偏向于智力题和编程题,比如腾讯。
不过在面试前一定要查好公司的业务、部门的业务,掌握主动权。但一定要找人内推。
总结一下大家面试当中的几个极端:
一问三不知;
太飘、太嚣张;
太卑微导致太紧张;
语速过快
面试就像考试,考验的是你准备充分不充分,你说期末考考了个95分就能代表你所有的能力了吗?
不能,面试也是,面试通过了也只能代表你在这个岗位是匹配度比较高的。所以一定要准备充分,想着划水找到工作是不可能的。
以上三个极端都可以通过准备来解决,因为3个极端都是对面试考察的点不了解,无脑自行发挥导致的。
(1)一问三不知
简历问你的项目,问一下回答一下,能回答出一点东西,但是追究深层逻辑就不知道是啥了。
在面试前一定要把自己做过所有的项目都整理过一遍,深度思考、头脑风暴、逻辑自洽。
尝试找同学表达自己的项目并且让他问出多个问题,看看每个问题之间能不能用逻辑联系起来。把项目拆分成多个部分,项目准备阶段、实施阶段、解决困难问题阶段、结束复盘阶段。
判断的标准就是,是否可以在面试的任何时间点都可以穿插入项目的各个阶段,把握主动权,体现自己的专业能力。
(2)太飘、太嚣张
这个通常是在技术面或者hr面的时候会遇到。hr问你你的缺点是什么。有人说我的缺点就是太聪明(没关系,虽然不是很好)。
这时候有些面试官喜欢肯定应聘者,常常初入社会的面试者会因此飘起来,然后开始释放自我,什么话都开始说了,但是面试一定要懂得克制和发挥互相平衡。
说着说着面试官问你为什么聪明,然后就开始讲自己过去有什么经历,说着说着说自己想去创业了。
这种表达面试官听到后还敢要你? 面试是一次表现自己和岗位匹配度的机会,不是表现你个人有多么优秀的机会。
(3)太卑微导致太紧张
这个是会比较容易出现的,我的建议是主动做自我介绍,可以让自己放松下来。
(4)语速过快,急着表现
这样反而没有表现好,滴滴我唯一一次业务面试挂掉的,面试官问了一个滴滴出行在七八月有下降的原因可能有什么。
回答这类问题其实要用分析方法来结构化思维,比如思考五秒在脑海里罗列出大纲,分点回答。例如:
1.暑期来临,学生放假,旅游业火热。
2.同比、环比看看数据是否异常,加入时间维度。
3.有没有重大社会、经济事件干扰。
4.APP是否出现问题,bug导致用户体现下降。
5.是否是优惠券等活动导致。
6. 疫情影响
但是我当时在回答的时候,为了体现自己的反应速度就讲了暑假这个维度,所以让面试官感觉思维没有打开,就被拒了。面试被拒不可怕,一定不要气馁,觉得自己不行。
很多人面试被拒,只会自我归因,这不一定是正确的。有时候要自信,相信自己的能力,找出自己的问题,分析客观存在的问题,这样才能持续进步下去。
面试被拒的正确操作是:
我自己在表达过程当中有什么问题?
有什么可以改善的?
面试官是不是没有深入问下去,是她的问题?
4.面试经验有哪些?
在面试完之后可以这样问面试官,请问面试官您觉得优秀的员工应该是怎么样的。这时候面试官会开始说一堆,不知不觉得把这些优点往你身上靠,成功率增加+20%。
在面试完之后可以问面试官,请问我的下一次面试时间在什么时候。这也很有用,因为如果你问我的面试结果,通常面试官是不能告诉你的,因为公司规定,或者他要综合考量。
平时多积累,比如看书或者学习过的知识,面试过程当中也可以讲出来,面试官还会觉得你好学,更欣赏你。
5.现在日常工作是做什么?
因为是实习生,我现在的日常是维护数据埋点,现在很多公司数据埋点的规范化刚刚起步。
产出报表。一些大厂会有自己的数据中台,很多取数据的工作都已经让数据开发的同学做了,数据分析的同学拿到的数据经常都是比较规范的。因为自己比较年轻所以目前也在不停地总结实习的经验。
最后想说一句很多同学在应聘的时候会在过度自信和过度自卑两边徘徊,这是很正常的情况,这也是一种难得的经历。
但是要懂得的是自己要勇敢的去尝试大厂,不要给自己设限,觉得自己大学不好,没什么经历就不敢去尝试巨头公司。
又或者觉得自己太厉害不想去尝试小公司,每一次的面试就是一次照镜子的机会,你会对自己越来越了解。
本文在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…