“金九银十”将过,升职无望、加薪难等,没收到满意的Offer怎么办?

前言

你们都知道每一年的九月和十月都是互联网大厂疯狂招人的黄金期,也就是程序员的黄金跳槽期,因此被称为金九银十。java

每一年9、十月份,各大互联网公司都会周期性地发生人事变更,不管是刚进社会的职场菜鸟,仍是准备跳槽的老手,都将在这个时候得到新工做,或迎来晋升涨薪的最佳机会。git

如今已经十月底了,“金九银十”即将过去,也已经有不少同行收到了比较满意的Offer,但所谓“有人欢喜有人愁”,依旧还有不少同行们“升职无望、加薪难等”……程序员

这篇文章就主要针对Android开发者提高自我,技术进阶,同时也预祝你们早日收到满意的Offer!面试

简历

不管是求职仍是跳槽,简历都是重中之重。说到找工做,第一件事确定是准备简历,写简历须要有必定的学问,一篇要把你全部的优点说明白,并且如今写简历,千万不能够写的太死板,必定要写的另类一些,由于简历太多,好比你写,喜欢学习,性格随和,等等太广泛,你会写别人也会写,没有新意,并且在写项目经历的时候更要注意。算法

很多人问为何我投递了很多简历,可是没有回应呢?我想要告诉你的是若是你以为各方面都符合招聘要求,可是仍然没有回信,那极可能问题出在你的简历上。小程序

总结了下程序员的简历到底该怎么写?windows

一份简历无非就包含如下几块内容:微信小程序

  • 基本信息
  • 教育经历
  • 工做和实习经历
  • 项目经验
  • 职业技能
  • 其余

基本信息设计模式

基本信息就是把企业最关心的一些信息写出来,这部分包括:姓名、性别、工做年限、学历、联系方式(邮箱+电话)、出生年月(通常写个年份就好)、应聘职位、所在城市,以上是必须的,除此以外若是你有我的博客跟GitHub地址能够加上,若是想的话,最多加上一句座右铭与指望待遇,其余信息都是多余的。性能优化

须要说明的是,若是你我的博客跟GitHub有内容与项目的话就能够加上,不然只是一个空壳还不如不加。若是你对你本身的长相很自信的话能够附上照片,不然仍是不加的好。其余信息都不须要写了,我见过有简历把本身什么型血都写上去,我一口盐汽水就喷了,要不要写上你的三围啊?

教育经历

这部分比较简单,就把你大学的学校、专业、入学时间、毕业时间写清楚就行了,若是有读研经历的那就再加上,高中学历就别多此一举了,或许你以为你高中的学校很牛逼,你高中所在的城市我都不必定知道,还在意你的高中学校么?

工做和实习经历

这部分就如实写就行了,记得一条,按时间顺序倒序,把工做或者实习所在的公司名称、职位、开始时间、结束时间写清楚就行了,若是你有工做经验的,就不须要再写上实习经历了。

项目经验

项目经验是程序员们最重要的财富,也是面试中必问的问题。通常面试官都会借着项目经验来考查应聘者的沟通能力和思考能力。但实际咱们大部分的状况都是作产品的一个功能或一个模块,虽然咱们能很好的完成工做上的要求,可是对于面试这确定是不够的。对于面试来讲,咱们还要完成如下四点。

  1. 知道你的项目究竟是作什么的,有哪些功能。
  2. 知道你作的项目在整个项目中所处的位置及做用,并能清晰地阐述模块间的调用关系。
  3. 知道你项目的总体架构和使用到的中间件,并对中间件的原理有必定的了解。
  4. 能流畅地阐述本身在项目中解决过的比较复杂的问题。

职业技能

这部分就列举你经常使用的熟练的技能就ok了,好比这样:

  • Android Studio + Gradle
  • Git、GitHub
  • RxJava
  • Sqlite
  • Http

这里须要注意两点:

1. 不熟练的技能不要列在上面,到时候面试问到相关问题你又不会,反而会给你减分

2. 千万不要使用「精通」、「使用过」这种字眼,咱们CTO作Ruby十来年了,可是历来不敢说「精通」Ruby,你「使用过」某种东西说了还不如不说,我还「使用过」Ruby、Python、Go等一堆呢!

其余

