原文地址:从这四点出发,不做 “ 空心 ” 程序员 转载

01 注重原理性知识

现在的互联网环境下,注重原理性知识学习的程序员越来越少,特别是在这种培训机构大爆炸的环境下,在网上你会经常看到类似三个月从入门到精通高并发、分布式的广告,我相信培训机构有这套技术的能力,但是我不相信一个初学者有这么好的接收能力。甚至某个培训机构的讲师里,有一个1997年出生的架构师,20岁出头就当上了架构师,真的是后生可畏呀。在我的思维里,架构师不是学出来的,架构师是通过项目喂出来的。好了,我们还是言归正传吧。

为什么要注重原理型知识呢?因为原理性知识是我们的根,我列举了三个例子,对这个观点进行说明。

1、你懂设计模式,无论你是做系统架构设计还是阅读开源项目源码,你会发现,最终他们都绕不开设计模式。

2、你懂数据结构和算法,在高并发这种分秒必争、时间就是金钱的场景下,你知道List、Map 该如何取舍。

3、你懂网络通信的原理,在我们做系统架构、问题排除时都会有很大的帮助。

可以这么说,原理性知识决定了程序员的下限,原理性知识强的程序员,下限不会太低,相反,原理性知识不强的程序员,我相信上限也不会高到哪里去。

02 打造自己的核心技术栈

码农圈的码农一直都有中年危机意识,哪怕是那些还没有入门的码农,他们都知道程序员只能干到35岁。我不去讨论这个观点的是与否,把这一切交给时间,等你到了35岁那一年,这个话题自然会有答案。大部分程序员都有中年危机意识,所以在刚入门的时候,会花较多的时间去学习。很多人会在这个地方出问题,看似花了很多时间在学习,但是没有一点进步甚至相对来说在退步,为什么呢?

很多程序员包括我在内是这样学习的,现在大数据这么火,买本书、看个视频学习一下。学了半个月一个月后,大数据太难了,学不动了,先放一下。咦,这个推荐系统好像很有意思哎,又买本书学习一下。最后就在一个循环中,每一项技术都在学,每一项都是一个入门。看上去啥都会,真实做的时候,发现啥都不会,就是这么的神奇。

这就是一个怪圈,很多程序员都会跳入的怪圈。对程序员这种技术型的工作来说,这是学习的大忌,因为技术行业知识广相对知识深来说没有优势,在公司专人做专事,需要的是技术深度。所以我们每个程序员需要打造自己的核心技术栈,你搞 Java Web 开发,那么你在某一个方向上,比如在高并发、消息中间件或者分布式架构比公司或者周围的程序员有更深入的学习研究,这会成为你升职加薪或者跳槽的资本。

03 做自我驱动型员工

在职场上有两种员工,一种是任务型员工,一种是自我驱动型员工。任务型员工,领导安排什么活,干完就了事,从来不会想着,我写的这个功能有没有优化的空间?为了任务而任务。这种员工只能待在这个舒适区,哪天舒适区不要他了,估计很难找到安身之处。

自我驱动型员工恰恰相反,他对每出现的问题都会反问自己,这个问题出现的根本原因在哪里?为什么会出现这个原因?我该如何避免再次出现这类问题?对于每一个问题他都会找出最根本的原因并且提供最好的解决办法。

对于公司使用的每一项技术,他都会去了解技术背后的原理,这种技术的应用场景在哪里?优缺点又是那些等等,对于自我驱动型员工来说,根源才是他的最终答案。

自我驱动型员工更多的会带着自己的思考去做业务,对技术刨根问底,追求原理的过程,会是一个快乐的过程,思考多了就会找到场景与原理的关联关系。自我驱动型员工的成长比较迅速,在短时间内会拥有自己的核心竞争力。

04 记笔记,写博客

记笔记,写博客是总结与分享的行为,这不仅是程序员,这是所有人都应该去做的一件事情。记笔记是对你过去的总结,把你学到的重要的知识记录下来,方便你后面的查阅与重温,老话说得好:好记性不如烂笔头,记下来总是没错的。

写博客是一种分享的过程,把你的知识通过文字的形式分享出来,说不定就帮助了很多人,这个过程是快乐的。写博客也是对你知识体系查缺补漏的一种好办法,在写博客的道路上,会不断的刷新你的认识。