开心玩笑 發表於 2020-12-28 13:44:00

Android开发已过时,转行风险大,Android原生开发出路在哪?

<h2>Android开发现状</h2>
<p>移动端开发的现状是什么?我们可以从自己写的代码中寻找线索。以 Android 为例,很多大公司的移动端开发者写的最多的代码是这样的:</p>
<pre class="prettyprint"><code class="has-numbering">LinearLayout layout = new LinearLayout();
layout.addView(xxxx);
...
</code></pre>
<p>&nbsp;</p>
<p>或者也许是这样的:</p>
<pre class="prettyprint"><code class="has-numbering">public class XXXView extends RelativeLayout {

    public XXXView(Context context) {
      this(context, null);
    }

    public XXXView(Context context,
            @Nullable AttributeSet attrs) {
      this(context, attrs, 0);
    }

    public XXXView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
      super(context, attrs, defStyleAttr);
      initView();
    }

    private void initView() {
      LayoutInflater.from(getContext()).inflate(R.layout.xxxlayout, this, true);
      ...
    }

    public void setData(XXX xxx) {
      ...
    }
}
</code></pre>
<p>&nbsp;</p>
<p>又或者是对着 xml 标签做出各种骚操作——UI 开发。</p>
<p>没错,如今移动端技术栈已经愈发趋于成熟完善,对业务来说,就连大公司的工程师也是在做 UI 的展示逻辑。大公司产品相对比较完善,后端管控了大部分业务逻辑,客户端做的就是取到后端的数据,然后通过setText(xxx)展示出来,然后通过接口返回的 Boolean 值来判断 View 显示还是隐藏。</p>
<p>我听到很多人说,工作几年感觉自己没什么提升,天天都在堆代码,随便找个刚毕业的学生也能分分钟替代自己,于是就很焦虑。那对于工作几年的人来说,要想尽可能不让自己过早的被替代、被淘汰,就需要选一个有潜力的有前景的领域深挖。<br><img src="https://img-blog.csdnimg.cn/img_convert/b103d4b0443a3ef58d322daff6f5a13d.png"></p>
<h2>转行风险大</h2>
<p>学习成本低,不意味着就没有成本</p>
<p>编程难么?说实话还是挺难的,这里我是针对大部分没有基础的人来说的,不排除有天才、大神能无师自通。很多人对编程的印象来自于电影,即使现实中有程序员朋友,你也很难 get 到他每天到底在电脑前干啥。为什么用键盘输入一句话,电脑就开始自动帮你干活了,这些你没有自己写代码之前,是没有体感的。隔行如隔山,就跟我读别的行业的文章跟天书一样,想转行,是需要付出很多的。</p>
<p>上手门槛低,反而更难找到工作</p>
<p>已经有水泥搅拌机了,你还需要学怎么用铁锹么?<br>没错,现在的编程门槛越来越低了:以前建个网站可能要 LAMP 一条龙,现在只需要拖拖拽拽一键生成;美国倡导全民编程,App Store 里也有很多少儿编程教学 App,按部就班就能开发属于自己的程序,一切看起来 so easy。但是,掌握越是容易的东西,你的竞争力就越低,大家都会的东西为什么还要给你高薪。“世之奇伟瑰怪非常之观,常在于险远,而人之所罕至焉“。</p>
<p>所以“学会”编程,和找到工作之间,有一定差距。</p>
<p>不同的工种,可能完全是两种体验</p>
<p>如果把编程比作盖房子,那有的人是搬砖头的,有的人是搅水泥的,有的人是做木工的。虽然都是体力活,但是木工可能比水泥匠优雅一些,水泥匠可能比搬砖工轻松一些(这里全是主观比喻,你懂就行),盖的房子越大,工种分的越细,虽然都是盖房子,但不是所有的工种都适合你的,你只有充分了解才能判断出自己到底擅长什么适合什么。而且一旦选了方向,面对的都是浩如烟海的知识,每天还在更新,根本学不完。你要是上进,还得“一专多强”,就是什么都得会一点,还有一个方向是你的核心竞争力。</p>
<p>不同的等级,付出的是脑力与“体力”的区别</p>
<p>同样是盖房子的例子,有的人当了工程师,有的人是规划师,有的人是架构师,失之毫厘,差之千里。别人是画图纸的,你是搬砖的,画图纸的同学比你还赚的多。行业专家历经沧桑,经历过“修下水道把光纤挖断”这种史诗级故障,所以在做架构时能做到充分的应对。而新入行的同学,不管是科班生(就是计算机专业毕业的同学)还是半路出家的,经验还稍显稚嫩,得从基础工作做起(各行各业都差不多的)。而且大部分转行的同学,还有可能应聘去了一些外包公司,在外包公司工作,大概率是接触不到核心技术的,只能做做边缘工作,纯“体力”劳动了。</p>
<p>转行成功不是高枕无忧</p>
<p>编程是学无止境的,想要转行就要做好这个觉悟。每天新的技术层出不穷,我三年前会的技术,现在已经完全被淘汰了,是完全,都没人再用了。所以我在这个技术上积攒的经验是完全没用了,新人虽然听都没听过这个技术,但和我是站在同一起跑线的。我需要不同的学习,还要学的比他们快,才能保证不被他们淘汰。</p>
<p>年龄是跨不过去的坎</p>
<p>不是说高压高强度工作导致身体跟不上,而是即使你一直轻松的工作,到了一定年龄,学习速度是真的有可能比不上年轻人。去年流出某公司裁退34岁以上员工的新闻,想来也不是无稽之谈。且不说前几年国内软件工程等计算机专业在大学呈现井喷现象,导致新人很多(这里吐槽一下,是个学校就开设了这个专业。很多大学极不负责任,任教老师可能是现学现卖,所以国家也是一下子撤销了 35 个软件工程学位点),现在转专业转行的人也越来越多,公司可以以更低成本招聘更有潜力的人,所以老程序员的出路已经成了一个问题。</p>
<p>以上两大点,令我们从业者也是忧心忡忡,不少人年纪差不多就转行出去了,而你们还在前赴后继的转行过来,又是一座围城。现在第一批程序员已经到了40多岁,且看国内到时候是否会出现从事程序员工作一辈子的人罢!</p>
<h2>Android进阶之路</h2>
<p>那么,作为Android 开发者,该怎样规划自己的学习路线,然后一步一个脚印的向中高级进阶呢?<br>①架构师筑基必备技能</p>
<blockquote>
<p>**主要技能:**深入Java泛型、注解深入浅出、并发编程、数据传输与序列化、Java虚拟机原理、反射与类加载、动态代理、高效IO。</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/e82fc3b0c1e530d0d009beffb332b1c4.webp?x-oss-process=image/format,png"></p>
<p>相关的学习文档资料:</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/93c0dc625dc810a16e740a9ed2e0055e.webp?x-oss-process=image/format,png"></p>