这部分就列举下你取得的荣誉、得到的证书了,好比英语四六级证书,托福之类的,那些小打小闹的什么计算机二级证书啥的就算了吧,我还见过有列举本身取得过什么学校踢毽子大赛一等奖的,当时真是笑尿了,我还得过咱们村篮球比赛MVP呢!

还有兴趣爱好也能够在这里说起下,好比篮球、羽毛球、足球、围棋之类的,别把Dota、LOL当兴趣爱好列出来就行。

排版

上面那些内容实际上是你无法改变的,你本身自己的工做经历、学历、项目经验等又不能造假,把上面那些基本东西作好就ok了,可是简历之间的微小差距每每在排版上。

程序员的简历页面千万不要搞得过于复杂,从头至尾就尽可能简洁朴素,别搞的一个简历四、5种字体,大家看别人的公众号文章排版是否是很舒服?大部分什么编辑器也没用,就是最朴素的微信自带编辑器,而后把字体大小、间距、字体设置好就好了。不要很花哨,就普通的白底黑字、宋体或者黑体最佳,注意全角半角标点。

简历内容必定尽可能两张A4纸就能够搞定,2页纸还写不完你的简历,那你的履历该有多复杂?

简历这块仍是比较容易突击上来的,面试难,还有不少人死在了技能上,那么怎么补?怎么去提高呢?

进阶

面试想要突击一下,能够提早一段时间就开始准备,针对意向岗位或公司多刷题,可是刷题即使是过了面试,进去之后不会怎么办?

这就要求咱们Android开发者们有着更加出色的专业技能了,能够参照下面的一些技术技能提高进阶。

Java语言进阶与Android内核

Android应用是由Java语言进行开发的,SDK也是由Java语言编写,因此咱们要学习java语言。另外,虽然说kotlin语言获得了Android官方的热推,可是kotlin也是编译成了java语言再运行的。对于Android来讲,只要SDK没有用kotlin重写,那么Java语言是都须要学习的。并且Android apk的后台服务器程序大几率是java语言构建,因此学习java也是一种必然。

那么Java中哪些东西是咱们Android程序员须要学习的呢?因为Android程序员习惯了 C V 代码块,因此与Android中比较相关的稍微比较难的Java基础几乎都是一个门槛,像:泛型、多线程、反射、JVM、Java IO、注解、序列化等,都是被 CV 的对象,而不少程序员是不懂其原理的,具体的学习内容如图所示。

App开发框架知识体系(高级UI与FrameWork)

这块知识是现今使用者最多的,咱们称之为Android 2013~2016年的技术。可是,即便是这样的技术,Android开发者也每每由于网上Copy代码习惯了而致使对这块常常“使用”的代码熟悉而又陌生:熟悉的是几乎每天在和它们打交道,每天在复制这些代码;陌生的是虽然每天和这些代码打交道,可是并无深刻研究过这些代码的原理、代码深处的内涵。因此咱们须要重新的角度去分析这些知识点,深刻研究他们,要学习源码,模仿源码,而后再hook源码,这样才能说本身懂这块的知识。

这些都是作Android开发,作高级工程师的基础。

性能优化

一个app的性能好很差咱们须要从两个层面努力。

  • 第一个层面:从写代码的时候就须要注意,让本身的代码是高性能高可用的代码,这个过程是书写高性能代码;
  • 第二个层面:对已经成型的代码经过工具检查代码的问题,经过检查到的问题来指导咱们进行代码的删改,这个过程被称为调优。

如何写出高性能的代码呢?

那就须要咱们具有深厚的代码功底,这就是代码的基础,如:数据结构达到能够根据应用场景写出符合当前场景的特殊结构,好比google针对Android平台特征研发了sparseArray替代HashMap。

另外,对经常使用的算法有本身独到的看法,leetcode上有刷个上百道题,这样差很少能够达到精通最经常使用的排序查找动态规划等算法的能力。再者,高效的算法以及节省内存的数据结构若是配合优秀的符合应用场景的设计模式,那么,这些就为高性能的代码提供了实现依据。

另一个就是对写好的代码进行调优,那么调优的方向就是使用Profiler工具进行测试和检查,看哪里有性能消耗大的操做,而后分析对于代码的问题。调优的方向就变成了如何对内存调优,对耗电调优,对网络流量调优,固然,还有对启动速度,页面切换效果与速度,开机白屏体验,闪屏方面的缘由等进行分析和调优。最后再加上一个屏幕适配相机适配。

