十年所学,终成《代码随想录》!
共 3166字,需浏览 7分钟
·
2021-12-12 19:59
大家好,我是Carl。
《代码随想录》终于终于正式出版上市了! (文末附购买链接,直接五折!)
最近这一年不少录友都问我,代码随想录什么时候出版啊?
其实我比大家还期待这一刻的到来!
先奉上几张书照片:(封面最终选定为梵高的画作,阿姆斯特丹,圣马迪拉莫,1888,海景)
其实在去年,也就是2020年我就已经将这本书的内容写好了,本以为可以很快出版,但我还是严重低估了写书的工作量。
因为自己对质量的追求,一直在不断打磨,所以又是一年快过去了。
《代码随想录》总共将近500页,70w字,200多个插图,真的处处都是心血。
出书是一件浩大工程,比写文章难太多了,真的字字斟酌,大家看书里可能平平淡淡的一句话、一个词语、一个概念,我可能就查阅很多资料,反复推敲:表达是否准确,用词是否到位,生怕辜负了大家的期待。
这是我自己平时书桌的场景:(写书必先大量看书,一摞编程书籍是我书桌必备,世界地图上贴满的计划安排)
这两年可以说我没有什么娱乐活动,业余生活极其枯燥,都花费在这本书上了,其中艰辛只有自己知道。
而此时当大家都能看到《代码随想录》这部作品的时候,其满足感对我来说已经足以。
写这本书用了两年,而真正消化、理解、研究这些算法知识,我用了整整十年,十年前我就开始写算法文章,妄图闯进算法的大门,这一写就是十年。
真的是十年所学,两年打磨,终成《代码随想录》!
所以当坚持一件事情的时候,一年、两年,甚至三年、五年,可能不足以看出其效果,但也许坚持十年的时候,才等到真正收获的时刻。
代码随想录的故事
《代码随想录》不是两年憋大招来个横空出世。
而是一点一点打磨出来的,其刷题顺序、题解内容、思考深度 都是经过了上10w录友的共同见证。
也正是这些内容,把大家汇聚在一起,一起攻克算法的一座又一座高山。
与此同时,也几乎每天都会有录友来专门私信我来表达自己的感激:
《代码随想录》有何不同?
大家在学习编程、算法,刷题的时候,真正的苦恼在于没有一套行之有效的刷题顺序。
从何学起,先学什么,再学什么。力扣(Leetcode)上两千道题目,怎么刷,很多人刷题的效率低,主要体现在如下三点:
找题 找到了不合适现阶段做的题 没有全套的优质题解可以参考
而市面上基本找不到真正能解决以上痛点的算法书籍。
一些书籍是每个知识点蜻蜓点水,然后就叫大家举一反三。
一些书籍是一堆题解堆在一起,让大家学起来感受不到知识的连贯性和系统性。
断片式的学习,效率怎么能高呢?
当初我在学习算法的时候,就深感其中的艰难,当我的题量达到一定数量时候,随着反复的琢磨和深入的思考,我再去回顾这些算法题目,发现如果要是按照合理的顺序来刷题,那效果一定是 事半功倍!
所以我将每一个专题中的题目按照由易到难的顺序进行编排,每一道题目所涉及的知识,前面都会有相应的题目做知识铺垫,做到环环相扣。
建议大家按照章节顺序阅读本书,在阅读的过程中会发现我在题目编排上的良苦用心!
本书不仅在题目编排上精心设计,而且在针对读者最头痛的算法问题上做了详细且深入的讲解。
关于动态规划,都知道递推公式的重要性,但dp数组的含义、dp数组的初始化、遍历顺序以及如何打印dp数组来排查Bug,这些都很重要。例如,解决背包问题的时候,遍历顺序才是最关键的,也是最难理解的。
关于回溯算法,题目要求集合之间不可重复,那么就需要去重,各种资料都说要去重,但没有说清楚是“树层去重”还是“树枝去重”——这是我为了说明去重的过程而创造的两个词汇。
关于KMP算法,都知道使用前缀表进行回退,可什么是前缀表,为什么一定要用前缀表,根据前缀表回退有几种方式,这些却没有说清楚,导致最后大家看的一头雾水。
关于二叉树,不同的遍历顺序其递归函数究竟如何安排,递归函数什么时候需要返回值,什么时候不用返回值,什么情况下分别使用前、中、后序遍历,迭代法又要如何实现,这些都决定了对二叉树的理解是否到位。
同时我针对每一个专题的特点,整理出其通用的解法套路。
例如:
在二叉树专题中,总结了递归“三部曲”来帮助读者掌握二叉树中各种遍历方式的写法。 回溯算法中的回溯“三部曲”可以帮助读者理解回溯算法晦涩难懂的过程。 动态规划中的动规“五部曲”可以帮助读者在一套思考框架下去解决动态规划题目。
再来说一说动态规划,在程序员面试中,动态规划是公认的最难掌握的算法,也是出现频率最高的算法。
如果仅仅讲解几道题目,即使再举一反三也远远达不到真正理解动态规划的程度。
如果把动态规划的题目单纯地堆砌在一起,也只会让人越学越懵,陷入“一看就会,一写就废”的怪圈。
讲清楚一道题容易,讲清楚两道题也容易,但把整个动态规划的各个分支讲清楚,把每道题目讲透彻,并用一套方法论把整个动态规划的题目贯彻始终就有难度了。
而帮助大家解决这个问题,这也是这本书的使命所在。
本书目录
这里不少录友会问,书的内容和Github:https://github.com/youngyangyang04/leetcode-master,和网站:programmercarl.com 有什么区别呢?
其实写文章相对来说是随意一些的,但书一定要非常严谨。
正如我本篇开头所说,书的内容其实一年前就写好的,但排版、纠错、打磨、重新画图,又花费了一年,所以书一定是更精细的,更严谨的。
《代码随想录》的排版看起来非常舒服,会让你发现 原来学算法 会上瘾!
《代码随想录》的推荐语,我都是颇为用心,不是随随便便找个人写一写推荐语来凑数的。
哈工大计算机王院长,百度杰出架构师猛哥,腾讯专家工程师强哥,王道论坛创始人风华哥,他们是在我学习工作的不同阶段里对我影响非常大的顶级巨佬。
他们的学习方法,做事风格,都是值得每一位技术人学习。同时他们也是每一位技术人的榜样。
特别感谢巨佬们能在百忙之中阅读了本书的书稿,并对本书写了评语。
最后
我希望这本书,不仅仅是可以帮助大家学习编程,循序渐进的去学习算法,高效刷题,进大公司。
同时 当你把这本书放在自己的书桌前,床头前的时候,它也会给你一种乘风破浪的勇气!
正如《代码随想录》封面(梵高,阿姆斯特丹,圣马迪拉莫,1888,海景),一只帆船在波涛汹涌的大海里扬帆远航!
《代码随想录》这就要和大家见面了,很多录友已经迫不及待:
这本书原价并不便宜(毕竟比较厚)138元,但我申请到了京东五折优惠,只要69元,这个价格仅限前5000册哦,录友们可以速度下手了。
点击下方链接直接五折购买,全网最低价格了。海外的录友们也可以下单,在下单地址如果可以填写你所在国家的地址的话,就可以配送的。
最后也希望大家可以在留言区说出自己和“代码随想录”的故事,走心一波,“代码随想录”已经陪伴了太多太多录友走过了艰难的算法学习旅程,是时候在评论区说出我们的故事了,哈哈哈
评论区点赞数量前三位,可以获得我的手写签字版送书(是我亲自邮寄哦)。
评论区只能精选出100条留言,所以我会优先精选走心有故事的评论哈。
最后也感谢录友们的陪伴,真心希望大家都有一个好的前程!
正如《代码随想录》正式出版一样,你所期盼,终将到来!加油💪
如果喜欢本文 欢迎 在看丨留言丨分享至朋友圈 三连 热文推荐