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

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

全世界都在劝退学Android的程序员

全世界都在劝退学Android的程序员

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

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

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

城外的人想进去

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

全世界都在劝退学Android的程序员

全世界都在劝退学Android的程序员

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

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

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

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

全世界都在劝退学Android的程序员

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

城里的人想出来

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

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

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

全世界都在劝退学Android的程序员

全世界都在劝退学Android的程序员

全世界都在劝退学Android的程序员

真相到底如何?

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

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

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

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

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

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

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

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

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

##如何提升自己?

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

  1. 提升广度

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

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

  1. 钻研深度

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

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

(一)学什么?

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

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

  1. 深度理解Android平台架构、主要组成和工作模式;
  2. 有linux内核、framework和jni、虚拟机、安全逆向等底层技术经验;
  3. 深入理解设计模式,能够设计出高內聚,低耦合的系统框架,提升开发效率;
  4. 具有比较强的客户端系统架构设计能力,在通用性、跨平台和复用性方面有深刻的理解;
  5. 有大型软件架构设计和重构经验。

(二)怎么学?