知乎上有两个程序员比较受关注的关于算法和数据结构的提问,总共有50000多人关注,获得800多万次的浏览。如何有效且较为轻松地提升算法、数据结构、设计模式等编程内功功力,是大部分程序员的追求。
小异今天带来10万+读者共同选择的小争哥重磅作品《数据结构与算法之美》和《设计模式之美》,就是专为提升程序员编程内功而写,帮助大家由内到外提升编程能力,轻松搞定项目业务、大厂面试。
01
勤修核心技能进谷歌,又发现基础功力不足
不少编程初学者,或者是计算机专业的学生,对算法、数据结构这些多多少少有点敬而远之。写代码基本不考虑性能的问题,其质量堪忧,很容易被大佬们认为是“垃圾代码”。
小争哥本科毕业的时候也差不多是这样,编程水平不是很好,觉得算法、数据结构难,所以一直搁置没学。到读研究生的时候,从师兄那得到一本《算法导论》后,才开始重视算法和数据结构的内容,并常读常练,让自己的算法能力大大提升,编程能力产生质的飞跃。
研究生毕业后,因为算法与数据结构掌握得不错,小争哥通过谷歌面试加入谷歌翻译项目组。但喜悦并没有持续太久,第一次提交代码就让他体会到自己功力不足的痛苦:那次代码前后修改了十几个版本才成功提交。在那之前,他认为代码能用、能够解决问题就是合格的,并且觉得把代码写得漂亮是浪费时间。
而在那之后一段时间,他慢慢地就明白了,写好代码和烂代码花的时间是一样的,但代码的可读性、可维护性等方面却是千差万别!想要写出一手漂亮的代码,既要熟悉数据结构与算法,又要掌握设计模式那些基本功。
02
想要算法搞得好,亲手实践少不了
但如小争哥所言,《算法导论》这些经典大部头都有一个缺点,就是太过注重理论,新手直接上手看它们着实有点为难,很可能会因为过于枯燥而很难坚持下去。所以他尝试开发让新手受用的课程,给新手一个相对简洁、高效的学习路径,掌握学习基础知识的通用方法。
《数据结构与算法之美》诞生。
▲ 一站式解决算法与数据结构难题
不同于一般书罗列一大堆算法,这本书中根据他自己多年研读数十本算法书和项目开发的经验,精选了常用且实用的20个经典数据结构和算法。这些数据结构和算法覆盖了常见的业务问题和大厂面试算法题,吃透之后可以轻松应对此类问题。
同时,小争哥从问题出发,帮助读者了解数据结构本身之外,更认识其背后的设计思路,清楚地知道为什么要用它们。而针对每种数据结构和算法,他都结合了真实的软件开发案例来讲解,通过代码实践知道它们是如何应用到实际编程中解决问题的。这些案例都提供了源码下载,读者可以亲自动手实践来验证自己所学,同时从实践中巩固数据结构与算法的理论知识,从而达到小争哥的教学目标:知其然,知其所以然。
小争哥将整本书分为入门篇、基础篇、高级篇、实战篇四部分,循序渐进地帮助读者学习数据结构和算法。按着这个路线,读者可以较为轻松地从易到难、由浅入深地掌握数据结构和算法的精髓。
为了解决学习数据结构和算法较为枯燥的问题,小争哥用了300多张形象的手绘图作为示例,帮助读者理解抽象的理论概念。这些手绘图为这两本书增加了许多趣味性,让算法与设计模式的枯燥荡然无存,大大提高地提升了读者的学习效率。
▲ 线性表
▲ 归并排序分解图
03
想要代码质量高,设计模式要学好
小争哥在谷歌的经历,也让他明白了设计模式这些编程内功的重要性,清楚地认识到基本功对编程能力的提升有着决定性的作用。在看了许多程序员写出一大堆“烂代码”,并且许多人只知道一些原则名称但是不知道实际如何用的时候,他决定写一个关于设计模式的教程,帮助更多程序员提升基础内功,让其代码能力突飞猛进。
与算法类图书相似,设计模型相关的好书也不少,但是对新人来说同样是过于理论。使用的例子倒是简单,一看就懂,但是比较脱离实际的软件开发,学习效果不怎么好。
当他把《设计模式之美》呈现给读者的时候,大家都沸腾了,因为这与其千篇一律的书不一样,这里面全都是真实的项目代码!整本书就像有一个前辈,一对一、手把手跟读者细心地讲解每一个常见的设计模式概念,它是如何用的,又为什么要选择它。
▲ 修炼5大编程内功
正是基于这种形式,新手读者也能非常轻松地理解这些设计理念,并且直观地感受到它们是如何在实际项目中使用。为此,小争哥用2万多行代码,详细地对200多个真实项目实战代码案例进行剖析,为读者展示了设计模型、设计原则、代码规范、重构技巧、面向对象编程这5大编程内功在实际代码中的表现形式。
读者只要跟着小争哥的代码走,就能清晰地看到一堆“烂代码”是如何通过精巧的设计、重构之后,成为更简洁、更易读的“好代码”。通过不断地学习与练习,读者也能很快地掌握这些设计思想与技巧,从而写出高质量的漂亮代码,不管是实际业务项目,还是大厂面试,都能从容不迫,轻松应对。
04
10万+读者的选择,编程内功一键搞定
在成书之前,它们分别是两门专栏课程,拥有10万+的读者订阅,获得了广泛好评。
▲ 读者评价对小争哥两本书的评价
读者的认可,来源于小争哥对内容的精心设计。其一,在于书中的关键算法、设计原则、设计模式来自小争哥多年的阅读与项目开发积累,是经过实践检验的、有用的知识。其二,为了让读者更直观地认识、理解算法、设计模式,书中涉及的代码示例都来自真实的软件开发案例。
▲ 《算法与数据结构之美》关于Java中对接口的定义代码示例
这样就弥补了那些大部头书缺少实战带来的缺陷,让读者一手抓理论,一手抓实战,双管齐下,事半功倍。小争哥让算法和设计模式的学习变得更简单,对新手来说更容易上手,不会因为过于理论、难度大而望而生畏。
05
购书多合一,助力大厂面试
正好秋招在即,如何通过心仪的面试,拿到满意的offer,是很多朋友关心的问题。从前面我们讲的很容易看出,想要写出让人满意的代码,算法与数据结构这俩核心能力不能少,设计模式那些基础内功也要有一定的掌握。
小争哥《数据结构与算法之美》的20个经典算法题是大厂面试中的常客,并且现在购书还送程序员面试手册(电子版)、习题答案、思维导图,在多重大礼加持下,这就是一本轻松搞定大厂面试的秘籍!
同时,《设计模式之美》中200多个实战代码案例,能帮助读者掌握编写高质量代码的技巧。当面试官要看我们的公开项目代码时,符合规范、可读性强、漂亮的代码就会让他们眼前一亮,让他对我们的编程能力有更清晰的认识,从而大大增加通过面试的几率。
06
勤修基础,厚积薄发
我们常讲厚积而薄发,河以逶蛇故能远,山以凌迟故能高,都是说要把基础打好,才能有所成就。编程也是如此,算法、数据结构、设计模式这些基本功,基础内功从根本上决定了个人编程能力的上限。
而想要修炼这些编程内功,从实战中践行理论是非常有效且较为轻松的。小争哥两本书,《数据结构与算法之美》和《设计模式之美》就提供了一个切实可行的修炼编程基本功的方法,简单有效,有趣不枯燥,很适合编程新人。
抽奖赠书
本次福利将送出《设计模式之美》* 5本
为避免撸羊毛的用户参与抽奖,让更多真实用户获得社区福利,现在把抽奖方式切换到 spring4all.com 网上通过积分参与。
本次抽奖地址:http://spring4all.com/forum-post/2017.html
还有一大波福利正在路上,一起来参与社区内容的建设,一起学习一起成长吧!
如何获取积分?日常登录spring4all.com,参与签到、分享技术经验、好用资源(原创、转载均可)、提问交流、回帖帮助他人等有益内容的,均可获得积分!