大家好,我是陶朱公Boy,一个认真生活,总想超越自己的程序员。
前言
知乎上有一个提问:在做程序员的道路上,你掌握了什么概念或技术使你感觉自我提升突飞猛进?
我的回答
春节期间,我写过一篇与今天主题较相近的一篇文章:你的编程能力从什么时候开始突飞猛进的? 真诚的与大家分享了我多年从小公司到一线互联网公司积淀的编程经验。(目前该文阅读量已突破1W+,得到了不少小伙伴的认可,感兴趣的小伙伴可以进去看看。)
今天,我也是一如既往结合自己过去多年积淀的编程经验,来谈下我对于这个问题的观点,希望大家喜欢。
一、理论结合实践
我的观点认为,程序员要想提升自我的编程能力,几乎没有任何捷径可走,还是那句老生常谈的老话:多做项目多看书。
当然这里顺序一定不能搞错,不然学习效果可能会差强人意。这也是为什么我们捧着那一本本厚厚的计算机书籍经常犯困的原因。
如果你在之前没有写过一定数量的业务代码、没有使用过相应框架或中间件解决你实践场景中遇到的问题,而一味投进知识的海洋去遨游,过一会你就会发现,根本就坚持不下去,里面的内容实在太过枯燥,找不到感觉。
但当你做过一系列大大小小的编程项目,解决过一系列线上问题(无论上简单的业务问题亦或是框架乃至各种性能问题),一段时间后,你再回过头去看那些理论书籍,你就会发现,之前看不进去的一些书籍,现在完全不会觉得无聊,也不会觉得难懂,甚至看到某一处,你会有一种醍醐灌顶的感觉,这个时候看书的效果就出来。
所以我的观点认为,要想学好编程,我们最好先有一定的项目实践经验,然后再用书籍巩固我们的基础知识,这样学习的效果会事倍功半。
关于计算机相关的经典计算机书籍,如果你还不知道该阅读哪些或知道但苦于不知从何处找寻,这里我把我积累多年的本地藏书文件夹分享给你,希望能帮你节省找书籍的时间,资料不贵,你的时间最宝贵!
书籍详情请点击 :那些年,我书架上的几本经典计算机书籍!
二、做复杂度高的项目
在这里我想述说的是,我们程序员小伙伴如果有条件,尽量多做些业务复杂度高的项目。
复杂度低的项目包含一些企业内XX管理系统或一些流量极低的网站。这类项目的特点是业务场景单一且功能简单,用户规模小,流量几乎没有。
由于业务场景单一且功能简单,你只要负责写完一些简单的CRUD功能就算完事。压根不存在由于后期业务功能的不断升级与复杂度上升,代码需要做各种重构。也接触不到因为多线程、高并发场景下而触发的各种性能问题,比如慢SQL、服务gc频繁甚至OOM,CPU100%等各种性能问题。
所以常年待在这样的环境下,你的成长注定受挫,时间一长,就会失去核心竞争力。
三、多给自己设目标,多去挑战自己
在我的职业生涯中,对我成长最快、帮助最大的其中一个窍门就数“准备面试、出去面试了”。
可能有小伙伴会有疑惑,我对我目前的公司还算满意,没有跳槽的打算,出去面试干嘛?
我的观点认为面试的目的不光服务于跳槽,它还能成就你更多。
在准备面试的过程中,通过你自己不断的梳理、构建对应的“知识树”(结合面试过程中碰到的一个又一个你当时答不上来的问题),一定程度能帮你查漏补缺知识盲区。
当然更大的作用我认为它能帮你检阅你目前的水平处于什么位置(外面的技术栈你是否都会,还是一问三不知,原因是公司技术太老套,10年不更新),也能帮你review在这家公司你领到的这份薪水相对于行业平均水平是高了还是低了等等。
所以我是比较主张我们程序员小伙伴没事多出去面试,不一定为了跳槽,而是帮助你补齐知识盲区的同时适当的检阅一下自己目前知识的掌握情况和了解清楚自己的薪资水位是否健康,绝对对你百利而无一害。
小结
我认为关于“在做程序员的道路上,你掌握了什么概念或技术使你感觉自我提升突飞猛进?”这个问题的观点上可谓是人则见仁智者见智了。
我结合我自己过往的编程经验跟大家分享了三则我自己深度总结的而且对我自我提升突飞猛进的三个认知,希望一定程度对你有所帮助与启发。
如果觉得不错,帮忙点个赞加个关注、收藏一下。一方面能鼓励一下我,另一方面避免下次想看却找不到这个号。
写到最后
感谢您一路陪伴着我,探索编程的奇妙世界。如果您对程序员职场进阶窍门、编程技巧和计算机原理等充满兴趣,那么不要错过未来我为大家奉上的精彩内容!点击关注,让您的程序员之旅更加丰富多彩,我们一同成长,一同前行!🚀💻📚
↓推荐关注↓
最近在整理本地资料库的时候,发现工作多年,已陆续积累、收藏了近百本经典的计算机书籍,有计算机基础的,有编程语言的,有数据结构和算法的,有面试相关的,以下是具体资料(看看你的书架是否缺其中一本),有需要的小伙伴自行获取,点击👉:那些年,我书架上的几本经典计算机书籍!查看详情。