论工作几年深陷业务代码的程序员如何实现自我提升
昨天有位粉丝给我发消息说做了两年多程序员了,基本都是 CRUD,感觉一直没什么提升
问我怎么才能脱离这种困境,我相信这种情况的远远不止他一个人,之前帮粉丝做模拟面试的时候,我发现别说一两年的菜鸟了,很多做了三五年的老鸟也基本只会个 CRUD。
造成这种情况的原因有很多,但我想最主要的还是很多人入职之后就成为了公司的一块砖,哪里需要哪里搬,而完全没有想着去自我提升,想脱离码农窘境成为架构师,光是每天写写业务代码肯定是做不到的,需要你不断的去学习去整理去归纳。
基于这位粉丝提的问题,我在这里给陷入业务代码泥潭脱身不得的同行们只推荐两本书,多了你们也没时间看。啃完之后不说脱胎换骨,但起码会知道编程到底是真么一回事。
分别是**《Head First 设计模式》和《数据结构与算法分析:Java 语言描述(原书第 3 版)》**,这几本书虽然都是用 Java 语言描述的,但其实又跟 Java 没多大关系,你可以把这几本书看成是内功秘籍,也就是说,这几本书啃透了,不管你是用什么语言的,对你理解编程本质都有帮助,看完后你会到达一个全新的层次来看待编程。
这几本书我都有收集电子书版,需要的朋友关注公众号:北游学 Java,回复【722】即可免费领取。
《Head First 设计模式》
这本书写得很有趣,图文并茂,比起四人帮的那本,好懂了不知道多少倍。
计算机世界的 head first 系列让我想起了阿呆系列,话说新的一集 the big bang theory 里面 lennerd 学习橄榄球的时候也有一本阿呆啊,哈哈,跑题了不过只看书学明白设计模式是不可能的,这些只是前人的总结,我们唯有实践实践再实践了。
读这本书不仅仅是学习知识,而是在学习一种思考的方法,学习一种认知的技巧,学习一种成长的阶梯。总之,用你闲暇的时间来读这本书,并不亚于你专注的工作或学习。
《数据结构与算法分析:Java 语言描述(原书第 3 版)》
现在的程序员总是用着别人封装好的函数、类、库、API,满满的,我们就会觉得编程不过是这么回事,搭积木而已,别人都把材料提供好了,至于材料是怎么做的,不用理会。
真的是这样吗?说数据结构和算法没用的人,那是因为他用不到。为什么用不到?他的层次决定了他不会接触到编程最关键最核心的部分——算法。
先不说那些反应算法的力量的似乎变态的问题,也不说 2006 年第 4 期《程序员》的专题,只说,当我们遇到一个问题时,如何搭建数学模型?当我们在有限的硬件条件下要完成高速的数据处理,如何设计?当我们为客户开发完一套软件后,能不能保证未来几年内数据猛增不会带来计算量的指数级增长?当我们需要升级服务器内存和硬盘是,能不能修改几个函数就避免硬件的投资?
这些问题的答案,请在这本书中寻找。
表、栈、队列、树、图等基本数据结构作者并未花大力气描述,而是重在后面的对这些数据结构的应用上,每一个结论都给出了详尽的数学证明,阅读过程中,我们可以感受到蕴含在其中的匠心独运的逻辑思维之美。借用 GOOGLE 黑板报的一个专题,算法体现了——“数学之美”。
并不是说本书就很完美了,有些章节讲得太过笼统,读起来跳跃感太强,比如第九章的网络流问题,介绍的太过简单,推导过程中省略了不少步骤,对增广路径算法讲的太粗,至于预流推进算法(Push-Relabel)则根本未提,不能不说是一个小小缺憾。
小结
想实现自我提升除了看好书之外,还建议多读 JDK 源码,像 String、StringBuffer、ArrayList、HashMap 等等等等,这些在写代码过程中经常用到的类,建议都把源码读一遍。
改掉工作中喜欢复制代码的恶习,这样做固然轻松,但也真应了码农这两个字了,只是把砖头换成了代码而已,该重构就重构,该重写就重写,多思考怎样写出漂亮的、易于维护的代码。
坚持三个月半年的,相信我,给你带来的提升绝不是一丁半点。
最后,**《Head First 设计模式》和《数据结构与算法分析:Java 语言描述(原书第 3 版)》的电子书关注公众号:北游学 Java,回复【722】**即可免费领取即可领取。
版权声明: 本文为 InfoQ 作者【北游学Java】的原创文章。
原文链接:【http://xie.infoq.cn/article/4cd0173dd48e2bf70364016bb】。文章转载请联系作者。
评论