三年的 Android 开发就这水平?我还不如去招应届生
Posted 清风Coolbreeze
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三年的 Android 开发就这水平?我还不如去招应届生相关的知识,希望对你有一定的参考价值。
公司前段缺人,也面了不少的客户端工程师,结果竟然没有一个合适的。
一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望。
看简历很多都是3年工作经验,但面试中,不提算法逻辑,仅仅很基础的android技术很多也知之不详,多数人数年的工作经验仅仅是用大量第三方SDK堆砌起的类似产品,毫无深度,对于底层原理方面等等一问三不知,都停留在只会调用些第三方服务的基础应用层面上,算法更是一问一个死,前沿技术最新动态也毫无关注。
而这些人的薪资要求却是都接近20k,并且在谈论过程中自视甚高,特别有一个给我留了很深印象,简历有3年经验,做的都是电商APP类的展示项目,面试过程中一直强调自己技术如何如何强大,在原公司如何的受重用,问了些细节部分,全部是用的第三方,几乎没有什么自己东西,问及一些框架和性能优化的东西都是一概不知,直接告诉我他都用网上评价好的,肯定没问题。
接下来问到算法问题无法解决竟然说道android根本不需要算法,后半截场面很尴尬,但是为了礼貌没有直接结束。
最后又问到一些重写控件问题,也是完全不会,然后告诉我说,这些东西都没有必要学,仅仅用第三方的就能全解决了,我向他提及一些这些三方不包含定制功能怎么做,他居然告诉我说可以让公司改需求。。。。。。惊了~
最后招了2个应届生培养了一段时间也算能帮手了。
我跟几个朋友说起这个事,他们也有同感,人心浮躁,肯踏实做技术的没几个,大批只冲着高工资来,做什么都停留在能用,而不是会用而。
由于市场大批量流入这些不合格的自认优秀的程序员,使得多数公司不得不降低了期望,但是真正有实力的程序员,基本没有受到什么影响,要跳槽还是很容易的。
如果对现在的工作不满意,又没有足够的经验,不妨先静下心来进修一番。
这里给大家总结了一份Android工程师必学的技术知识点,大家可以根据自身的情况加深突击学习,目前已上传至Github,大家可以去【 我的Github(点击这里即可) 】参考全部。
第一章 Java 知识点汇总
- JVM
- JVM 工作流程
- 运行时数据区(Runtime Data Area)
- 方法指令
- 类加载器
- 垃圾回收 gc
- 对象存活判断
- 垃圾收集算法
- 垃圾收集器
- 内存模型与回收策略
- Object
- equals 方法
- hashCode 方法
- static
- final
- String、StringBuffer、StringBuilder
- 异常处理
- 内部类
- 匿名内部类
- 多态
- 抽象和接口
- 集合框架
- HashMap
- 结构图
- HashMap 的工作原理
- HashMap 与 HashTable 对比
- ConcurrentHashMap
- Base 1.7
- Base 1.8
- ArrayList
- LinkedList
- CopyOnWriteArrayList
- HashMap
- 反射
- 单例
- 饿汉式
- 双重检查模式
- 静态内部类模式
- 线程
- 状态
- 状态控制
- volatile
- synchronized
- 根据获取的锁分类
- 原理
- Lock
- 锁的分类
- 悲观锁、乐观锁
- 自旋锁、适应性自旋锁
- 死锁
- 锁的分类
- 引用类型
- 动态代理
- 元注解
第二章 Android 知识点汇总
- Activity
- 生命周期
- 启动模式
- 启动过程
- Fragment
- 特点
- 生命周期
- 与Activity通信
- Service
- 启动过程
- 绑定过程
- 生命周期
- 启用前台服务
- BroadcastReceiver
- 注册过程
- ContentProvider
- 基本使用
- 数据存储
- View
- MeasureSpec
- MotionEvent
- VelocityTracker
- GestureDetector
- Scroller
- View 的滑动
- View 的事件分发
- 在 Activity 中获取某个 View 的宽高
- Draw 的基本流程
- 自定义 View
- 进程
- 进程生命周期
- 多进程
- 进程存活
- OOM_ADJ
- 进程被杀情况
- 进程保活方案
- Parcelable 接口
- 使用示例
- 方法说明
- Parcelable 与 Serializable 对比
- IPC
- IPC方式
- Binder
- AIDL 通信
- Messenger
- Window / WindowManager
- Window 概念与分类
- Window 的内部机制
- Window 的创建过程
- Activity 的 Window 创建过程
- Dialog 的 Window 创建过程
- Toast 的 Window 创建过程
- Bitmap
- 配置信息与压缩方式
- 常用操作
- 裁剪、缩放、旋转、移动
- Bitmap与Drawable转换
- 保存与释放
- 图片压缩
- BitmapFactory
- Bitmap创建流程
- Option类
- 基本使用
- 内存回收
- 屏幕适配
- 单位
- 头条适配方案
- 刘海屏适配
- Context
- SharedPreferences
- 获取方式
- getPreferences
- getDefaultSharedPreferences
- getSharedPreferences
- 架构
- apply / commit
- 注意
- 获取方式
- 消息机制
- Handler 机制
- 工作原理
- ThreadLocal
- MessageQueue
- Looper
- Handler
- 线程异步
- AsyncTask
- 基本使用
- 工作原理
- HandlerThread
- IntentService
- 线程池
- AsyncTask
- RecyclerView 优化
- Webview
- 基本使用
- WebView
- WebSettings
- WebViewClient
- WebChromeClient
- Webview 加载优化
- 内存泄漏
- 基本使用
第三章 Android 扩展知识点汇总
- ART
- ART 功能
- 预先 (AOT) 编译
- 垃圾回收优化
- 开发和调试方面的优化
- ART GC
- ART 功能
- Apk 包体优化
- Apk 组成结构
- 整体优化
- 资源优化
- 代码优化
- .arsc文件优化
- lib目录优化
- Hook
- 基本流程
- 使用示例
- Proguard
- 公共模板
- 常用的自定义混淆规则
- aar中增加独立的混淆配置
- 检查混淆和追踪异常
- 架构
- MVC
- MVP
- MVVM
- Jetpack
- 架构
- 使用示例
- NDK 开发
- JNI 基础
- 数据类型
- String 字符串函数操作
- 常用 JNI 访问 Java 对象方法
- NDK 开发
- 基础开发流程
- System.loadLibrary()
- CMake 构建 NDK 项目
- 常用的 Android NDK 原生 API
- JNI 基础
- 类加载器
- 双亲委托模式
- DexPathList
第四章 Android 开源库源码分析
- LeakCanary
- 初始化注册
- 引用泄漏观察
- Dump Heap
- EventBus
- 自定义注解
- 注册订阅者
- 发送事件
第五章设计模式汇总
- 设计模式分类
- 面向对象六大原则
- 工厂模式
- 单例模式
- 建造者模式
- 原型模式
- 适配器模式
- 观察者模式
- 代理模式
- 责任链模式
- 策略模式
- 备忘录模式
第六章计算机网络基础
- 网络体系的分层结构
- HTTP 相关
- 请求报文
- 请求行
- 请求头
- 响应报文
- 常见状态码
- 缓存机制
- Https
- Http 2.0
- 请求报文
- TCP/IP
- 三次握手
- 四次挥手
- TCP 与 UDP 的区别
- Socket
- 使用示例
答案解析
- 使用示例
第七章 常见面试算法题汇总
- 排序
- 比较排序
- 冒泡排序
- 归并排序
- 快速排序
- 线性排序
- 计数排序
- 桶排序
- 比较排序
- 二叉树
- 顺序遍历
- 层次遍历
- 左右翻转
- 最大值
- 最大深度
- 最小深度
- 平衡二叉树
- 链表
- 删除节点
- 翻转链表
- 中间元素
- 判断是否为循环链表
- 合并两个已排序链表
- 链表排序
- 删除倒数第N个节点
- 两个链表是否相交
- 栈 / 队列
- 带最小值操作的栈
- 有效括号
- 用栈实现队列
- 逆波兰表达式求值
- 二分
- 二分搜索
- X的平方根
- 哈希表
- 两数之和
- 连续数组
- 最长无重复字符的子串
- 最多点在一条直线上
- 堆 / 优先队列
- 前K大的数
- 前K大的数II
- 第K大的数
- 二叉搜索树
- 验证二叉搜索树
- 第K小的元素
- 数组 / 双指针
- 加一
- 删除元素
- 删除排序数组中的重复数字
- 我的日程安排表 I
- 合并排序数组
- 贪心
- 买卖股票的最佳时机
- 买卖股票的最佳时机 II
- 最大子数组
- 主元素
- 字符串处理
- 生成括号
- Excel表列标题
- 翻转游戏
- 翻转字符串中的单词
- 转换字符串到整数
- 最长公共前缀
- 回文数
- 动态规划
- 单词拆分
- 爬楼梯
- 打劫房屋
- 编辑距离
- 乘积最大子序列
- 矩阵
- 螺旋矩阵
- 判断数独是否合法
- 旋转图像
- 二进制 / 位运算
- 落单的数
- 格雷编码
- 其他
- 反转整数
- LRU缓存策略
第八章 Kotlin 相关知识点
-
from-java-to-kotlin
-
kotlin_tips
-
从原理分析Kotlin的延迟初始化: lateinit var和by lazy
-
使用Kotlin Reified 让泛型更简单安全
-
Kotlin里的Extension Functions实现原理分析
-
Kotlin系列之顶层函数和属性
-
Kotlin 兼容 Java 遇到的最大的 “坑”
-
Kotlin 的协程用力瞥一眼
-
Kotlin 协程「挂起」的本质
-
到底什么是「非阻塞式」挂起?协程真的更轻量级吗?
-
资源混淆是如何影响到Kotlin协程的
-
Kotlin Coroutines(协程) 完全解析
最后:【可能给予你帮助】
这些总结的核心知识点,对于Android开发的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你。
目前已经整理成PDF格式,想要提升自己技术的朋友 “ 扫描下方助理二维码(备注CSDN)”获取阅读、学习。
以上是关于三年的 Android 开发就这水平?我还不如去招应届生的主要内容,如果未能解决你的问题,请参考以下文章