前言

九月裸辞从长沙跑到上海,跑了一个月的面试,本月中旬终于拿到了爱奇艺的高级工程师offer。

做Android开发整4年有余,但是这一年才是最充实的,我花一年时间努力,送给了自己一个完美的蜕变!

寒冬裁员潮给我的危机感

我普通本科毕业,在长沙待了四年,其中只换过两家公司。去年这个时候,公司业绩不好要裁人。主管平时跟我关系比较好,说我本来也在被裁的考率名额中的,他帮我跟领导说了一堆好话才没事。我请主管吃了一顿火锅。

但是我无法像以前那么心安理得混日子了。因为我去年首付买了房。原本想着每个月稳定税后拿个8k的工资。挺满足的(8k在长沙算中高水平了)

想不到我要求这么低还差点被淘汰了??

初级

初级研发工程师的定义是掌握基础的Android知识,能够独立完成一个功能,工作年限大概在1-2年,这个层级大部分人通过看一些资料书籍再经过项目练习很快可以达到。这个级别的人往往需要掌握如下一些技能:

  • 掌握Android 四大组件知识,深入了解相关生命周期,对于Application、Fragment、Intent常见的开发知识也必须掌握。
  • 掌握Android 基本布局和控件的属性和使用,常用布局有LinearLayout、RelativeLayout、ConstraintLayout等,控件有- TextView、ImageView、RecyclerView、ScrollView等。
  • 对Android的资源访问使用有基本了解,了解Android针对不同国家、语言、屏幕、API的适配原理。
  • 掌握android系统服务和工具类的使用,对网络访问和数据库操作有基本认知。
  • 熟练掌握研发工具,如IDE、模拟器、网络代理、日志等。

中级

我对中级工程师的定义是能够熟练完成功能研发外,还需要掌握常见开源库的一些原理,并仿照开源库去造轮子练习。这个阶段的人大多工作3-5年,业务开发能力熟练,碰到任何一个问题都能够得到解决,这个级别的人往往需要具备如下技能:

  • 熟悉SOLID基础设计原则,掌握23种设计模式。
  • 对于研发语言特性java/kotlin有深入理解,如反射、动态代理、apt等。
  • 对Android架构有基础了解,对apk结构和打包原理有深入了解。
  • 对于Android各个版本特性有基本了解,如MD设计、权限管理、doze模式等。
  • 熟练掌握各种研发调试工具,如git、gradle、mat、layout inspector等。
  • 掌握Handler\AsyncTask原理,熟悉多线程开发。
  • 对绘页面制原理有初步理解,能够实现一个复杂自定义控件。
  • 能够熟练掌握开源库的使用,如图片库(Glide\Fresco)、网络库(Volley\okhttp\Retrofit)、工具(Dagger\RxJava\EventBus)等,能够对这些常用的库进行二次封装。
  • 熟悉应用常见的优化方法,避免编写内存泄漏的代码。

高级

