互联网寒冬下,原生Android开发的路该怎么走

栏目: IOS · Android · 发布时间: 6年前

内容简介:18年的冬真冷,大家都在说裁员,其实裁员一直都在,只是18年的确多点。android 10年了,已经积累了太多的技术,知识点,技巧,思路,这些前人都会了,并且正在创造新的思路出来,对于广大的底层 coder 来说,仅仅是追赶就很难了,更别提去自己创造了,但是现实时我们尝尝学习了很多开源框架,落到实处就是仅仅会用而已,不说源码看没看过,甚至原理都不知道,不知道作者用什么技术实现的,这点就是广大 coder 的现状,没有成长。在来说大环境,在寒冷的冬天,还是有很多公司再招聘。在移动设备深入人心的今天,大家谁能离

移动寒冬

18年的冬真冷,大家都在说裁员,其实裁员一直都在,只是18年的确多点。android 10年了,已经积累了太多的技术,知识点,技巧,思路,这些前人都会了,并且正在创造新的思路出来,对于广大的底层 coder 来说,仅仅是追赶就很难了,更别提去自己创造了,但是现实时我们尝尝学习了很多开源框架,落到实处就是仅仅会用而已,不说源码看没看过,甚至原理都不知道,不知道作者用什么技术实现的,这点就是广大 coder 的现状,没有成长。

在来说大环境,在寒冷的冬天,还是有很多公司再招聘。在移动设备深入人心的今天,大家谁能离得开移动物联网设备,巨大的设备保有量决定了移动端市场需求还是旺盛的。企业需要什么的移动 coder,中高端啊。从我们把页面 code 出来的入门水平开始,成长到中级水平,说实话还是非常不容易的,事实是从平均来看,2-3年成长到中级的人也不是非常多的。企业再面试时也只能通过大量面试才能找到一个合心的高级开发,此过程耗时费力,说明大家水平相对需求来说还是太低,有待继续加强!

冬天冷的不是市场,是处于行业低端的我们,移动开发行业,不进步就会死,永远也不会改变,大家闷头努力一年,我们都能有个好收获的,再去面试机会机会大很多。

薪酬

如果你的薪资还没超越 20K ,说明你的安卓做的还不够好。

一方面,技术能力,知识面太窄了。建议多个模块功能都尝试一下。不能仅仅在自己公司的项目上,其他方面都不太精通。这样的结果,对自己发展不太好。(比如,对自己公司的功能做的贼好。贼了解。问一个其他方面功能模块,就不知道了。建议多方面都发展,并且多做数据分析。比如百度指数,阿里指数,APP功能指数,今日头条指数。然后自己往这些方向发展一下。比如2018年-2020年,项目中小视频,社区中小视频,直播,都会在项目中添加。这方面经验丰富的人需求很高)。

第二:有的同学是真的有能力,会做;但是能继续深入的理解原理,或者知道原理了,自己怎么去解决问题(而不是百度解决)的能力就差一点了。比如很多人在面试中都面临的,不会说,但是你会写,能写出来。为什么不会说,因为不是清楚系统的理解,所以不能回答的很好。

现实是我们夯实技术,扩展知识面之后,20K 是比较容易达到的,但是想过 30K 就很难了。那些能在 github 写自己开源项目,比如 okhttp,retrofit ,rxjava 这样重量级开源框架的 coder 才能过 50K 。着期中的差距,大家自己体会吧,努力可以过 20k,长久不停的努力积累之后才有过 30K 的希望,道路任重道远,大家努力珍重。再着期中要平衡工作,生活,家庭,健康是个大问题,唯有高效率才是根本出路~

Android层级划分

通常,我们将 android水平可以划分为:入门,初级,中级,高级,资深。

但是这样的划分对我们没有什么指导意义,不同层级的Android开发者的不同行为,我们该如何进阶和规划呢?

第一层:普通程序员

第二层:熟练开发者、高级开发工程师、技术组长

第三层:技术专家、架构师、一线经理

第四层:科学家、研究员、首席(资深)架构师、部门研发总监

Android如何过冬

上帝总是偏爱那些爱思考的人,爱思考的人运气一般也不会太差,在 哪有什么互联网寒冬?只是你穿的少而已! 一文中,作者大概聊了聊关于思考的话题,我觉得大家应该去看看,然后思考下自己

技术是我们的基本盘,但不是全部,最近阿里不是放话了吗,以后其他岗位的尽量挑有技术背景的,我看到这种思想渐渐再国内获得认同,越来越多的公司都在更考虑有技术背景的人,这是我们的机会,年龄大了,年纪到了,总是只有很少的一部分人才能顺利的晋升管理岗位,其他的同学必须面临转岗,转岗不是换行业,产品,项目经理,运营等等其他我们 coder 都可以干,这些岗位需要的技术,知识点相比 coder 来说简直是小巫见大巫,在我们平时对这些岗位有深入了解,有深入的交流经验,有深刻的认识后,我们 coder 转这些岗位其实不难,很快就能上手,但是这需要我们提前考虑好自己转岗的位置,平时要多去专注,交流, 学习,能再本公司内转岗是最好的了,这样公司会对大家比较宽容