NDK模块开发

音视频、高清大图片、人工智能、直播、抖音等等这些年与用户最紧密,与咱们生活最相关的技术一直都在寻找最终的技术落地平台,之前是windows系统,而如今则是移动系统了,移动系统中又是以Android占比绝大部分为前提,因此Android NDK技术已是咱们必备技能了。

要学习好NDK,其中关于C/C++、jni、Linux基础都是须要学习的。除此以外,音视频的编解码技术、流媒体协议、ffmpeg这些都是音视频开发必备技能,并且OpenCV、OpenGl这些又是图像处理必备知识,这些在学习的过程当中都应该有原理级的实战项目。

Android前沿技术

如今去不少公司面试,除了你具有基本的可以写一个高性能app的能力后,通常都会在本身的app里面加一些现有的相对较为“666”的技术(或者是“无奈本人没文化,一句卧槽走天下”的技术),这些技术咱们称之为前沿技术。他们通常包含热升级,热修复,App Instant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术等等。

固然,这些技术你不能只会用,你须要知道他的原理,有时候,你还须要知道如何对这些架构进行改进。

另外,很是重要的一点,不少Android开发者不肯意接受新知识,因此对于如今Google推出的新的技术方案毫无感受,这些都是被 control C 和control V所毒害的结果,开源让开发者失去了自我,失去了基本的编码能力,失去了深刻学习的信心和毅力,因此对于不少google推出的新技术、好组件(Google I/O 大会新技术)、好框架已经不肯意去学习了。这确定是不可取的,做为一个程序员若是不能不断地提高自我、自发的进阶的话,30、35这种在网上看到的别人的焦虑,也会发生在你的身上,缘由很简单,就是“技术更替”老的技术渐渐被遗忘,新的技术又不会,学习能力尚未应届生强,一旦公司效益很差要裁人,你猜猜谁才是这个“幸运儿”?

移动架构师项目实战

架构师不是天生的,是在项目中磨练起来的,因此,咱们学了技术就须要结合项目进行实战训练,那么在Android里面最经常使用的架构无外乎 MVC,MVP,MVVM,可是这些思想若是和模块化,层次化,组件化混和在一块儿,那就不是一件那么简单的事了,咱们须要一个真正身经百战的架构师才能讲解透彻其中蕴含的深理。

提升开发效率的工具运用

“工欲善其事必先利其器”

如何提升开发的效率?

不少开发者在开发的过程当中因为gradle不会用致使加载代码很是耗时,这些就是工做成本。

还有就是git的使用能够帮咱们管理好咱们的代码,这个很是关键,由于这个工具可让咱们修改的代码不会由于错误的操做而致使代码丢失。

另外,做为移动开发者,咱们至少须要知道如何抓取网络包吧,其中,最经常使用的stetho就是一个很好的能够进行网络抓包的工具。

微信小程序

移动架构师不可不学习微信小程序。

Hybrid开发

混合开发的flutter如今已经逐渐变成了主流的混合开发框架,另外因为阿里系的强大存在,致使阿里系的公司都在用Weex混合架构,这些都是一个Android工程师开拓视野,走向将来必不可少的基本技能。

参照上面这一些技术点进行进阶提高,“金九银十”过了不要紧,明年“金三银四”你必定能够斩获心仪的Offer!

Android学习PDF+架构视频+面试文档+源码笔记

最后

感谢你们能耐着性子,看完这篇文章。

在这里我也分享一份本身收录整理的Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料帮助你们学习提高进阶,也节省你们在网上搜索资料的时间来学习,也能够分享给身边好友一块儿学习

若是你有须要的话,能够点赞关注我,而后加入关注微信公众号【Android开发之家】免费领取

“作程序员,圈子很重要”由于有了圈子可让你少走弯路,拓宽人脉,拓展思路,学习他人失败和成功的经验,获取最新经验与信息,抱团取暖等!圈子的高度决定人生的高度!

我创建了一个纯程序员的交流社群(无广告),有想法加入的朋友能够加入Android开发交流群(820198451)

相关文章
相关标签/搜索