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

126 篇文章 4 订阅
47 篇文章 2 订阅

前言

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

每年九、十月份,各大互联网公司都会周期性地发生人事变动,无论是刚进社会的职场菜鸟,还是准备跳槽的老手,都将在这个时候获得新工作,或迎来晋升涨薪的最佳机会。

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

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

简历

**无论是求职还是跳槽,简历都是重中之重。**说到找工作,第一件事肯定是准备简历,写简历需要有一定的学问,一篇要把你所有的优势说明白,而且现在写简历,千万不可以写的太死板,一定要写的另类一些,因为简历太多,比如你写,喜欢学习,性格随和,等等太普遍,你会写别人也会写,没有新意,而且在写项目经历的时候更要注意。

不少人问**为什么我投递了不少简历,但是没有回应呢?**我想要告诉你的是如果你觉得各方面都符合招聘要求,但是仍然没有回信,那很可能问题出在你的简历上。

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

一份简历无非就包含以下几块内容:

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

基本信息

基本信息就是把企业最关心的一些信息写出来,这部分包括:姓名、性别、工作年限、学历、联系方式(邮箱+电话)、出生年月(一般写个年份就好)、应聘职位、所在城市,以上是必须的,除此之外如果你有个人博客跟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了,但是简历之间的微小差距往往在排版上。

程序员的简历页面千万不要搞得过于复杂,从头到尾就尽量简洁朴素,别搞的一个简历4、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)**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值