coder 们要是打算换工作了,那就不要研究其他的了,就专心 android 技术吧,python,H5 等稳定下来再说吧,我们毕竟是做 android 开发的,找的也是 android 开发的工作,其他方向虽然更好但不是公司考虑的重点。

Android的核心知识点

做Android 开发,无外乎那么一些知识点:

  • 各大开源框架的研究,包括但不限于下面几个
    OKhttp、Retrofit、eventbus、Glide、eventbus、Rxjava、blockcanary、mvvp、dagger2等。
  • 组件化是基本要会的,插件化大公司要求会实操的。
  • java 部分,包括 常见的数据结构和算法,hashmap,二叉树,红黑树,apt 注解,aop插桩,整套多线程知识点,包括ThreadLocal实现原理
  • flutter/Dart 大家要开始学了,就和当年我们学 kotlin 一样,flutter 基本一锤定音了,google 下一代就是 flutter 的天下。
  • android 的系统原理,Lru算法,Binder机制,EventBus实现原理和为什么不能跨进程,跨进程几种方式,AIDL,handler机制。
  • 音视频开发,直播、点播、音视频通话、音视频会议,短视频,这些不一定要多深入,但是基本的各大平台的 SDK 要会集成,能根据开源的 哔哩哔哩IJKMediaPlayer 编写自己的视频,音频播放模块。
  • 最后,就是Android的优化了,Android的优化无外乎以下几个方面:内存优化(稳定性)、交互优化(流畅度)、耗电优化(省电)、安装包大小优化、网络优化、应用启动优化等几个方面。

如果大家想要深入的话,可以重点关注下以下几个方面的内容:

  • 图形图像开发,不限于OpenGL ES,EGL,GLSurfaceView,滤镜,美颜,canvas,paint
  • 应用层开发。主要还是原生开发,提高性能优化技能(启动耗时、内存、耗电、网络、数据库、稳定性等),达到高级开发者的水准
  • 深入Android专业技能提升。主要是阅读源码,理解透Android开发常见的流程和原理(activity启动流程、事件分发机制、广播机制、Binder机制、内存管理机制等)

向Android架构师发展。从平时的一点一滴开发中,有意训练Android架构设计能力,这需要站在一个更高的角度来统筹App开发。

  • 跨平台开发能力。如RN、Weex、Flutter等。大部分公司目前都需要有跨平台开发能力,所以我们很有必要提高这方面的能力
  • SDK和框架开发。可以通过研究开源项目或者实际项目开发,抽象提取有用SDK和框架供其他人使用
  • 研究Android安全开发。App加固原理和实现,熟悉常见加密方式(如:RSA、DES等)、Https、支付安全等。
  • Android自动化测试 工具 开发。这需要对ADB、Android截图、Android布局解析、Android测试框架等相当熟悉
  • 音视频开发。前两年比较火的直播,还有这一两年比较火的短视频,都是与音视频相关。所以,我们可以了解音视频的编解码以及传输协议等。
  • 手游开发。游戏给鹅厂带来了稳定的收入,所以这也是不错的方向。这就需要熟悉常见的游戏开发框架cocos2d-x、Unity3D
  • 图像开发。比如美图秀秀、天天P图,都用到图形的合成、滤镜等技术,对图像处理有很高要求。
  • Android Framework 开发

除此之外,要成长为一个架构师,还需要开发者具备系统设计能力。具体来说,为如果你仅仅是对各种各样的技术都熟悉,有技术广度,也有一定的技术深度,实际上是不够的。如果你的系统设计能力不到位,可能导致你在开发系统的时候会乱用技术。

比如说,有的系统他有一些自己特殊的业务场景和技术挑战,实际上在这个场景之下比较合适的是采用 “缓存 + 数据库” 的技术方案来应对。但是呢,有的工程师会很多技术,但是缺少这种准确的分析系统问题,提出合理的技术方案的能力,也就是缺少系统设计能力,导致他可能会引入Elasticsearch这种技术来尝试解决这个问题,那么结果必然是失败的。

规范代码

不管如何,你的代码得先能让人看。这是我在刚刚入行时,一个老司机指导我的,随着我在学习的深入,了解的更多,我们在基本功上的追求不就是为了代码更加好看吗,好看的代码才更好懂,才能好改,设计模式,代码架构,框架设计,MVP(多端分离) 不都是追求的这个最终结果嘛。

因此,我们可以从以下几个方面着手:

  • 实现功能前先设计好代码,好的框架层次,让我们可以快速的了解整个框架实现,快速的找到想要的代码,优秀准确的名字我们可以知道类是干什么的,
  • 注释写的尽量详细
  • 不要写太长的方法
  • 不要写太“牛”的代码了,有的 程序员 喜欢写非常有个性的代码,喜欢写一些别人很难看懂的代码,他认为这样才能显示出自己的“高水平”,这样就不是高水平了,只能说代码的可读性太差了。

最后,互联网不存在所谓的寒冬,只是你没有努力罢了!!!


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Pro JavaScript Design Patterns

Pro JavaScript Design Patterns

Dustin Diaz、Ross Harmes / Apress / 2007-12-16 / USD 44.99

As a web developer, you’ll already know that JavaScript™ is a powerful language, allowing you to add an impressive array of dynamic functionality to otherwise static web sites. But there is more power......一起来看看 《Pro JavaScript Design Patterns》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具