写点什么

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

用户头像
Android架构
关注
发布于: 9 小时前


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


城里的人想出来




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


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


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





真相到底如何?




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


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


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


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




《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码




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


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


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


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


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


##如何提升自己?


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


  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. 阅读源码+实战运用

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

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
我怎么感觉全世界都在劝退学Android的程序员?