慎重!入职≠稳定,靠着跳槽终于涨薪,结果却没有挨过试用期...
Posted Android-until
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了慎重!入职≠稳定,靠着跳槽终于涨薪,结果却没有挨过试用期...相关的知识,希望对你有一定的参考价值。
前言
金三银四刚过去,估计不少同学都找到了满意的工作。但是在这个时候,不应该松懈,而是要好好考虑离职的问题。
刚经过求职阶段的我们都知道,在求职过程中,有两份东西异常重要:
-
简历:可以理解为工作报告,记录着你在所经历过的项目和所用的知识点。
-
技术能力:面试时重点考核,但是考核的出发点基本都是围绕着你所做过的项目。
总结以上两点,其核心为:项目技术点。
技术点学习
所以,我们在入职一个公司后,需要尽快熟悉里面的项目,梳理其运行流程以及使用了什么技术点。若可以,将这些技术的难点记录下来,并且突破它,毕竟这些往往是该公司的技术核心竞争力,所以,在大公司担任要职后,往往都需要签订《竞业限制协议》,也就是在离职后的一定时间内(不超过两年)不得入职被目前公司列为竞争的企业。
那有没有方式能够快速地了解公司项目并学习其技术点?
当然,最简单的方式就是等上级分配任务,在完成任务的过程中,涉及到哪些技术点,就去学习使用。但是,个人并不推荐这种方式!因为这种方式过于被动,特别是项目越大的时候,往往你只负责其中的一个功能板块而已,而假如在中小型公司,还容易陷入另外一种困境,那就是工作内容只是写些业务逻辑的代码,对于底层的架构设计基本都不会分配给你去修改,所以就会造成:之知其然不知其所以然,通俗来说,就是多年工作一年经验。
太多程序员在平时都是做着crud的工作,有些技术都是等到工作上要用到了才去学习,就是因为大家平时用到什么去学习什么,以至于面试的时候面试官问点延伸性或者他需要的人才技术就回答不上了。对于自身的一个职业发展也限制就太大了。
在这里,我也分享下我个人的方式。也就是利用空闲时间对于整个项目框架进行理解,其流程可以分为:
-
项目目录分析。分析各个 Module 之间的联系以及整个项目是基于什么架构进行搭建的。
-
梳理应用启动流程。从 Application --> 启动页 --> MainActivity。
-
对于 Activity 进行结构分析。因为每个公司基本都有自己封装的 Activity 和 Fragment,需要理清其运作的流程,使用了 MVC?MVP?MVVM?
-
理解核心工具类的机制。例如最常见的日志系统,如何进行初始化、过滤、日志写入、日志上报等。
-
研究核心业务代码。例如一个相机 App,最核心当然是看其对相机的实现,外带各种特效、滤镜等,生成视频剪辑等业务。
在这过程中,可以使用文档记录流程,当然是不外露的那种,假如写得确实不错,可以考虑提交给上级,作为项目的 README 进行使用。
为什么我要强调考虑离职?
因为很多时候,我们都容易陷入业务逻辑的漩涡,写代码基本上都是 Copy、Copy、 Paste、Paste,这对于我们未来的应聘帮助不大,因为在面试中,基本都是,请你说说对 ×× 的理解;其内部怎么实现;有什么方式可以进行优化;为什么系统开发者要这样写,换种方式实现行不行?若不好好深入理解,真容易自闭。
另外,并不是每个公司都有伯乐,或者说,即使有伯乐,但公司因为各种经济或历史等原因,就是不能好好注重你,提拔你,甚至,公司都有可能倒闭,部门业务线取消的情况,这时,若没有一直好好准备,让自己处于奋斗的情况,那么当危机来临,后悔就稍迟了。
给码农的几点忠告
什么是码农?
一般指从事没有发展前景的软件开发职位,这种职位只能强化职业者在单方面的技术领域技能,学不到新技术。
这样的人非常容易被替代,因为市场上优秀的人还有很多,说不定公司能以一个更低的价格挖过来,对你来说升职加薪是不可能的,面临的只有被淘汰的厄运!这不是危言耸听,我见过好多人都是这样失去了核心竞争力被淘汰的!
我们应该怎么做才能保持自己的核心竞争力呢?
今年,疫情原因,倒闭了很多企业,没倒闭的也是纷纷裁员,再加上应届生,面试的难度会一而再的往上提,因为人太多了!我们应该怎么做才能避免被淘汰呢?接着往下看
想要保持核心竞争力最重要的一件事就是坚持学习、高效学习!
现在竞争这么激烈,要通过不断学习,提高自己,才能保持竞争力。
一般人都知道学习的好处,但是学习苦,大部分人都坚持不下去,如果你还在坚持学习,那么恭喜你已经超过了很多人了。除了坚持学习,还要更高效的学习,单位时间内你学到的东西越多越好。
学习,永远是一个认知碾压的过程,不断接触新思想、新技术,才能让自己有更加敏锐的认知洞察力,就好像学了Flutter,你会发现Compose好像也是一样啊,SwiftUI好像也是啊,从更高的眼界上去看这些东西,其实本质上,都是一种思想,现在的社会早已不存在信息孤岛,学会将信息链接起来,才是高效的认知方法。
井底之蛙永远跳不出去井,也永远别用阿里是不是还用Flutter这样的事来限制你的认知,就好像三体人用质子封锁了地球的科技进步,可悲。
多学技能,拓宽知识面
我经常建议身边的 android 程序员,有时间学学Python,Flutter,Kotlin,还有最近新出来的Jetpack compose。
不是一定到工作上要用到了才去学,多学点总归是没坏处的,每个人都是一样,应该额外多学几种技能,拓宽自己的知识面,遇到问题的时候,你能找到更优的解决方式。
技术在日新月异地不断变化和发展着,前几年还比较流行的技术,可能没过几年就被人们所抛弃。当革命性的突破技术取代旧的技术时,这是历史巨轮不断向前发展、不可阻挡的趋势。
不要以为你现在掌握的技术就能够养活你一辈子,我们需要对技术的发展保持着极大的敏锐触觉。一旦你所掌握的技术逐渐被新技术所替代时,你就要小心了,可能留给你学习的时间不多了。
从事开发工作,无论你是在产品线上写业务代码,还是在技术平台进行技术研究,我们都不能放弃学习,放弃对新技术的尝试。放弃学习就好比战士上战场弄丢了自己的枪,很快你将会被一浪又一浪的技术浪潮所淘汰。
学习大纲
对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
对于一些不知道学习什么,没有一个系统路线的程序员,这里给大家提供一个大概的思路:
- 架构师筑基必备技能:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO
- Android高级UI与FrameWork源码:高级UI晋升+Framework内核解析+Android组件内核+数据持久化
- 360°全方面性能调优:设计思想与代码质量优化+程序性能优化+开发效率优化
- 解读开源框架设计思想:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack
- NDK模块开发:NDK基础知识体系+底层图片处理+音视频开发
- 微信小程序:小程序介绍+UI开发+API操作+微信对接
- Hybrid 开发与Flutter:html5项目实战+Flutter进阶
知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。
技术储备
接下来分享的系统学习资源以详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用。
帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份资料中有所一些收获。
1.2020大厂面试高频知识点
- 图片
- 网络和安全机制
- 数据库
- 插件化、模块化、组件化、热修复、增量更新、Gradle
- 架构设计和设计模式
- 性能优化
- Android Framework
- Android优秀三方库源码
2.Jetpack架构组件从入门到精通
- Android Jetpack - Navigation
- Android Jetpack - Data Binding
- Android Jetpack - ViewModel & LiveData
- Android Jetpack - Room
- Android Jetpack - Paging
- Android Jetpack - WorkManger
- Android Jetpack架构组件之Lifecycle
- Android Jetpack Compose 最全上手指南
3.Framework精编内核解析
主要内容包含:
- 深入解析Binder
- 深入解析Handler
- Dalvik VM 进程系统
- 深入解析 WMS
- PackagerManagerService
4.Kotlin强化实战(附Demo)
- 第一章 Kotlin入门教程
- 第二章 Kotlin 实战避坑指南
- 第三章 项目实战《Kotlin Jetpack 实战》
- 从一个膜拜大神的 Demo 开始
- Kotlin 写 Gradle 脚本是一种什么体验?
- Kotlin 编程的三重境界
- Kotlin 高阶函数
- Kotlin 泛型
- Kotlin 扩展
- Kotlin 委托
- 协程“不为人知”的调试技巧
- 图解协程:suspend
5.Android设计思想解读开源框架
- 热修复
- 插件化
- 组件化框架设计
- 图片加载框架
- 网络请求框架
- RXJava 响应式编程框架设计
- IOC 架构设计
- Android架构组件Jetpack
6.NDK模块开发
- NDK 模块开发
- JNI 模块
- Native 开发工具
- Linux 编程
- 底层图片处理
- 音视频开发
- 机器学习
7.Android源码解析
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。
以上内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者点击 【这里】 查看获取方式。
写在最后
当然,我并不是鼓励大家快速换工作,而是强调深入理解项目技术的重要性,若对于当前负责的项目都不好好去理解,而想着通过跳槽不断涨薪,是一件很危险的事情,请慎重。
最后,再强调下努力的重要性,在一个公司里,周围人的水平都和我们差不多,要深知脱颖而出的困难程度,从那么多人中脱颖而出是很难的,因此,一定要努力,一定要逼着自己去学习,这样才有可能脱颖而出,请大家一定要有这个意识。
谨以此文,与君共勉!
以上是关于慎重!入职≠稳定,靠着跳槽终于涨薪,结果却没有挨过试用期...的主要内容,如果未能解决你的问题,请参考以下文章
小公司 Java 开发5年,如今终于熬出头了,入职阿里涨薪14K
做了3年前端开发,靠着这份面试题和答案,我从12K涨到了30K!