三年的 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
  • 反射
  • 单例
    • 饿汉式
    • 双重检查模式
    • 静态内部类模式
  • 线程
    • 状态
    • 状态控制
  • 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
    • 线程池
  • RecyclerView 优化
  • Webview
    • 基本使用
      • WebView
      • WebSettings
      • WebViewClient
      • WebChromeClient
    • Webview 加载优化
    • 内存泄漏

第三章 Android 扩展知识点汇总

  • ART
    • ART 功能
      • 预先 (AOT) 编译
      • 垃圾回收优化
      • 开发和调试方面的优化
    • ART GC
  • Apk 包体优化
    • Apk 组成结构
    • 整体优化
    • 资源优化
    • 代码优化
    • .arsc文件优化
    • lib目录优化
  • Hook
    • 基本流程
    • 使用示例
  • Proguard
    • 公共模板
    • 常用的自定义混淆规则
    • aar中增加独立的混淆配置
    • 检查混淆和追踪异常
  • 架构
    • MVC
    • MVP
    • MVVM
  • Jetpack
    • 架构
    • 使用示例
  • NDK 开发
    • JNI 基础
      • 数据类型
      • String 字符串函数操作
      • 常用 JNI 访问 Java 对象方法
    • NDK 开发
      • 基础开发流程
      • System.loadLibrary()
    • CMake 构建 NDK 项目
    • 常用的 Android NDK 原生 API
  • 类加载器
    • 双亲委托模式
    • 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 开发就这水平?我还不如去招应届生的主要内容,如果未能解决你的问题,请参考以下文章

三年自动化测试真就这水平?还不如去招应届生

三年自动化测试这水平?我还不如去招应届生

4年经验来面试20K的测试岗,一问三不知,我还真不如去招应届生。

面试官:3年自动化测试就这水平?我还不如去找应届生...

面试官:3年自动化测试就这水平?我还不如去找应届生...

3年经验来面试腾讯测试岗,自动化基础都不会,凭什么月入20k,还不如去招应届生。