对于高级,就不仅限于功能和业务开发,还需要深入理解Android系统的运行原理,达到融会贯通,部分可够作为Android端架构师。这一阶段的人大多工作5-8年,具备开源库设计能力,同时对于Android系统的运行原理也比较了解。

  • 掌握java高级特性,如JUC、线程池、NIO\BIO等;掌握jvm虚拟机知识,如内存模型、GC原理、类加载机制、线程模型等。
  • 对Android运行环境有深入理解,理解Android沙盒机制,掌握AIDL原理及Binder通信原理,了解app和activity启动原理。
  • 掌握热修复原理,各大厂商方案的优缺点。
  • 对于Android事件分发有深入理解,重点掌握触摸事件机制。
  • 深入理解Android绘制原理,理解VSYNC和surface机制和窗口原理。
  • 深入理解Android动画原理,包括补间动画和属性动画。
  • 对于Android安全机制有基本认知,理解Android安全原理。
  • 深入理解端上设计范式思想,如mvc\mvp\mvvm\clean-arch等。
  • 理解架构演进,有良好的分层和拆分思路,掌握模块化、插件化、动态部署等。
  • 对新技术敏感(,理解掌握下一代架构dynamic feature等。

如果达到这一水平,恭喜你,你已经超过70%左右的人,但是如果要再进一步,比如架构中/开发专家,那么除了理解Android的一些核心原理外,还需要具有架构设计能力,能够从更高层面看待问题,理解整个系统的设计。

专家

作为开发专家,那么除了理解Android的一些核心原理外,还需要具有架构设计能力,能够从更高层面看待问题,理解整个系统的设计。

  • 理解微服务、SOA思想,对于后端开发有一定涉猎。
  • 了解前端研发工具和思想,知道vue react等研发框架。
  • 深入理解跨端技术,如phonegap、weex/RN flutter、小程序快应用等。

那么除了上面的技术方面你与高级工程师差在哪里呢?

1、工作经验与技术积累

说到高级工程师大家的第一印象自然就是工作经验丰富,技术够牛逼。

注意这里说的是工作经验,并不是指工作时间。有的人踏踏实实做项目,业余时间想着多学点新技术,坚持读书,认真写博客总结,多实践,加上自己本身悟性又不差的,2、3 年的时间都可以有别人 3、5 年的工作经验,成长为公司的高级工程师水到渠成。而有的人混日子,做的项目得过且过,业余时间玩游戏,追剧,也许你在公司工作了 10 年看起来兢兢业业,然而你对自己没有更高的要求,安于现状,不求进步,这类人即使有 10 年的工作时间,却只能止步于此。

靠着自己持续不断的学习,以及工作经验的积累,一步一步,见得市面多,踩的坑也多,技术越来越牛逼也是理所应当的事,而技术是一个高级工程师最基本的要求,然而我却认为只要不是傻子,对技术有点追求的人,想达到这点不难,只是时间长短问题而已,除了技术,你跟那些真正的高级工程师还有其他方面的差距!

2、责任心

高级工程师责任心一定很强,责任心是体现一个人的态度问题,对于一个 bug ,他们永远都会重视,想尽一切办法找到原因并尽快解决,而有的人对于 bug 却是得过且过,解决 bug 的态度就是尝试,认为从表面上解决了就 ok 了。

我们 CTO 十几年的软件开发经验,有用户反馈 bug ,不管多忙,不管什么时间,一定停下手头上的事情,去找到原因并解决。我在薄荷的经历,曾不止一次跟着他为了解决一个 bug 搞到深夜,有几次深夜发现一个导致用户不能付款的 bug ,我都躺床上睡觉了,被 CTO 喊起来半夜赶往公司去修复的经历,当时还觉得不理解,时间长了,我才意识到这种责任心是职业素养,现在也深深的被感染,在任何时候、任何时间,我的手机、电脑都是不离身,出问题一定第一时间进行响应!

对比下你们,你们的责任心够强么?

学习路线+知识梳理

花了很长时间,就为了整理这张详细的知识路线脑图。当然由于时间有限、能力也都有限,毕竟嵌入式全体系实在太庞大了,包括我那做嵌入式的同学,也不可能什么都懂,有些东西可能没覆盖到,不足之处,还希望小伙伴们一起交流补充,一起完善进步。

本文在开源项目:Android开发不会这些?如何面试拿高薪 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

(https://docs.qq.com/doc/DSkNLaERkbnFoS0ZF) 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

这次就分享到这里吧,下篇见

Android免打包多渠道统计如何实现?通用流行框架大全相关推荐

  1. Android免打包多渠道统计如何实现,看看这篇文章吧

    接下来正式开始多渠道打包. 1.首先在渠道管理中新增渠道,可以自己定义渠道编号和名称,比如上传到应用宝市场的,可以定义渠道ID为"应用宝",方便后期查看统计数据.然后自定义落地页, ...

  2. Android免打包多渠道统计如何实现?附带学习经验

    HR眼中的你无人问津的原因 1.大公司重点在校招,而非社招 大公司每年集中精力搞校招,所以社招岗位非常少:另外一个原因是大公司的人才流失率比较低,就算是流失率高,但大多数工作分工明确,替代性强. 最具 ...

  3. 事件分发机制流程图,Android免打包多渠道统计如何实现?Android核心知识点

    开头 这是一个做精品的时代了,不是当年出个产品就能拉投资骗点击的时代了.精品需要的是更专业的人才,也就是对APP开发人员的素质要求会更高,这个市场会回归一个正常的节奏,拿多少钱就是看能力,看产品.我觉 ...

  4. android开发那些事儿(五)-通用流行框架大全

    1. 缓存 名称 描述 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 名称 描述 Android Universal Image Loader 一个强大的加载,缓存,展示图 ...

  5. Android通用流行框架大全

    Android通用流行框架大全 1. 缓存 名称 描述 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 名称 描述 Android Universal Image Loade ...

  6. android开源项目!来一份全面的面试宝典练练手,通用流行框架大全

    前言 今天我给大家再次分享一下,我最近的一些读书的感想,思考起来,确实能够给自己带来一些真实的帮助和启发,希望大家在平时的工作学习中,也能够认清楚学习的一些本质. 如果我们的学习是在不断掌握应对具体工 ...

  7. 15个Android通用流行框架大全

    1. 缓存 DiskLruCache    Java实现基于LRU的磁盘缓存 2.图片加载 Android Universal Image Loader  一个强大的加载,缓存,展示图片的库 Pica ...

  8. Android 通用流行框架大全

     尊重原创 1.这个也是框架总合 2.百大框架等你来拿 3.Studio的插件 1. 缓存 名称 描述 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 名称 描述 Andro ...

  9. android中的饱和机制,Android事件分发机制收藏这一篇就够了,通用流行框架大全...

    Android没凉,只是比以前难混了 多年前Android异军突起,成了新的万亿级市场,无数掘金人涌入,期待可以一展拳脚. 那时候大环境下的手游圈,只要你能有个可以运行的连连看就能找到工作,走上赛道被 ...

最新文章

  1. php普通索引和唯一索引,mysql下普通索引和唯一索引的效率对比
  2. 将.NET概念映射到Lightning平台
  3. etc/ld.so.conf
  4. Taro+react开发(88):taro条件渲染
  5. IIS 7.0 部署MVC
  6. lsof 列出谁在使用某个端口
  7. JQuery获取和设置Select选项常用方法总结 (转)
  8. LintCode—删除链表中的元素(452)
  9. 计算机等级考试四级信息安全工程师
  10. 【财务篇】如何群发工资条?
  11. html根据出生日期计算星座,星座测算.html
  12. 《西方哲学史》阅读笔记
  13. 计算机备品备件如何管理,备品备件管理系统
  14. JavaScript---网络编程(9-1)--DHTML技术演示(2-1)-表格创建的几种方式
  15. 世界上最著名也最危险的APT恶意软件清单
  16. 电商运营之业务数据报告
  17. 推荐一款备忘录便签APP简约款安卓版本
  18. OpenNURBS 3DM Viewer
  19. 苹果android通用插头,苹果充电器插头可以给安卓手机用吗??
  20. cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso

热门文章

  1. iReport制作EXCEL、PDF或者HTML文件
  2. 2022年通信工程专业保研:从四非到浙大工院夏令营面试经验分享(前期准备篇/含通信原理面试真题)
  3. matlab绘制分组条形图的误差棒errorbar
  4. java coroutine / xiecheng / java Qursar /
  5. 高等数学:如何理解泰勒展开公式?等价无穷小与泰勒公式的关系是什么?
  6. 笔记本外接显示器没有声音
  7. 求所有质因子(Java)
  8. 零基础能掌握seo知识吗
  9. Flutter安装后出现HTTP host not reachable.
  10. 如何理解界面陷阱电荷呢(interface trapped charge)和费米钉扎效应?