共计 4434 个字符,预计需要花费 12 分钟才能阅读完成。
导读:
不论你在哪家企业,如果本人不致力,那必定是拿不到高薪的。而在 bat、华为这样的企业,其实工资只是他们支出的一部分,更多的是靠绩效奖金和分成。同样的,这些大公司加班也是挺多的,也就是一分耕耘一分收获。
最近退职场论坛上看到这样一个帖子:阿里员工年年绩效 A,晒出支出后感叹:996 尽管苦楚,发工资的时候真香,付出播种还是有回报的!这是怎么回事呢?
该员工说本人老家是农村的,家里条件也不太好。自从加入工作之后,还是十分致力。4 年前本人进入阿里,每年的绩效都是 A。如果把本人工资和绩效奖金加起来的话,年收入也有大几十万。该员工起初感叹:996 尽管很累,然而发工资的感觉还是很好的,不过这也是本人辛勤付出的后果。
可能很多人对于阿里绩效不太明确,其实 375B 曾经很难拿到了,A 就更难了。如果是 325 的话,那是在淘汰的边缘。而且他们的支出与奖金关系很大,普通员工可能都有 10 万以上的差距。
有网友说你太厉害了,本人也是农村的,目前在阿里工作了一年,可是刚开始不太明确考核机制是怎么样的,后果没有拿到 375,然而本人定了个指标,那就是当前年年要拿 A。
还有网友问阿里工资个别是多少?其他人就回复说程序员个别都是 50 万到 100 万之间。不过你可能拿这么屡次 A,阐明还是很厉害的,能力应该也不错,又或者领导很观赏,不然的话,你也拿不到这么高的支出。
还有网友说真的很艳羡啊,当初很多公司都是加班,工资却少得很。看来还是大公司好一些啊,付出了这么多,至多还可能拿到很高的工资,哪里像咱们这些小公司的人,工作工夫长,然而工资却很低。
还有网友说本人工作七八年了,当初年收入才 10 多万,和你们比差太多了。
分享读者
作为一名 Android 开发,与其艳羡大公司,无妨正视本人的毛病和有余,构建一个属于本人的常识体系, 退出大公司拿到更多的工资。
同时也可能让咱们学到的常识体系化. 让本人分明哪块是本人的常识盲区, 哪块曾经构建起根基. 而后依据理论状况, 有针对性的进行模块学习. 让本人成为一个合格的 Android 工程师.
咱们平时看博客或者学常识, 学到的货色比拟零散, 没有独立的常识模块概念, 而且学了之后很容易忘. 于是我建设了一个本人的笔记仓库 (一个我长期保护的笔记仓库, 感兴趣的能够点个 star~ 你的 star 是我写作的微小大大大的能源), 将平时学到的货色都归类而后放外面, 须要的时候呢也不便温习. 过了段时间, 我感觉这样还是不够好, 于是我最近花了点工夫, 整顿了一下 Android 中的常见常识, 画了一张思维导图. 更清晰地意识本人的常识边界到底在哪里, 哪些货色还有余.
此常识体系呢只是一个参考, 大家能够依据本人的理论状况进行针对性学习,而后进行查漏补缺, 晋升本人~
- 计算机根底
1.1 计算机网络
1.1.1 计算机网络概述
- 网络七层协定
- TCP/IP 四层模型
- 底层协定
- 底层设施
1.1.2 应用层
- HTTP 协定 (⭐⭐⭐)
- DHCP 协定 (⭐⭐⭐)
- NAT
1.1.3 传输层 (⭐⭐⭐)
- TCP 协定
- UDP 协定
1.1.4 网络层
- IP 协定
- ICMP 协定
1.2 操作系统 (⭐⭐⭐)
1.2.1 操作系统基本功能
- 过程治理
- 作业管理 / 文件治理
- 存储管理 / 设施治理
1.2.2 Linux 零碎
- 内存治理
- 过程治理
- 文件系统
- 常见命令操作
1.2.3 补充
- 自旋锁 / 互斥锁 / 读写锁 / 条件变量 / 共享文件
- 音讯队列 / 管道 / 信号量
- 操作系统的用户态与内核态
- 上下文切换老本
- 过程,线程与协程
- Java 根底 (⭐⭐⭐)
2.1 汇合原理
- ArrayList
- Vector
- Stack
- LinkedList
- HashMap
- Hashtable
- TreeMap
- LinkedHashMap
- HashSet
- TreeSet
- CopyOnWriteArrayList
- ConcurrentHashMap
- LinkedBlockingQueue
- SynchronousQueue
- SparseArray
- ArrayMap
2.2 其余
- 面向对象
- 设计模式
- 反射
- 泛型
- 注解
- Java 并发
3.1 线程根底
- 实现多线程
- 启动线程
- 进行线程
- 线程的 6 种状态
各种各样的锁
- 乐观锁和乐观锁
- 共享锁和独占锁
- 偏心锁和非偏心锁
- 可重入锁和非可重入锁
- 可中断锁和非可中断锁
- 自旋锁和非自旋锁
- 偏斜锁 / 轻量级锁 / 重量级锁
- JVM 对 synchronized 锁的优化
- wait/notify/sleep/join 等重要办法
- 守护线程, 优先级等属性
- 线程平安
- Future 获取运行后果
- Fork/Join 模式
- CountDownLatch
- CyclicBarrier
- Semaphore
- Condition
- Phaser
- 重排序
- 原子性
- 内存可见性
- CAS 原理
- AQS 框架
3.2 其余
3.2.1 并发容器
- Vector/Hashtable
- ConcurrentHashMap
- CopyOnWriteArrayList
- 阻塞队列
- 非阻塞队列
- ConcurrentSkipListMap
3.2.2 atomic 包,6 种原子类
- 分类
- 原子类与锁
- 原子类与 volatile
3.2.3 ThreadLocal
- 应用场景
- 原理
3.3.4 线程池
- 长处
- 参数
- 分类
- 执行工作流程
- 回绝策略
- 正确敞开线程池
- 线程池复用原理
- JVM 虚拟机
- 内存区域
- 内存模型
- 内存调配回收策略
- Java 对象的创立、内存布局和拜访定位
- GC: 援用计数及可达性剖析, 垃圾回收算法,G1 及 ZGC
- 类加载机制
- 双亲委派模型
- 编译器优化: 办法内联, 逃逸剖析
- 虚拟机相干: HotSpot 及 JIT,Dalvik,ART 及 AOT
- JVM 执行办法
- JVM 实现反射
- JVM 实现泛型
- JVM 实现异样
- JVM 实现注解
- 数据结构与算法
5.1 数据结构
- 栈
- 队列
- 数组
- 链表
- Hash 表
- 二叉树
- 根底排序算法
- 字符串操作
5.2 算法
- 分治算法
- 动静布局
- 贪婪算法
- 分支限界法
5.3 刷题
- CS-Notes 剑指 Offer 题解
- CS-NotesLeetCode 题解
- 1307 页字节跳动 Android 高频面试题集
- Android 根底
6.1 外围知识点
6.1.1 四大组件
- Activity
- Service
- BroadcastReceiver
- ContentProvider
6.1.2 布局和控件
- RelativeLayout
- FrameLayout
- LinearLayout
- ConstraintLayout
- Button
- TextView
- RecyclerView
- …
6.1.3 自定义 View/ViewGroup
- onMeasure
- onLayout
- onDraw
- onTouchEvent
- dispatchTouchEvent
- 自定义属性
6.1.4 动画和手势
- View 动画
- 属性动画
- layoutAnimation 视图动画
- 手势检测 (GestureDetector)
- 缩放手势检测 (ScaleGestureDecetor)
6.1.5 网络
- 申请网络
- 解析数据
6.1.6 图片加载
- 本地图片
- 网络图片
- 压缩图片
- 多图列表
- DiskLruCache
6.1.7 Handler
- Looper
- Message
- MessageQueue
- 内存透露
- ThreadLocal
6.1.8 Android 各版本新个性
- Android5.0
- Android6.0
- Android7.0
- Android8.0(O)
- Android9.0§
- Android10.0(Q)
- Android11.0®
6.1.9 其余
- adb 常用命令
- 文件和数据库
- 异步线程池
- Resources
6.2 开源库应用
- Retrofit/OKhttp
- RxJava
- Glide
- 注解框架
- Jetpack
6.3 性能优化
6.3.1 快 - 晦涩的体验
- 布局优化
- 绘制优化
- 内存优化
- 启动优化
- 其余
6.3.2 稳 - 稳固
- 防止内存泄露
- 防止解体
6.3.3 省 - 省电 / 流量
- 应用 JobScheduler 调度工作
- 应用懈怠法令
6.3.4 小 - 安装包小
- apk 形成
- 包体优化
- Android 进阶
7.1 外围知识点
7.1.1 多过程
- Binder
- AIDL
- Messenger
7.1.2 Activity 难点
- onSaveInstanceState() 和 onRestoreInstanceState()
- intent-filter 匹配规定
- 生命周期
- 启动模式
- Activity 启动过程
- App 启动过程
7.1.3 Service 难点
- startService 流程
- bindService 流程
7.1.4 BroadcastReceiver 难点
- 注册 / 发送 / 接管工作原理
7.1.5 ContentProvider 难点
- ContentProvider 启动过程
7.1.6
- View 绘制
- 事件散发
- 音讯队列
- AsyncTask 原理
- RemoteViews
- Window 和 ViewRootImpl
7.2 开源库原理
- OkHttp
- Retrofit
- RxJava
- Glide
- LeakCanary
- GreenDao
- ARouter
7.3 Gradle
- 编译
- 混同
- 签名
- Groovy
- Gradle 构建流程
- GradlePlugin
- Gradle 构建优化
- App 构建过程
- 差异化打包
7.4 高级架构
- 设计模式
- MVC,MVP,MVVM
7.5 JNI
- JNI 根底
- NDK 根底
7.6 动态化
7.6.1 前置常识
- Android 打包流程
- Java 字节码
- GradlePlugin
- TransformAPI
- ASM
7.6.2 热修复:nuwa&Tinker
- 经典 -64k 问题
- dex 分包
- MultiDex 优化
- findClass 原理
- QQ 空间热补丁计划
- Nuwa 应用层实现
- NuwaGradle
7.6.3 插件化:VirtualAPK
- 加载类
- 资源拜访
- 生命周期治理
7.7 编译插桩
- AOP
- ASM
7.8 Framework
7.8.1 零碎服务
- Zygote 启动
- Android 系统启动
- ServiceManager 启动及工作原理
7.8.2 利用过程
- 启动流程
- 启用 Binder 机制
- Application 初始化流程
- Context
7.8.3 UI 体系
- 显示原理
- UI 线程启动
- 屏幕刷新机制
- surface
- vsync
7.8.4 过程通信
- Binder
- IPC 通信流程
- Binder 对象跨过程传递
- OneWay 机制
7.8.5 线程通信
- 音讯队列
- 消息传递机制
- Handler 音讯提早实现
- IdleHandler 原理
- 音讯屏障
- ThreadLocal 原理
7.8.6 其余
- 跨过程传递大图片
- 四大组件启动原理
- 领域专家
8.1 性能优化方向
- 稳定性优化
- 启动速度优化
- 绘制优化
- 内存优化
- 包体积优化
- 网络优化
- IO 优化
- 存储优化
- 耗电优化
8.2 基础架构方向
- Android 工程实际
- Gradle 自动化构建
- 编译插桩技术
- Android 架构
- Android 热修复
- Android 插件化
- Android 外围源码
8.3 NDK、音视频
- C
- C++
- JNI 根底
- 编译原理与语法根底
- Linux 根底
- 热修复
- Gif 图实现
- 音视频根底
- ffmpeg
- WebRTC
- opengl
- vulkan
- opencv
8.4 大前端
8.4.1 前端根底
- HTML
- CSS
- JavaScript
8.4.2 Flutter(⭐⭐)
- Dart 入门
- Flutter 入门
- 开发
- 工程治理
- 线上运维
- 公布
- 测试调试
8.4.3 其余
- ReactNative
- 小程序
- 性能优化
- 其余 Android 相干
9.1 Koltin(⭐⭐)
9.1.1 根底局部
- 内置类型
- 类型初步
- 表白算式
- 函数进阶
- 类型进阶
9.1.2 高级局部
- 泛型
- 反射
- 注解
- 协程
下面纲要都有绝对应的 PDF 文档资料帮忙他们学习了解的:
以上内容均收费分享给大家,须要完整版的敌人,点这里能够看到全部内容。