我怎么感觉全世界都在劝退学Android的程序员?

前言

和朋友们组建的一个Android技术交流群最近很热闹,每次看消息都是99+,以前除了开车可见不到这样的盛况。

企鹅头像一直在闪,一直苦于没有时间,后面点进去后发现,原来都是在谈论找工作和面试的话题。

围城

事情的起因是群里来了一个小新人,是个女孩子,先是用甜甜的声音请教了一些技术问题,群成员瞬间活跃异常。

(别问,问就是没见过女的,群成员90%都是男的,剩下的10%说不准还是女装大佬)

一开始还在正经的回答问题,结果到后面大家的话题就越来越歪了:建议转行;祝早日离职;赶紧辞了吧……

本来想加入话题的我,看见了这些开始陷入沉思,靠在椅子上,忍不住点了一只烟,我想起了钱钟书先生在他的作品中写过的一句话:婚姻是一座围城,城外的人想进去,城里的人想出来。

这话放在我们这份工作上也挺合适的:程序员这份工作也是一座围城,城外的人想进去,城里的人想出来。

城外的人想进去

在任意一个浏览器输入“程序员”三个字,以360和百度为例,在这个推荐的20条搜索中,有五条是关于“程序员入门”,“程序员自学”等相关的,而且排名很靠前。

上面的信息很直白的在传递着一个信息:很多人都想学习编程,想要成为程序员。

此外,除了“学习”相关的热门搜索,另外一个大家比较关注的点就是“工资”。程序员这份工作的平均薪资水平多次占据榜首,这也是大家对程序员这个行业如此热衷的原因之一。

2019年,IT行业薪酬水平稳居榜首,年平均工资为161352元;排在第二的是科学技术,为133459元;排在第三的是金融,为131405元。

再看看下面这张图,更直观了,有70%的程序员薪酬在十万以上。

上面这些原因导致一度出现三百六十行,行行转IT的盛况。

城里的人想出来

我记得我在逛某乎的时候,有几个问题经常上热榜:

“Android开发凉了吗?” “程序员的出路在哪里?” “感觉中国的程序员前途一片灰暗,是这样吗?”

这些话题下面有很多程序员都在吐槽自己,吐槽程序员这个行业

真相到底如何?

事实上,整天觉得世界灰暗的人,他们绝大多数都是那些些随便学了一两个月技术,项目都没做过一个就想来拿高薪的人。

但是结果没能如他们所愿,工作只是每天敲些老代码,上网搬轮子,坐着等加薪等升职,等提车买房的美梦落空了。于是上某乎吐槽。

其他那些认认真真学习技术,打磨了四五年的人他们大都换了个称呼,他们叫做工程师,技术人,技术专家,技术经理。他们的前景一片光明,让他们做一个月兼职的收入都比那些一味抱怨生活和工作,但是又不努力,不改变的二流程序员高。

如何做一个前景光明的程序员?

程序员这个行业靠不靠青春吃饭我不确定,但一定是靠技术吃饭的。

很多人带着劳动密集型的思维来做技术密集型的事情。

体力劳动的附加价值能有多高?

而且程序员这个行业的出现真的拯救了很多不擅长混职场、不愿意与人打交道的人,只要你能解决问题,哪怕你不说话,你的老板也照样给你加薪。

但这一切都是建立在你的「无可替代性」上的,如果你只会敲敲基础代码,搬搬轮子,百度一下,那你就很容易被替代。这样的你也根本没有底气没有筹码谈待遇,因为这些工作是体力活而不是脑力活,而程序员应该是建筑师而不是搬运工。

##如何提升自己?

这里我们可以从深度和广度努力。

  1. 提升广度

如果你选这个方向,可以尝试做一名全栈工程师,而所谓全栈工程师是指掌握多种技能,胜任前端与后端,能利用多种技能独立完成产品的人。

朝这个方向发展,不需要你每个方向的技术都学得多么深入,每一种语言掌握80%左右即可。你可能解决不了很多高深的技术难题,但你可以一个人解决前后端大部分的问题。而且因为对开发工作全局的了解都很熟悉,是离项目经理最近的开发人员。

  1. 钻研深度

而如果你选择第二个方向,就需要将某个技术领域的某一门或两门编程语言学习透彻,要做到这个技术领域上的所有问题到你这里都能得到解决。而常见的技术领域包括前端、后端、移动端、iOS开发等传统领域,还有近几年兴起的人工智能、大数据分析、物联网等。

具体方法有哪些?(此处只讲Android程序员)

(一)学什么?

当下时代,5G迅速铺开,在智能手机普及,流量降价的大环境下,NDK技术是必不可少的。

此外还有很多技术都是被大厂所看重的,归纳之后大致有以下技术要求:

  1. 深度理解Android平台架构、主要组成和工作模式;

  2. 有linux内核、framework和jni、虚拟机、安全逆向等底层技术经验;

  3. 深入理解设计模式,能够设计出高內聚,低耦合的系统框架,提升开发效率;

  4. 具有比较强的客户端系统架构设计能力,在通用性、跨平台和复用性方面有深刻的理解;

  5. 有大型软件架构设计和重构经验。

这里推荐阅读:

(二)怎么学?

这里给大家分享一下我自己的学习思路:

1. 学习基础知识

Activity相关实体知识体系

• Task启动原理与调用栈内核

• 生命周期与内核管理原理

• ViewGroup源码解析

• View源码分析与高级自定义View项目实战

• 事件分发的核心机制

• Handler通信原理与框架手写

• Intent数据传递原理和内核

• Hook Resource源码实现

Fragment 内核

• Fragment事务管理机制与控件混合应用原理

• Fragment事务管理的原理

Service 内核原理

• 生命周期及AMS关系

• 两种启动方式启动原理

• 基于内核的应用实战

• Service进程优先级调优与实战

• Service职责原理

实体间的通信方案

实体中数据存储专题

2. 阅读源码+实战运用

关于源码的阅读和实战运用,我这边梳理了一份笔记,还有在网上整理的一套实战的教学视频。

推荐阅读:牛掰!阿里P7大佬爆肝半个月,把安卓源码解析编成了508页的PDF

如果大家有需要,可以点个赞,留言“111”,支持我一下,然后就可以点击此处蓝色字体直接进我们两千人的技术交流小圈子在群文件取或者直接找我拿。

最后

说这么多,并不是想给大家制造焦虑,而是想告诉大家:坚持一个目标走下去是辛苦的,但是你的付出不会白费。

Android没有凉,也不可能凉,毕竟当下Android用户量是明显摆在那里的事实。只是,现在的Android对从业者的要求变高了,竞争变的激烈了,在这种环境下,我们更需要奋斗,不是吗?

最后,如果你觉得本文对你有帮助,希望可以点个赞,留个言,支持一下我,感谢。

猜你喜欢

转载自blog.csdn.net/weixin_49559515/article/details/113529155