前言
跳槽涨薪要考虑的方面有哪些?
开弓没有回头箭,有时候,一旦有了某个想法,就久久挥之不去了。一朝动了跑路之心,便不知不觉地踏上跑路之途。
你是正在拿着卖白菜的钱,操着卖白粉的心吗?
"拿着卖白菜的钱,操着卖白粉的心"。我相信,想换工作的人中,十有八九的人都是这么想的。
当下社会,房贷车贷等,压在好多人的头上。人与人不经意间,也会形成攀比。比如,和同事做着差不多的事情,他的工资待遇职级比你高不少。再比如,你只想安静本分地做好自己份内的事,经常莫名会"锅从天上来"。你做的事情没有在领导眼里体现出相应的价值,久而久之,恶性循环。
组织结构的更换,频繁劳累的加班,不见增长的钱包,止步不前的技术水平,无不催化着一颗要离开的心。长此以往,出走已经成为必然。最后,和领导开诚布公,期待着调整工作内容,适当地增加薪水时,遇到领导画饼后的拒绝,便成为了压死骆驼的最后一根稻草。
"跳槽!涨薪!",心底暗下决心,立马行动起来。
你真得觉得是时候跑路了吗?
这不是废话吗?不一定是。
三思而后行,一次跳槽,或许是从浅坑爬出来,又进入了深坑!
换工作,从来不是一件低成本的事情:交通里程和时间的耗费、新旧角色的转换、业务的理解与熟悉等,都需要付诸一定的时间、精力及金钱。频繁的跳槽,短期工资待遇或许是上去了,随之会导致简历变得难看,毕竟公司不太希望招不稳定的一员。同时,短期的更替,会造成技术人员在每一家公司里,没有足够的沉淀,往往只是浮于皮毛,分了活只是会干,并没有充分的思考和实质性的提升。长此以往,工作多年后,增加的只见年限,不见能力。笔者有位朋友,名校硕士生,从事移动开发七八年了,因为主动或者被动的跳槽,简历基本上一年半载换一家公司,至今没法在大公司效力,只能在非知名小公司做着业务开发,薪资待遇也还是三五年开发的水平。
"见贤思齐焉,见不贤而内自省也",扪心自问:
- 当前的薪资待遇、工作内容,还能再向领导争取下吗?
- 可以接受离开当前环境失去的东西,去新公司能得到想要的吗?
细心评估后,若还是要离开,那也是时候出走了。
决定要走了,你确定做好准备了吗?
能者非逞匹夫之勇。"裸辞一时爽,一直裸辞一直爽"?万万不可。当然,若没有额外的经济负担,那当我没说这句话。否则,会很容易断了生活的支撑,带来不必要的很大的压力。对大部分人来说,永远不要高估自己的自律能力。比如,看到有人说,裸辞回家老实准备一两个月,再出去面试。也许头几天兴致勃勃,一周半个月后,或许就消磨在睡觉和打游戏中,适得其反。个人觉得,也符合大众的想法,那就是"骑驴找马"。一方面,当前工作中的事情继续正常做,不过晚上下班时,尽早回家些,毕竟要复习,但最好别被领导发现明显的异常。另一方面,一有时间,就应该着手准备面试相关的知识储备和项目综述。当然,最好限定时间在一到三个月内,因人而异,否则,会陷入既不满足当下,又没有改变现状能力的窘境。
骑着驴找着马时,要清楚明白自己的定位和竞争力。比如,初中级适当地看向中级,中高级适宜地看向高级等,小幅摸高一下。要明确自己已熟悉的点,拓展自己未熟悉的东西:将自己之前和当下所做的东西作些梳理和总结,如项目中所用到的知识与技能,开发中印象最深的事情是什么,遇到最大的挑战是什么,怎么解决的,等等。整体来说,明确自己的定位和竞争力后,才能有的放矢。
都说是寒冬,你确定了解现在的行情吗?
当前,确实处于"寒冬期",去年底各个大大小小的公司爆出裁员的风波。而今,据说所谓的"金三银四"也不如以往。经济发展处于下行期,需求量较之前确实有所减少,移动互联网高速发展的黄金时期或将不复存在。随之而来的是,一些岗位的招聘标准较前几年高了不少。
"移动开发真的没人要了吗"?答案是仍然有很多中高级以上的缺口。"打铁还需自身硬",又有说,"只有在潮水退去时,你才会知道谁一直在裸泳"。可以说,整个移动开发的行情也只是从疯狂回归理性而已。看一些招聘网站上,我们所知道的一些大厂,如阿里、腾讯,乃至一些知名高薪的上市公司,如拼多多、趣头条,仍持续在招聘中高级以上的开发。这也给予我们移动开发者一定的警醒,"学习如逆水行舟,不进则退"。只有不断的进步,持续的提升,才能保持一定的竞争力,也就不会在退潮时,被潮水带走。
整体来说,学校不太差,基础还可以的话,校招市场上,移动开发的需求还是不少的;社招市场上,3 年以上开发经验,并与年限有匹配能力的人,也尚处在供不应求的状态。
知识与技能达到去外面聊的地步了吗?
知彼前,要先知己。不同层次的开发,要明确相应层次应具备的知识与技能。当然,这些也许是我的一己之言,取自网上的一些面经和自己实战面试的一些总结。各层级之间有一定的交叉,或许差别仅体现在深度上。以下所讨论的,并非要求相应层级的知识储备百分之百达到,比如,有可能高级甚至以上的开发,初级水准的某些点不是很清楚,也在情理之中。但是,高层级的开发应囊括低一层级开发绝大部分的知识与技能储备。
事实上,由于现在的 App 很少是纯原生,很多岗位对前端开发的能力也有相应的要求,如要求有 React Native / Weex / Flutter 开发经验优先等。
以下所述仅针对应用层纯原生的开发。
Android初级开发水准
一年左右的 Android 开发经验。
Java 基础
- 抽象类和接口的区别
- 内部类和静态内部类的区别
- 集合框架
- 常见的集合,如 ArrayList、LinkedList、HashMap、TreeMap 和 LinkedHashMap
- 注解
- 反射
- 泛型
- 异常
- IO 及 NIO
- transient 关键字
- 并发
- 创建线程的三种方式
- 线程通信
- 线程池
- synchronized 与 Lock 的区别
- 生产者与消费者模型
- wait-notify 模型
- 死锁
- volatile 关键字
- 一些常见的并发集合,如 ConcurrentHashMap
短期准备着重看列出的这些,长期准备推荐看《Java 编程思想》和《Java 并发编程的艺术》等。
Android 基础
- 四大组件,Activity、Service、Broadcast Receiver 和 Content Provider
- Fragment
- 事件分发机制
- 并发
- Handler 消息机制
- AsyncTask、HandlerThread 和 IntentService
- 自定义 View
- 动画
短期准备着重看列出的这些,长期准备推荐看《第一行代码》和《Android 群英传》等。
设计模式基础
- 六大原则
- 基本的几个模式,如单例模式、观察者模式和适配器模式
短期准备着重看列出的这些,长期准备推荐看《大话设计模式》等。
数据结构与算法基础
- 数组和链表
- 栈和队列
- 常见的排序,如快速排序、冒泡排序等
- 一些简单常见的算法题
短期准备着重看列出的这些,刷一些简单的题。长期准备推荐看《算法》和《剑指 Offer》等。
计算机网络基础
- TCP/IP
- HTTP 及 HTTPS
- Socket 的应用
短期准备着重看列出的这些,长期准备推荐看《图解 HTTP》等。
数据库基础
- 一些简单常见的 SQL 语句
短期准备着重看列出的这些,长期准备推荐看《SQL 必知必会》等。
中级开发水平
两三年左右的 Android 开发经验。
笔者认为,中级开发在初级开发的基础上,除列举的各方面有所深入外,还有以下一些。
Java 进阶
- Java 虚拟机
- 对象的创建、内存布局和访问定位
- 内存区域与内存模型
- 类加载机制及类加载器
- 垃圾收集算法及垃圾回收机制的一些知识
- 判断对象已死的一些知识
短期准备着重看列出的这些,长期准备推荐看《深入理解 Java 虚拟机》等。
Android 进阶
- 多线程断点续传和下载
- 全局异常的处理
- MVC、MVP 及 MVVM 模式
- Binder 机制及 AIDL 的使用
- Application 的启动流程
- 性能优化
- 热修复
- 插件化
- 推送技术
- 一些经典的框架,要求知其原理、阅读源码,如 OkHttp、Retrofit、EventBus、Glide 和 RxJava 等
短期准备着重看列出的这些,长期准备推荐看《Android 开发艺术探索》、《高性能 Android 应用开发》和《Android 进阶之光》等。
设计模式进阶
- 熟悉 23 种设计模式
- 有一定的架构意识,如 AOP、路由组件化等
短期准备着重看列出的这些,长期准备推荐看《设计模式解析》等。
数据结构与算法进阶
- 树
- 图
- 动态规划
- 手撕 LeetCode 中 Easy 及部分 Medium 的算法题
短期准备着重看列出的这些,长期准备推荐看《算法导论》、熟悉《剑指 Offer》里的题,多刷 LeetCode 相关级别的题目等。
计算机网络进阶
内容大致如基础部分所展示的。长期深入准备推荐看《TCP/IP 详解》、《HTTP 权威指南》和《鸟哥的 Linux 私房菜》等。
数据库进阶
长期深入准备推荐看《SQL 语言艺术》和《SQL 反模式》等。
高级甚至以上的水平
三到五年左右的 Android 开发经验。
同样道理,高级应该在中级的基础上继续拔高和深入。这个级别,应该是熟练 Android 相关开发,不仅懂轮子的原理,也会自己创造轮子。除前文列举的以外,还包括以下这些。
Android 高级
- 了解系统的核心机制
- 了解 SystemServer 的启动过程
- 了解主线程的消息循环模型
- 了解四大组件的大概工作流程
- 总体来说,应该具备的技术要求
- 深入的知识点细节
- 系统核心机制
- 设计模式和架构
长期准备推荐看《Android 源码设计模式解析与实战》和《Android 内核剖析》等。
这个阶段,Java、设计模式、数据结构与算法、计算机网络和数据库等,中级所列的水平基本就可以了。Android 高级开发对这些方面也并没有过高的要求。若要面字节跳动等公司的相关岗位,LeetCode 里的算法题建议能手撕 Medium 甚至以上级别的。
那么针对 Android 不同的领域,你到底有没有与之匹配的能力?
音视频行业,对 Android 相关开发也有一定的需求。不过,他们也有着额外的要求,如:
- 多媒体开源架构,FFmpeg、WebRTC 等
- 音视频引擎相关,如采集渲染、音视频处理、编解码和 QoS 等
- 常见音视频编解码技术,如 H.264、H.265、VP8 等
- 一些传输协议,如 rtp、rtmp、rtsp 等
最后有舍有得,到底什么样的 offer 是你应该选择的?
几个 offer,但是只能选择一家入职,怎么选择呢,是个问题。一般从以下几个方面进行考量,而不光是从薪资待遇的角度:
- 薪水,基础月薪加上奖金等(税前还是税后)
问清楚是税前还是税后,并且要问清楚发多少个月,算清总包。
- 补助(税前还是税后)
有些公司会有各种补贴,如通讯补贴、住房补贴等,众多补贴加一起,收入也不错。
- 技术成长氛围
比如有没有定期的技术分享,或者相关的技术技能培训等。从某种程度说,好的培训甚至比优厚的待遇更加吸引人。
- 晋升制度
不同公司有不同的晋升制度,要做到有数,为以后的升职加薪做好平时的准备,比如做好文档整理和积累等。
- 工作内容
要问清楚自己具体的工作内容,是做业务,还是做基础设施等。同时,关注该岗位所在的部门地位,一般来说,核心业务部门在整个公司的发展前景会更好。若是其他辅助部门,虽然重视度会低一些,要看其工作有没有技术含量。总体来说,工作内容要对提高个人能力和职业生涯发展有帮助。
- 工作时间和地点
对于绝大多数 IT 公司来说,加班是在所难免的,此时就要看自己的接受程度,均衡到时薪看一下。此外,虽然大部分公司可能工作地点比较固定,但也有少部分公司需要出差。整体来说,对加班和出差提前有所了解,做好思想准备,要问清楚是否有加班费和出差补贴等。
- 保险公积金等福利
也就是我们说的"五险一金"。重点要注意的是缴纳的基数,是按最低基数交,还是按月工资全额交。比如,虽然公积金按最高比例全额交的话,到手的会少些,实际上公司会交得更多,这些钱也都是我们自己的,在租房或者买房时都可以用上。
综合以上所有方面,选择最好的 offer 发展。
结语
以上是我的一些实际感受与分享,希望能给身处"寒冬"的你带去一丝帮助和温暖。
今天关于面试的分享就到这里,还是那句话,面试中有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。
最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司19年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
【Android核心高级技术PDF文档,BAT大厂面试真题解析】
【算法合集】
【延伸Android必备知识点】
【Android部分高级架构视频学习资源】
Android精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!
【Android进阶学习视频】、【全套Android面试秘籍】关注我【主页简介】或者【简信我】查看免费领取方式!
网友评论