技术有很多种,也永远学不完。不仅语言更新换代严重,技术范围也有自己的更新,今年 C 语言流行,明年 Python 风靡,今年人工智能火爆,明年物联网是风口。我一直在思考技术人就这么苦逼地一直要跟着技术的风向跑吗?有没有一条可以沉淀下来,打磨到退休的技术?
我想技术永远是发展的,但有一条路径值得学习沉淀,甚至可以做到退休。
我们暂且宏观上把程序员分为3类:业务类,专业类,系统类。
程序员分类
业务类
业务类更多的是在应用程序。随着移动互联网的快速发展出现一批 UI 设计师,这里的设计师是指 APP 的界面设计,在注重用户体验的今天对于界面的设计出现水涨船高的需求。一时间 Android, IOS 的 APP 开发者如雨后春笋般涌出,待遇也是不低。高级的应用程序员除了界面的开发外也会涉及程序内部的业务逻辑,现在的 APP 逐渐演化成很多层的架构,比如分为业务逻辑层,基本功能模块层,UI 界面层等,如下图所示:
![2d3c3b2d92276222056bfdcfd77a3ce1.png](https://i-blog.csdnimg.cn/blog_migrate/25303bf60c01e5c590029fb545732de4.png)
一个 APP 就包括了很多内容。如果志向写应用程序的小伙伴,我建议你先练好基本功:数据结构,算法导论,网络编程,数据库等。然后根据兴趣的行业深耕学习。因为这一行的开发者和业务联系比较大,后续换行业就不太吃香,比如美图秀秀开发者更多的是注重在图形显示这一块,网易云音乐更多的就注重在音频这一块。当然不能以偏概全,很多能力是通用的,我这里的举例主要是相对而言。应用程序开发者会随着业务的多变性经常加班 coding,解 bug。所谓的码农更多的是出现在这一领域。
专业类
![7882d66adbf892977a5ed38eba62d170.png](https://i-blog.csdnimg.cn/blog_migrate/97cbbef95ff00483afa8268db1bf62b8.png)
应用程序开发者是完成业务的直接执行者,夸张的讲应用程序开发者就是 API 调用者,但这些 API 是如何实现的?不同的专业领域有不同的 API。以上图 APP 框架为例,HTTP 网络请求就是调用了网络领域的 API 接口, SQLITE 就是调用了数据库领域的 API 接口,再比如目前比较火的人工智能,语音识别,图像处理等都属于专业类领域。这一领域的工作者拥有比较强的理论知识,算法知识,多以研究生或者博士生为主。这一领域的优势是待遇高,可替代性低,但也因为研究领域的专一性在找工作时也面临一些局限性。
系统类
![cb7e3ee542e01b84e0b641c8087eb962.png](https://i-blog.csdnimg.cn/blog_migrate/2e2776747c048ff70160a95bdae36ea4.png)
这里系统主要指 linux 系统。系统是个太大的概念,有上层 framework 系统也有底层内核机制,也包括驱动开发,甚至硬件也要知道。这一领域的人更多的是在嵌入式行业。在操作系统领域对知识要求很多:
看懂电路图
看懂芯片手册
有编写,移植驱动的能力
懂内核的实现机制
懂C语言,C++, JAVA等
这一行的优势是学好后行业通杀,大公司基本都有这方面人才的需求;相对做应用程序的人不会经常因为业务需求的变动搞得天天加班;行业稳定越老越吃香,不太会出现程序员35岁职业生涯问题。另外操作系统是很通用性的知识,夸张的讲只要是 IT 行业,学点操作系统的知识肯定是如虎添翼的作用:
硬件工程师通过学习可以理解软件的运行原理
APP 工程师学些系统知识更有利于走向全栈
大学生学习linux对找工作多有益处
学好 linux 即可以做开发也可以做运维
永远不会淘汰的技术,只会越老越吃香
系统学习的升级宝典
转眼,毕业也有10年的时间。回忆总结,个人觉得学习最重要的两点是自己动手,自己整理。只有这样才能把知识点在自己的大脑里形成闭环,闭环的知识体系才是真正的掌握,努力一把,受益整个职业生涯,这是性价比最高的学习方法。认知到了,下一步最重要的就是资料,没有学习资料,一切都是空谈。春节期间我用了3天的时间把极客时间的课程梳理了一遍,考虑到每个人的背景不同,这里把学习路线分为三级,分别是入门,进阶,高手。
入门
掌握基本功阶段,需要掌握通用编程基础(C语言、数据结构/算法、操作系统、计算机网络、计算机组成原理、Linux系统基础)和基本的硬件基础,打好两大基础,是后续持续发展和不断进步的动力源泉。
![a9f377d46461c3cc2dd99869e48ad116.png](https://i-blog.csdnimg.cn/blog_migrate/e4e7a258166f4103179cc26c00d4da1b.png)
进阶
嵌入式应用编程阶段,需要会以特定的嵌入式平台和特定的嵌入式操作系统为依托,熟悉这个系统平台上的编程方法和流程。以常见的ARM+Linux平台为例,需要掌握从内存管理到多任务编程、文件I/O、网络编程等内容。
![926d2008d52e103ec51a2987fc4cd217.png](https://i-blog.csdnimg.cn/blog_migrate/2b5ebc442a52fa0842ec0013735b527a.png)
高手
要成为嵌入式高手,需要深入嵌入式底层开发,最常见的是内核开发和驱动开发,这些统属于内核态开发范畴,所以需要对操作系统内部机制有所涉猎和理解,在此基础上需要掌握从系统移植到内核开发、驱动开发的各个细节,这是一条成神之路。
![0e49e5fc8802583426b4026dfd6d5c7b.png](https://i-blog.csdnimg.cn/blog_migrate/d9a69068cb8efcb11c86f83778baebe5.png)
我不推荐你单独购买这些课程(不够划算)。我建议你和我一样直接开通一个极客时间的会员,有了会员,不管你的背景和兴趣点在哪个方向,每个领域都有15-20门的课程可供你学习。
![4ad20bb4ee17b0bd625b94690286600b.png](https://i-blog.csdnimg.cn/blog_migrate/b700a70ebde6ae6aace4e2777fd84762.png)
而且除了课程以外,每日一课、大厂案例等技术视频也都解锁了。
![b6b463f197124ec8db369b91f1921656.png](https://i-blog.csdnimg.cn/blog_migrate/8112e8cd0560353ef3d8d5f9cf874ef9.png)
这几天极客邦在搞活动,一年才 499。我的粉丝通过如下二维码购买,我还会把极客的 50 元返现都送给大伙儿,一年 449 就下来了。这个会员可以多次购买,第一年买完以后会送一张 50 元的代金券。继续用下方二维码,第二年更是折合 399 就能下来,超值!
综合薅完一算,绝对超值了!长按识别下方二维码下单,下完单微信找我即可(注意:必须得通过下方二维码购买会员我这里才能收到官方返现)。
![882137dabad4c3a8037e544e1b98bb95.png](https://i-blog.csdnimg.cn/blog_migrate/266bf3c0642075401cd4c8c0cdacea11.png)
这是我的微信二维码(也欢迎加我好友互相围观)
![2ab3949efa8e02f9f7f5cfcc4da1e43e.png](https://i-blog.csdnimg.cn/blog_migrate/419e71974f34dd2412f2a3c61467e01c.png)
另外如果你只对内核感兴趣,这里推荐一门《Linux内核技术实战课》,想单独下单也可以!
![5fd174c40000e0a8bccadfa7f871c525.png](https://i-blog.csdnimg.cn/blog_migrate/d80394bc1db8081705293ce4db81665b.png)
如下是这门课程的详细目录结构
![75740089b7db87ff0990da15dcbfbf8b.png](https://i-blog.csdnimg.cn/blog_migrate/f6d5b2eb49115d9d295e178cc5a1f9c0.png)
点击阅读原文,可以单独下这门课程。