</blockquote>
<p>②Android高级UI与FrameWork源码</p>
<blockquote>
<p>**主要技能:**高级UI晋升、Framework内核解析、Android组件内核、数据持久化。</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/1ce8c89c95ea10122916eb9c01798788.webp?x-oss-process=image/format,png"></p>
<p>相关的学习文档资料:</p>

</blockquote>
<p>③360°全方面性能调优</p>
<blockquote>
<p>**主要技能:**设计思想与代码质量优化、程序性能优化、开发效率优化</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/2158be9d643cc0aeecc1032f620f1196.webp?x-oss-process=image/format,png"></p>
<p>相关的学习文档资料:</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/0f1539db816a07cf1f5bb04de208e049.webp?x-oss-process=image/format,png"></p>

</blockquote>
<p>④解读开源框架设计思想</p>
<blockquote>
<p>**主要技能:**热修复设计、组件化框架设计、图片加载框架、网络访问框架设计、RXJava响应式编程框架设计、IOC架构设计、Android架构组件Jetpack</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/394e361b6988a3d7a83c56c47542b368.webp?x-oss-process=image/format,png"></p>

</blockquote>
<p>⑤NDK模块开发</p>
<blockquote>
<p>**主要技能:**C与C++、JNI开发、Native开发工具、Linux编程、底层图片处理、音视频开发</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/0094101141f5ac01e465069a471e047a.webp?x-oss-process=image/format,png"></p>

</blockquote>
<p>⑥架构师筑基必备技能</p>
<blockquote>
<p>**主要技能:**架构设计、MVP,MVP与MVVM、模块化与组件化架构</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/a2c41b94b89cbe9a36c0ba9704a0ed4d.webp?x-oss-process=image/format,png"></p>

</blockquote>
<p>⑦微信小程序</p>
<blockquote>
<p>**主要技能:**UI开发、API操作、微信对接</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/3845b98776f26570e83bfc6b12456d1c.webp?x-oss-process=image/format,png"></p>

</blockquote>
<p>⑧Hybrid 开发与Flutter</p>
<blockquote>
<p>**主要技能:**Flutter Framework架构浅析、Flutter应用启动分析、Flutter消息机制、Flutter的Platform Channel机制、Flutter异步Future机制、Flutter的Isolate创建过程、Flutter渲染机制、setState更新机制、Flutter动画原理。</p>
<p><img src="https://img-blog.csdnimg.cn/img_convert/1aeb382eb1a578014b03246b2dabb3b8.webp?x-oss-process=image/format,png"></p>

</blockquote>
<p>上面大纲都有相对应的PDF文档资料帮助他们学习理解的:</p>
<blockquote>
<p><img src="https://img-blog.csdnimg.cn/img_convert/915c4cba16940c9ce21312b0bf3ac5ab.webp?x-oss-process=image/format,png"></p>
<p>以上内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。</p>

</blockquote><br><br>
来源:https://www.cnblogs.com/Android-Alvin/p/14201145.html
頁: [1]
查看完整版本: Android开发已过时,转行风险大,Android原生开发出路在哪?