论工作几年深陷业务代码的程序员如何实现自我提升

北游

昨天有位粉丝给我发消息说做了两年多程序员了,基本都是CRUD,感觉一直没什么提升

image

问我怎么才能脱离这种困境,我相信这种情况的远远不止他一个人,之前帮粉丝做模拟面试的时候,我发现别说一两年的菜鸟了,很多做了三五年的老鸟也基本只会个CRUD。

造成这种情况的原因有很多,但我想最主要的还是很多人入职之后就成为了公司的一块砖,哪里需要哪里搬,而完全没有想着去自我提升,想脱离码农窘境成为架构师,光是每天写写业务代码肯定是做不到的,需要你不断的去学习去整理去归纳。

基于这位粉丝提的问题,我在这里给陷入业务代码泥潭脱身不得的同行们只推荐两本书,多了你们也没时间看。啃完之后不说脱胎换骨,但起码会知道编程到底是真么一回事。

分别是《Head First 设计模式》《数据结构与算法分析:Java语言描述(原书第3版)》,这几本书虽然都是用Java语言描述的,但其实又跟Java没多大关系,你可以把这几本书看成是内功秘籍,也就是说,这几本书啃透了,不管你是用什么语言的,对你理解编程本质都有帮助,看完后你会到达一个全新的层次来看待编程。

这几本书我都有收集电子书版,需要的朋友关注公众号:北游学Java,回复【722】即可免费领取。

《Head First 设计模式》

image

这本书写得很有趣,图文并茂,比起四人帮的那本,好懂了不知道多少倍。

计算机世界的head first系列让我想起了阿呆系列,话说新的一集the big bang theory里面lennerd学习橄榄球的时候也有一本阿呆啊,哈哈,跑题了
不过只看书学明白设计模式是不可能的,这些只是前人的总结,我们唯有实践实践再实践了。

读这本书不仅仅是学习知识,而是在学习一种思考的方法,学习一种认知的技巧,学习一种成长的阶梯。
总之,用你闲暇的时间来读这本书,并不亚于你专注的工作或学习。

《数据结构与算法分析:Java语言描述(原书第3版)》

image

现在的程序员总是用着别人封装好的函数、类、库、API,满满的,我们就会觉得编程不过是这么回事,搭积木而已,别人都把材料提供好了,至于材料是怎么做的,不用理会。

真的是这样吗?说数据结构和算法没用的人,那是因为他用不到。为什么用不到?他的层次决定了他不会接触到编程最关键最核心的部分——算法。

先不说那些反应算法的力量的似乎变态的问题,也不说2006年第4期《程序员》的专题,只说,当我们遇到一个问题时,如何搭建数学模型?当我们在有限的硬件条件下要完成高速的数据处理,如何设计?当我们为客户开发完一套软件后,能不能保证未来几年内数据猛增不会带来计算量的指数级增长?当我们需要升级服务器内存和硬盘是,能不能修改几个函数就避免硬件的投资?

这些问题的答案,请在这本书中寻找。

表、栈、队列、树、图等基本数据结构作者并未花大力气描述,而是重在后面的对这些数据结构的应用上,每一个结论都给出了详尽的数学证明,阅读过程中,我们可以感受到蕴含在其中的匠心独运的逻辑思维之美。借用GOOGLE黑板报的一个专题,算法体现了——“数学之美”。

并不是说本书就很完美了,有些章节讲得太过笼统,读起来跳跃感太强,比如第九章的网络流问题,介绍的太过简单,推导过程中省略了不少步骤,对增广路径算法讲的太粗,至于预流推进算法(Push-Relabel)则根本未提,不能不说是一个小小缺憾。

小结

想实现自我提升除了看好书之外,还建议多读JDK源码,像String、StringBuffer、ArrayList、HashMap等等等等,这些在写代码过程中经常用到的类,建议都把源码读一遍。

改掉工作中喜欢复制代码的恶习,这样做固然轻松,但也真应了码农这两个字了,只是把砖头换成了代码而已,该重构就重构,该重写就重写,多思考怎样写出漂亮的、易于维护的代码。

坚持三个月半年的,相信我,给你带来的提升绝不是一丁半点。

最后,《Head First 设计模式》《数据结构与算法分析:Java语言描述(原书第3版)》的电子书关注公众号:北游学Java,回复【722】即可免费领取即可领取。

阅读 152
4 声望
0 粉丝
0 条评论
你知道吗?

4 声望
0 粉丝
宣传栏