前言
金三银四刚过去,估计不少同学都找到了满意的工作。但是在这个时候,还不是“贪图享乐”的时候,而是要好好考虑离职的问题。
先不要着急一脸问号哈,我这里所想表达的意思是,几年之后或是更长时间之后的跳槽离职。也就是说,是不是从现在开始就可以开始为下一次的跳槽,有计划的去做一些“资本”积累了?
刚经过求职阶段的我们也都知道,在求职过程中,有两份东西是面试官非常关注的,也是异常重要:
- 简历:可以理解为工作报告,记录着你在所经历过的项目和所用的知识点。
- 技术能力:面试时重点考核,但是考核的出发点基本都是围绕着你所做过的项目。
总结以上两点,其核心为:项目技术点。
技术点学习
所以,我们在入职一个公司后,需要尽快熟悉里面的项目,梳理其运行流程以及使用了什么技术点。若可以,将这些技术的难点记录下来,并且突破它,毕竟这些往往是该公司的技术核心竞争力。但是,在大公司担任要职后,往往都需要签订《竞业限制协议》,也就是在离职后的一定时间内(不超过两年)不得入职被目前公司列为竞争的企业。
那有没有方式能够快速地了解公司项目并学习其技术点?
当然,最简单的方式就是等上级分配任务,在完成任务的过程中,涉及到哪些技术点,就去学习使用。但是,个人并不推荐这种方式!因为这种方式过于被动,特别是项目越大的时候,往往你只负责其中的一个功能板块而已,而假如在中小型公司,还容易陷入另外一种困境,那就是工作内容只是写些业务逻辑的代码,对于底层的架构设计基本都不会分配给你去修改,所以就会造成:之知其然不知其所以然,通俗来说,就是多年工作一年经验。
在这里,我也分享下我个人的方式。也就是利用空闲时间对于整个项目框架进行理解,其流程可以分为:
- 项目目录分析。分析各个 Module 之间的联系以及整个项目是基于什么架构进行搭建的。
- 梳理应用启动流程。从 Application --> 启动页 --> MainActivity。
- 对于 Activity 进行结构分析。因为每个公司基本都有自己封装的 Activity 和 Fragment,需要理清其运作的流程,使用了 MVC?MVP?MVVM?
- 理解核心工具类的机制。例如最常见的日志系统,如何进行初始化、过滤、日志写入、日志上报等。
- 研究核心业务代码。例如一个相机 App,最核心当然是看其对相机的实现,外带各种特效、滤镜等,生成视频剪辑等业务。
在这过程中,可以使用文档记录流程,当然是不外露的那种,假如写得确实不错,可以考虑提交给上级,作为项目的 README 进行使用。
另外的话我个人也在平时的工作学习中,根据网上的一些资源和自己整理,将Android开发中几乎所有的第三方开源框架,整理出来了一套系列的学习笔记,有需要的同学,动动手指,点下这里自取!
为什么我要强调离职?
凡事预则立,不预则废。因为很多时候,我们都容易陷入业务逻辑的漩涡,写代码基本上都是 Copy、Copy、 Paste、Paste,这对于我们未来的应聘帮助不大,因为在面试中,基本都是,请你说说对 ×× 的理解;其内部怎么实现;有什么方式可以进行优化;为什么系统开发者要这样写,换种方式实现行不行?若不好好深入理解,真容易自闭。
另外,并不是每个公司都有伯乐,或者说,即使有伯乐,但公司因为各种经济或历史等原因,就是不能好好注重你,提拔你,甚至,公司都有可能倒闭,部门业务线取消的情况,这时,若没有一直好好准备,让自己处于奋斗的情况,那么当危机来临,后悔就稍迟了。
写在最后
当然,我并不是鼓励你快速换工作,而是强调深入理解项目技术以及保持一个持续学习心态的重要性,若在当前技术没有任何提升,对现下工作没有任何总结提炼,只是一味的想着通过跳槽不断涨薪,是一件非常危险的事情,请慎重。
谨以此文,与君共勉!
网友评论