人潮汹涌,接近金九银十,有这份Android PDF助力offer必拿下
Posted 初一十五啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人潮汹涌,接近金九银十,有这份Android PDF助力offer必拿下相关的知识,希望对你有一定的参考价值。
这个文档GitHub上已经上千 stars了,我相信破万是迟早的事情。
GitHub:
在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。但说实话,想进大厂还真没那么容易。我的一个朋友在入职OPPO之前,大大小小的面试经历了十几次,最后终于在几轮技术面+HR 面之后成功接到 Offer,45k+ 薪!
身边的朋友或者公众号的粉丝很多人都向我询问过:“
1.我是双非/三本/专科学校的,我有机会进入大厂吗?”、
2.非计算机专业的学生能学好android吗?
3.我该如何准备Android面试?…
4.我没有实习经历的话找工作是不是特别艰难?
5.我没有项目经历/博客/Github开源项目怎么办?
6.大厂到底青睐什么样的应届生?
这些方面的问题。我会根据自己的一点经验对大部分人关心的这些问题进行答疑解惑。现在又刚好赶上考研结束,这篇文章也算是给考研结束准备往Android工程师方向发展的朋友们指名一条学习之路。道理懂了如果没有实际行动,那这篇文章对你或许没有任何意义。
问题一:我是双非/三本/专科学校的,我有机会进入大厂吗?
我自己也是非985非211学校的,结合自己的经历以及一些朋友的经历,我觉得让我回答这个问题再好不过。
首先,我觉得学校歧视很正常,真的太正常了,如果要抱怨的话,你只能怪自己没有能够进入名校。但是,千万不要动不动说自己学校差,动不动拿自己学校当做自己进不了大厂的借口,学历只是筛选简历的很多标准中的一个而已,只要你够优秀,简历够丰富,你也一样也可以和名校同学一起同台竞争。
企业HR肯定是更喜欢高学历的人,毕竟985,211优秀人才比例肯定比普通学校高很多,HR团队肯定会优先在这些学校里选。这就好比相亲,你是愿意在很多优秀的人中选一个优秀的,还是愿意在很多普通的人中选一个优秀的呢?
双非本科甚至是二本、三本甚至是专科的同学也有很多进入大厂的,不过比率相比于名校的低很多而已。从大厂招聘的结果上看,高学历人才的数量占据大头,那些成功进入BAT、美团,京东[网易等大厂的双非本科甚至是二本、三本甚至是专科的同学往往是因为具备丰富的项目经历或者在某个含金量比较高的竞赛比如ACM中取得了不错的成绩。一部分学历不突出但能力出众的面试者能够进入大厂并不是说明学历不重要,过其他的优而是学历的软肋能够通势来弥补。 所以,如果你的学校不够好而你自己又想去大厂的话,建议你可以从这几点来做:
①尽量在面试前最好有一个可以拿的出手的项目;
②有实习条件的话,尽早出去实习,实习经历也会是你的简历的一个亮点(有在大厂实习经历的最好!);
③多参加一些含金量比较高的比赛,拿不拿得到名次没关系,重在锻炼。
问题二:非计算机专业的学生能学好Android吗?我能进大厂吗?
当然可以!现在非科班的程序员很多,很大一部分原因是互联网行业的工资比较高。我们学校外面的培训班里面90%都是非科班,我觉得他们很多人学的都还不错。另外,我的一个朋友本科是机械专业,大一开始自学安卓,技术贼溜,在我看来他比大部分本科是计算机的同学学的还要好。拿前面的问题lai即使你是非科班程序员,如果你想进入大厂的话,你也可以通过自己的其他优势来弥补。
我觉得我们不应该因为自己的专业给自己划界限或者贴标签,说实话,很多科班的同学可能并不如你,你以为科班的同学就会认真听讲吗?还不是几乎全靠自己课下自学!不过如果你是非科班的话,你想要学好,那么注定就要舍弃自己本专业的一些学习时间,这是无可厚非的。
建议非科班的同学,首先要打好计算机基础知识基础:
①计算机网络、
②操作系统、
③数据结构与算法,
我个人觉得这3个对你最重要。这些东西就像是内功,对你以后的长远发展非常有用。当然,如果你想要进大厂的话,这些知识也是一定会被问到的。另外,“一定学好数据机构与算法!一定学好数据机构与算法!一定学好数据机构与算法!”,重要的东西说3遍。
问题三:我没有实习经历的话找工作是不是特别艰难?
没有实习经历没关系,只要你有拿得出手的项目或者大赛经历的话,你依然有可能拿到大厂的 offer 。我当时找工作的时候就没有实习经历以及大赛获奖经历,单纯就是凭借自己的项目经验撑起了整个面试。
如果你既没有实习经历,又没有拿得出手的项目或者大赛经历的话,我觉得在简历筛选过程中,除非你有其他特别的亮点,不然,你应该就会被刷。
问题四:我该如何准备面试呢?面试的注意事项有哪些呢?
下面是我总结的一些准备面试的Tips以及面试必备的注意事项:
-
准备一份自己的自我介绍,面试的时候根据面试对象适当进行修改(突出重点,突出自己的优势在哪里,切忌流水账);
-
注意随身带上自己的成绩单和简历复印件; (有的公司在面试前都会让你交一份成绩单和简历当做面试中的参考。)
-
如果需要笔试就提前刷一些笔试题,大部分在线笔试的类型是选择题+编程题,有的还会有简答题。(平时空闲时间多的可以刷一下笔试题目)网上有很多,但是不要只刷面试题,不动手code,程序员不是为了考试而存在的。)另外,注意抓重点,因为题目太多了,但是有很多题目几乎次次遇到,像这样的题目一定要搞定。
-
提前准备技术面试。 搞清楚自己面试中可能涉及哪些知识点、那些知识点是重点。面试中哪些问题会被经常问到、自己改如何回答。(强烈不推荐背题,
第一:通过背这种方式你能记住多少?能记住多久?
第二:背题的方式的学习很难坚持下去!) -
面试之前做好定向复习。 也就是专门针对你要面试的公司来复习。比如你在面试之前可以在网上找找有没有你要面试的公司的
-
准备好自己的项目介绍。 如果有项目的话,技术面试第一步,面试官一般都是让你自己介绍一下你的项目。你可以从下面几个方向来考虑:
①对项目整体设计的一个感受(面试官可能会让你画系统的架构图);
②在这个项目中你负责了什么、做了什么、担任了什么角色;
③ 从这个项目中你学会了那些东西,使用到了那些技术,学会了那些新技术的使用;
④项目描述中,最好可以体现自己的综合素质,比如你是如何协调项目组成员协同开发的或者在遇到某一个棘手的问题的时候你是如何解决的又或者说你在这个项目用了什么技术实现了什么功能比如:用redis做缓存提高访问速度和并发量、使用消息队列削峰和降流等等。
- 面试之后记得复盘。 面试遭遇失败是很正常的事情,所以善于总结自己的失败原因才是最重要的。如果失败,不要灰心;如果通过,切勿狂喜。
问题五:没有项目经历/博客/Github开源项目怎么办?
从现在开始做!
网上有很多非常不错的项目视频,你就跟着一步一步做,不光要做,还要改进,改善。另外,如果你的老师有相关Android开发项目的话,你也可以主动申请参与进来。
如果有自己的博客,也算是简历上的一个亮点。建议可以在掘金、Segmentfault、CSDN等技术交流社区写博客,当然,你也可以自己搭建一个博客(采用 Hexo+Githu Pages 搭建非常简单)。写一些什么?学习笔记、实战内容、读书笔记等等都可以。
多用 Github,用好 Github,上传自己不错的项目,写好 readme 文档,在其他技术社区做好宣传。相信你也会收获一个不错的开源项目!
问题六:大厂到底青睐什么样的应届生?
从阿里、腾讯等大厂招聘官网对于Android开发的应届实习生的要求,我们大概可以总结归纳出下面这 4 点能给简历增加很多分数:
-
参加过竞赛(含金量超高的是ACM);
-
对数据结构与算法非常熟练;
-
参与过实际项目(比如学校网站);
-
参与过某个知名的开源项目或者自己的某个开源项目很不错;
除了我上面说的这三点,在面试Android工程师的时候,下面几点也提升你的个人竞争力:
-
熟悉Java、Kotlin语言;
-
开发环境,Android Studio、eclipse.如何搭建android开发环境;
-
数据结构,App的某些功能涉及到做算法
-
Android SDK,会API接口开发,包括自行开发API的能力和调用第三发API的经验;
-
熟悉tcp、IP,socket等网络协议
-
熟悉 Java 优化,JVM调优;
-
熟悉自己所用框架的底层知识;
-
了解分布式一些常见的理论;
-
具备高并发开发经验;大数据开发经验等等
内容简介:
Android工程师必备基础技能
- Android 注解入门以及自定义注解
- 注解作用
- APT实现原理
- 为什么需要泛型?
- 泛型类和泛型方法、泛型接口的定义
- 泛型方法辨析
- 限定类型
- 泛型中的约束和局限性
- 泛型类型的继承规则
- 通配符类型
- 虚拟机如何实现泛型
- Retrofit中的注解原理项目实践
- ButterKnife相关
- Android动态代理
- Android反射原理与使用
- 编译时处理
- Android虚拟机指令
- Android热修复Tinker接入的示例分析
性能优化技能
- 抖音启动优化实践
- 内存优化
- 启动优化速度
- 卡顿优化
- 崩溃优化
- 启动全流程分析(源码深度剖析)
Framework
- Framework通信(Handler丶Binder丶liveData)
- Framework底层服务(AMS丶IMS丶WMS)
- Framework事件机制
Compose
Android 音视频相关
- 初级音视频开发(一)通过三种方式绘制图片
- 初级音视频开发(二)使用 AudioRecord 采集音频PCM并保存到文件
- 初级音视频开发(三)使用 AudioTrack 播放PCM音频
- 初级音视频开发(四)使用 Camera API 采集视频数据
- 初级音视频开发(五)使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 文件
- 初级音视频开发(六)MediaCodec API 详解
- 初级音视频开发(七)音视频录制流程总结
- 中级音视频 开发(一)OpenGL ES 介绍
- 中级音视频开发(二) OpenGL ES 环境搭建
- 中级音视频 开发(三)OpenGL ES定义形状
- 中级音视频开发(四) OpenGL ES绘制形状
- 中级音视频开发(五) OpenGL ES使用投影和相机视图
- 中级音视频开发(六)OpenGL ES添加运动效果
- 中级音视频开发(七) OpenGL ES 响应触摸事件
- 中级音视频开发(八) OpenGL ES 着色器语言GLSL
- 中级音视频开发(九)OpenGL ES纹理贴图
- 中级音视频开发(十)通过GLES20与着色器交互
- 中级音视频开发(十一)OpenSL ES利用SoundTouch实现PCM音频的变速和变调
- 高级音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准
- 高级音视频开发编解码技术(二):AAC 音频编码技术
- 流媒体协议:HLS 协议丶RTMP协议
- 多媒体文件格式:
MP4 格式丶
FLV 格式
M3U8 格式
TS格式
PCM / WAV 格式
- FFmpeg命令行工具(一):查看媒体文件头信息工具ffprobe
- FFmpeg命令行工具(二):播放媒体文件的工具ffplay
- FFmpeg命令行工具(三):媒体文件转换工具ffmpeg
- FFmpeg命令行工具(四):FFmpeg 调整音视频播放速度
- Mac下安装FFmpeg
- 将 FFmpeg 移植到 Android平台
- FFmpeg 编解码 API 分析
- FFmpeg API 介绍与通用 API 分析
- FFmpeg(六):FFmpeg 核心模块 libavformat 与 libavcodec 分析
- FFmpeg 结构体:
AVFormatContext
AVStream
AVPacket
AVFrame
AVCodecContextAVCodec
AVCodecContext
FFMPEG中重要结构体之间的关系
AVFilter 使用流程总结
FFmpeg Filter Buffer 和 BufferSink 相关APi的使用方法整理
- FFmpeg和NDK在Centos7上交叉编译
- x264和NDK在Centos7上交叉编译
- faac和NDK在Centos7上交叉编译
- Webrtc音视频通话
架构
- 数据结构和算法
- ArrayList
- OKhttp
- Retrofit
- Glide
- Dagger 2
- MVP丶MVC丶MVVM
- Jetpack Room
车载
- Android Auto的支持
- 汽车媒体应用
- Android Auto即时通信
- 构建车载导航和地图注点应用
- 车载导航应用
- 添加对Android Automotive OS的支持
- 构建Android Automotive OS视频应用
- 测试Android车载应用
- 分发Android汽车应用
- 适用于汽车的Google Play服务
- Android Automotive OS的通知
Flutter相关
- 环境搭建
- Dart语法基础
- Dart函数丶类丶类继承丶异步操作
- 基本布局丶基本容器
- 基本组件
- 列表
- 弹框丶数据持久化
- JSON解析
- 动画丶Row使用
- 主工程引入包,模块化
- 实战以及问题总结
kotlin
鸿蒙相关
以上是关于人潮汹涌,接近金九银十,有这份Android PDF助力offer必拿下的主要内容,如果未能解决你的问题,请参考以下文章
《腾讯Android面试真题解析》《百度社招面试真题解析》《字节跳动Android面试历年真题解析》等十几份大厂面试真题解析助你金九银十斩获大厂Offer!
Github 一夜爆火:这份金九银十 Java 面试手册我给跪了
“助力金九银十”25 大Java后端面试指南,3000道面试题解析