作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2020 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?
就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Android程序员的技术功底。
我本人Android开发半年多,毕业之前实习了一段时间,趁着这次金九银十想换个场地,前前后后准备了大半年,终于在这次面试旺季收割了十几个大厂的offer,现在也已经入职腾讯,准备把这次面试的一些心得和一些准备写下来分享给有需要的人,也解答大部分存在的一些疑惑,希望大家都能够面试上自己心仪的公司。
那么如何才能通过一线互联网公司面试?
应该学什么才能有效地提高自身的竞争力呢?其实,首先我们应该优先深入学习工作中用到的技术,其次,关注这2年来Android最新的面试题所涉及的知识点,根据自身的实际情况有选择地进行针对性的学习和提升。只有这样,自身才不会被所谓的 互联网寒冬 吓倒。
2020面试季困惑你的十大问题
(1)Android开发前景?
我们通过智联招聘、拉勾网、Boss直聘、前程无忧发布的移动互联网招聘岗位需求发现:移动端的招聘量变少,但中高端的职位却多了起来,这说明行业只是变得成熟规范起来了。
竞争激烈,但产品质量与留存更加重要,我们进入了技术赋能业务的时代。大前端正在跨平台,移动开发者的未来更可能是跨终端,产品、运营、数据分析、后端,技多不压身。
(2)我是双非/三本/专科学校的,我有机会进入大厂吗?
我自己也是非985非211学校的,结合自己的经历以及一些朋友的经历,我觉得让我回答这个问题再好不过。 首先,我觉得学校歧视很正常,真的太正常了,如果要抱怨的话,你只能抱怨自己没有进入名校。
但是,千万不要动不动说自己学校差,动不动拿自己学校当做自己进不了大厂的借口,学历只是筛选简历的很多标准中的一个而已,如果你够优秀,简历够丰富,你也一样可以和名校同学一起同台竞争。
企业HR肯定是更喜欢高学历的人,毕竟985、211优秀人才比例肯定比普通学校高很多,HR团队肯定会优先在这些学校里选。这就好比相亲,你是愿意在很多优秀的人中选一个优秀的,还是愿意在很多普通的人中选一个优秀的呢?
双非本科甚至是二本、三本甚至是专科的同学也有很多进入大厂的,不过比率相比于名校的低很多而已。
从大厂招聘的结果上看,高学历人才的数量占据大头,那些成功进入BAT、美团,京东,网易等大厂的双非本科甚至是二本、三本甚至是专科的同学往往是因为具备丰富的项目经历或者在某个含金量比较高的竞赛比如ACM中取得了不错的成绩。
一部分学历不突出但能力出众的面试者能够进入大厂并不是说明学历不重要,而是学历的软肋能够通过其他的优势来弥补。
所以,如果你的学校不够好而你自己又想去大厂的话,建议你可以从这几点来做:
- 尽量在面试前最好有一个可以拿的出手的项目;
- 有实习条件的话,尽早出去实习,实习经历也会是你的简历的一个亮点(有能力在大厂实习最佳!);
- 参加一些含金量比较高的比赛,拿不拿得到名次没关系,重在锻炼。
(3)非计算机专业的学生能学好Android吗?我能进大厂吗?
当然可以!现在非科班的程序员很多,很大一部分原因是互联网行业的工资比较高。我们学校外面的培训班里面90%都是非科班,我觉得他们很多人学的都还不错。
另外,我的一个朋友本科是机械专业,大一开始自学安卓,技术贼溜,在我看来他比大部分本科是计算机的同学学的还要好。参考(2)的回答,即使你是非科班程序员,如果你想进入大厂的话,你也可以通过自己的其他优势来弥补。
我觉得我们不应该因为自己的专业给自己划界限或者贴标签,说实话,很多科班的同学可能并不如你,你以为科班的同学就会认真听讲吗?还不是几乎全靠自己课下自学!不过如果你是非科班的话,你想要学好,那么注定就要舍弃自己本专业的一些学习时间,这是无可厚非的。
建议非科班的同学,首先要打好计算机基础知识基础:
①计算机网络、
②操作系统、
③数据机构与算法,我个人觉得这3个对你最重要。
这些东西就像是内功,对你以后的长远发展非常有用。当然,如果你想要进大厂的话,这些知识也是一定会被问到的。
另外,“一定学好数据结构与算法!一定学好数据结构与算法!一定学好数据结构与算法!”,重要的东西说3遍。
(4)Android学习该学哪些东西?
- 掌握架构师筑基必备技能
- 掌握Android框架体系架构
- 学会360°全方位性能调优
- 通过设计思想解读开源框架
- 学习NDK模块开发
- 通过实战炼成移动架构师
- 学会开发微信小程序
- 掌握hybrid开发与Flutter
(5)我没有实习经历的话找工作是不是特别艰难?
没有实习经历没关系,只要你有拿得出手的项目或者大赛经历的话,你依然有可能拿到大厂的 offer 。笔主当时找工作的时候就没有实习经历以及大赛获奖经历,单纯就是凭借自己的项目经验撑起了整个面试。
如果你既没有实习经历,又没有拿得出手的项目或者大赛经历的话,我觉得在简历关,除非你有其他特别的亮点,不然,你应该就会被刷。
(6)我该如何准备Android面试呢?
面试刷题
- Android基础知识
- Activity
- Service
- Broadcast
- Receiver
- ContentProvider
- Intent
- Fragment
- Java面试题
- Java基础
- Java中的设计模式
- Android 高级
- Android性能优化
- Android屏幕适配
- AIDL
- Android中的事件处理
- Android中的动画
- ContentObserver
- 内容观察者作用及特点
- 项目框架的使用
- 自我介绍
- 开发中都使用过哪些框架、平台
- 都使用过哪些自定义控件
- 项目的流程
- 项目中常见的问题
- 即时通讯是是怎么做的
- 常见框架分析
- Flutter相关面试题全解析
- Dart部份
- Flutter 部份
- 腾讯、阿里、百度、美团、字节跳动、京东等Android高频面试真题集锦
(7)面试的简历准备注意事项有哪些呢?
下面是我总结的一些准备面试的Tips以及面试必备的注意事项:
简历
简历的重要性就不言而喻了,怎么样写好简历是个技术活,当然如果你有很好的背景(学校或者公司),那么不 管你怎么写,基本上都不刷掉你,我们作为一般的人还是需要下一番功夫的。拿我的简历作为例子,大概有以下几个部分:
个人信息:姓名、出生日期、教育背景、博客地址、github地址、联系方式(手机、邮箱和微信号)
工作经历:毕业后待过哪些公司,一般是倒序,项目尽量精简明了,可以参考SMART原则
专业技能:自己熟悉的一些技能,这个为什么我写到最后,因为对于工作三年的同学来说,面试官更加注重的是你的项目经历,大部分面试都是看你的项目经历来提问。
怎样写简历,这个开源网站不错,教你怎么写简历,而且有一个在线markdown在线网站,可以导出pdf。
面试该从哪几个方面复习?
下面是我整理的一个面试复习大纲,还有详细的答案,但是篇幅太长,就只一部分图片显示,有需要的伙伴文末免费领取就可以了~
- Activity面试题
- Fragment面试题
- Service面试题
- Broadcast Receiver面试题
- WebView面试题
- Binder面试题
- Handler面试题
- AsyncTask面试题
- HandlerThread面试题
- IntentService面试题
- 视图工作机制面试题
- 事件分发机制面试题
- ListView面试题
- Android项目构建面试题
- ANR面试题
- OOM面试题
- Bitmap面试题
- UI卡顿面试题
- 内存泄漏面试题
- 内存管理面试题
- 冷启动和热启动面试题
- 其他优化面试题
- 架构模式面试题
- 插件化面试题
- 热更新面试题
- 进程保活面试题
- Lint面试题
- Kotlin面试题
Activity面试题
Fragment面试题
Service面试题
Broadcast Receiver面试题
事件分发机制面试题
Kotlin面试题
Handler面试题
..........
要想面试成功进大厂,面试前的准备肯定是要很充分的,除了上面的面试资源分享,我还整理了以下安卓面试复习资源给大家,有需要的朋友自行领取~
其他的面试复习资源
其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
这里再分享一下我面试期间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)
《Android开发七大模块核心知识笔记》
《960全网最全Android开发笔记》
《379页Android开发面试宝典》
历时半年,我们整理了这份市面上最全面的安卓面试题解析大全
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。
如何使用它?
1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数
《507页Android开发相关源码解析》
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
资料太多,全部展示会影响篇幅,暂时就先列举这些部分截图,以上资源均免费分享,以上内容均放在了开源项目:【github】 中已收录,大家可以自行获取(或者关注主页扫描加微信获取)。