前言

和朋友们组建的一个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职责原理

实体间的通信方案

实体中数据存储专题

  1. 阅读源码+实战运用

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

如果大家有需要,可以点个赞,留言“111”,支持我一下,然后口可以直接进我的【GitHub】,里面有免费获取途径。

最后

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

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

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

全世界都在劝退学Android的程序员相关推荐

  1. Android从程序员到架构师之路3

    本文学习自高焕堂老师的Android从程序员到架构师之路系列教学视频 40 - 认识线程(Thread)模式a 1. 线程(Thread)概念 所谓线程(Thread) 是指一串连续的执行动作,以达成 ...

  2. 2023年,Android开发程序员未来职业发展规划

    2023年,是我从事Android开发的第10年,也是我加入35岁中年危机大军的一年.在我的10年工作生涯中,不止一次思考过自己的职业规划和未来的职业发展方向.关于国内程序员 35 岁以后的出路,网络 ...

  3. Android开发程序员从大厂裸辞,面阿里、字节接连挂,网友直呼:菜是原罪,没实力大厂镀个遍也没用

    现在很多人会通过进入大厂镀金后再就业涨薪的方式,但是并不是每一个人都成功镀金.最近在职场论坛上看到这样一个抱怨帖子:"谁说的大厂镀金,信了你们的鬼话,裸辞两月0offer,早知道前年选虾皮了 ...

  4. 新的一年,Android开发程序员应该怎样突出重围?

    过完年,马上就又要到每年的金三银四求职季了. 作为程序员,我们都会追求技术精进和升职加薪,但想成为技术大牛并不是一朝一夕的事情,需要时间的沉淀和技术的积累.因此早日开始准备,才能多一分竞争力,添一分面 ...

  5. 2020Android大厂高频面试题(字节跳动+阿里,作为Android开发程序员

    Update SALES Set qty=60 WHEREqty<60 COMMIT TRANSACTION B COMMIT TRANSACTION A A.SALES表中qty列最小值大于等 ...

  6. android开发 自我优势_6年Android开发程序员教你如何写简历!看完别再问为何你只值5K...

    每年这个时候,就会有大量的程序猿.攻城狮.产品汪等等准备换一个新环境.而换环境的第一个门槛就是如何写好一份简历 很多小伙伴私下问我,前端都学得差不多啦,想去面试看看,但是简历投出去都石沉大海了. 本篇 ...

  7. android viewbinding_程序员必懂小技巧之ViewBinding

    终于有一篇带大家从本质来了解 ViewBinding 了. 如果你完全没了解过 View Binding,可以先看下面这篇介绍: AS 3.6 Canary 中推出新技术 视图绑定 View Bind ...

  8. Binder源码阅读指南之java层,作为Android开发程序员

    // Find the service manager sServiceManager = ServiceManagerNative.asInterface(Binder.allowBlocking( ...

  9. Android 初级程序员

    1.Android开发基础类 1-1 Task/AsyncTask 1-1-1 Android 线程模型和 AsyncTask 1-1-2 完美的解决如何让AsyncTask终止操作 1-2 开发实例 ...

最新文章

  1. c++画多边形_水彩画,这么美!怎么画出来的?
  2. LaTex 插入数学公式
  3. 6.NFC之非NDEF格式
  4. MSSQL → 02:数据库结构
  5. 01_正则表达式_05_小结和几个案例
  6. Android开发笔记(一百三十五)应用栏布局AppBarLayout
  7. Hexo+next的侧边栏背景与字体颜色设置方法
  8. 使用plist文件进行ipa的安装
  9. 百度指数和股票的相关性
  10. 计算某一点绕另一点旋转一定角度后的坐标
  11. JavaEE:HTML
  12. 慢就是快的人生哲理_快与慢,人生的哲学思考
  13. Android推送集成方案总结
  14. debian 笔记本 准系统 RTL8822BE 8723 8192 8188 8168 8111 8107 8821-22 等PCIE 无线网卡蓝牙驱动安装
  15. bootstrap地址选择(全国省市选择、定位)功能
  16. Intraweb之EasyUI篇
  17. 技巧 | 使用基础绘图系统绘制「森林图」
  18. 教你如何找回被盗的QQ密码(转贴)
  19. 【分享】AlienWareM15R6键盘失灵
  20. 高僧斗法 nim博弈

热门文章

  1. [转]十二时辰养生法
  2. CSS中的BFC详细讲解(易懂)
  3. [DV]闪存主控芯片验证全流程
  4. 计算机和电脑键盘进水怎么办,电脑键盘进水怎么办 键盘进水解决方法【详解】...
  5. 机械革命X8TI个人问题汇总
  6. MPEG-4、MPEG-4/AVC、H.264、H.265之间的联系与区别
  7. 边框样式、段落样式、背景样式
  8. 【五一创作】LoRaWAN简介
  9. 好用的一键重装电脑系统软件介绍
  10. 【基于obs开发推流工具教程】-context 多线程问题