最近准备先着手写一个【数据结构与算法】的专栏!!!
完事开头难,过程难上加难。今天就把开头难这个事情解决掉!!!
我是渣渣,渣渣是我,因渣而骄傲!
作为一个本科非CS出生的我,不知不觉在敲代码的路上渐行渐远~ ~ ~ ~ ~ ~
对一般的工科生来讲,大一的时候都会上C语言的课,先学写代码,之后才学数据结构与算法。然鹅,在我的记忆中我开始认真接触代码这个东西还是大二时为了考NCRE才学的。大一的我几乎不上课,考试都是 C 的,真怀念那段荒废时光的日子,让我变得一无所知,真TM开心。于是大二为了考证而自学,“刻苦”学习的我不仅自己考,还同时给同学代考,于是我自己挂了,给别人考过了。看看自己多么助人为乐,无比开心。后来……故事情节太过于曲折,还是废话少说吧,哈哈哈。
……
为啥好多码农都不会数据结构与算法?
现在作为一个思想健全的人,终于打算好好把数据结构与算法啃下来了。很多人一直不愿意学这个有这么几点原因,我相信我不是个例,相信不会这个的你总会有一条中招。
-
意志力不行,说实话数据结构和算法真的不简单;
-
通常我们写代码都不需要理解代码底层运行逻辑,功能都是封装好的,不用太管代码效率;
-
非CS出身却走了敲代码这个路的人,很多对数据结构与算法多多少少有种恐惧感;
-
学习或工作中真的用不到,就算不会,照样各种框架用的贼溜;
……
不学数据结构与算法行不行呢?
当然可以了,如果你愿意的话当一个底层的码农也不失为一种乐趣!
像我这种在学术上没什么潜力的人(把我逼急了,真的要读个博士后去改变世界),想找个有钱途的工作,不好好学学数据结构是万万不能的,我都不能放过我自己。
知乎上有这么一段话不错
你说如果连数据结构和算法都不会,有没有什么影响。我觉得是有的,要知道程序员这个群体也是有金字塔结构的。如果你连基本的算法和数据结构都不会,基本上属于比较底层的程序员。比较底层的程序员就意味着比较低的薪酬。同样是出售脑力劳动和时间,你比别人少赚。
所以看在钱的份上,请你不要忽视算法跟数据结构!!!
为什么程序员中年危机很严重呢?肯定是因为TA能力不行呀,可能代码能力不行也可能学习能力不行再或者管理能力也不OK没法混到管理层,稍微深究一下,根本原因还是基本功不够扎实,时间久了短板就暴露出来了,自己无法进步或进步太慢。
当然,现实生活中的码农不是都在写算法改变世界,大部分都是CRUD boy(create read update delete,增删改查),尤其是业务代码,干这种工作真的没有多大的上升空间。
好吧,以上这些我也没亲身经历过,就当不存在吧。下面说点即将要面临的,也是为什么要学数据结构与算法的重点:找工作
我知道好多朋友想找CV、NLP、机器学习、推荐算法等方面的工作,没有哪家大公司面试不考数据结构算法的,因为这才是最能衡量一个人基本功是否扎实的方式,才更能体现一个人的长期潜力。或许你很牛逼,自己能创造一个非常神奇还NB的神经网络架构,可是面试官问你关于稍微难点的数据结构,你一问三不知,直接pass掉。让你现场手写一个数据结构的代码,也不会直接pass掉。
想工作比别人起步高,那就没有理由不好好学数据结构。
长期来看,如果不想被行业淘汰,就不要想着写一些凑活能用的代码就可以了,谁也不想被老板说“你写的代码真垃圾!”
有没有听说过“学计算机的人还是聪明”这么一句话,其实是数据结构学的好的人真的聪明,这东西真的锻炼大脑。
下面说点正经的!
该专栏涉及内容
这个数据结构与算法专栏主要偏向于实现,大都有相应的代码,笔者现在主要python用的更多些,所以专栏里面所涉及的代码大都是python代码,简单易懂。所有代码都是笔者深思之后写的,当然难免有参考他人的写法,可以随时找我探讨。专栏内容包括简单的数据结构,如数组、链表、堆、栈、队列等,还有散列表、树、图、排序、查找、搜索、字符串匹配、哈希算法、动态规划等等。写完之后再做一总结。
学习/写作参考内容
当然我不是自己凭空就能写出这些东西。有参考很多书,以及其他人写的博客,看视频教程等等。很多文章里我都会把我参考的博客地址或是某些观点的原始出处列出来,供大家参考。这里我先把一些参考书目和课程列一下,大家都可以选择性的看看。后面的内容可能会有更多参考内容,在相应文章里我会再提。
参考课程:
《数据结构与算法之美》
《算法面试通关40讲》
……
参考书目:
《大话数据结构》,完全不懂的可以从这本书入手,很快可以看完。
《图解算法》、《算法图解》这两本不一样哦,都算入门书,个人觉得后一本更好点。
《数据结构与算法:python语言描述》
《算法导论》,传世经典,不过就是内容太多,难度也大,适合当工具书。
还有面试必刷书单:
《剑指offer》、《编程珠玑》、《编程之美》、《算法之美》
公众号【书伟认视界】后台回复“数据结构与算法书单”,我给大家打包好了电子书。不想买纸质书的可以先看电子书,不过还是建议多看纸质书哦!
福利:公众号内回复【极客时间】有免费资源送哦!
其他说明
文章里的各种配图大都是从一些专业网站引用/制作的,或是自己做的。偶尔有个别配图引用于他人博客等,相应位置这些都会注明来源。所写文字也难免有个别之处与他人所写有相似之处(主要是概念性文字),因为从某个角度来讲,这个专栏也算是我的一个学习总结。如有侵权内容,请及时联系笔者,若情况属实会立马删除!