算法练级计划

来自:算法修炼笔记(微信号:alglearning),作者:kai

计算机基础包括计算机系统结构,数据结构与算法,操作系统,计算机网络,编译原理,数据库等,其中,数据结构与算法在其中占有举足轻重的地位。数据结构的学习相对于其他科目来说,难度相对较大,花费的时间相对较长,数据结构与算法的学习将会伴随着工程师学习的整个起步阶段,因此提出算法练级计划,与有志于算法成长和算法工程师的同学们一起成长。

1.为什么提出算法练级计划?

《Java练级攻略》(可点击)发布之后,有很多同学留言给我说,数据结构与算法看了基础知识了,不知道下一步该怎么学习,不知道该如何进阶;也有的同学说,不知道该如何应对面试,希望我能够提出一些思路。说实话,这些都是我在准备秋招的过程中遇到的问题。因此,对于研发工程师来说,搞定算法是求职必备。

除了研发工程师,现在算法工程师非常的火,很多同学想要求职算法工程师,那么对于算法工程师来说,基础的数据结构与算法是算法工程师必须掌握的,是机器学习、深度学习以及人工智能相关的算法的基础。众所周知,算法工程师的薪资要远远高于研发工程师,为什么?就是因为算法因此,对于算法工程师来说,搞定算法也是求职必备。

事实上,数据结构与算法对工程师而言,就是内功心法,对于一个工程师思维的提升很有帮助,同时也是研究很多技术底层的基础,例如 Java的HashMap的树化。算法的能力决定了工程师能在技术的道路上走多快,走多远。因此,算法的学习与工程师的长远发展息息相关。

算法的能力与工程师的长远发展息息相关,这也意味着算法能够为工程师带来实际的收益,事实上,算法不错的工程师的薪资普遍更高,因此,提出算法练级计划,与同学们一起成长,一起搞定算法。

2.怎么进行算法练级计划?

数据结构与算法主要包括2部分:数据结构、算法。因此算法练级计划也从数据结构与算法2个方向进行,分析主要的数据结构与常见的算法。

那么如何安排学习呢?

根据学习金字塔,世界上的学习分为2种,一种是被动学习,一种是主动学习。听课,阅读,看视频,看别人的演讲,都是被动学习,知识的留存率最多只有30%(不信你可以看看《2019秋招经验谈》(可点击)试试看)。而与别人讨论,实践以及教授给别人则是主动学习,知识留存率可以达到50%~90%。

算法的学习,仅凭被动学习是无法解决的,需要进行大量的实践。根据学习金字塔,主动学习对于知识的吸收非常重要,其中实践对知识的留存率更是高达75%。因此此计划将以问题的形式展开,我将发布问题,然后同学们解决问题,待大家解决问题之后,我将发布解决方案。

这些问题包括

  • 常见的数据结构,如数组,链表,栈,队列,树,图,跳表等

  • 常见的算法,如查找算法,排序算法,哈希算法,BFS,DFS,贪心算法,分治算法,回溯算法,动态规划等

  • 算法应用,如LRU缓存淘汰算法,栈在浏览器中的应用,队列与线程池,MySQL数据库索引的实现等

注:具体内容见https://github.com/guokaide/algorithm,这些问题均来自于各大公司的面试以及常见的有利于大家理解数据结构和算法的题目。

在算法练级的道路上,你并不孤单,我将建立微信群【算法练级计划】(后面附有入群的方式),在社群里陪大家一起学习。我将在社群里给大家分享如何进行高效的学习,解答大家在学习过程中的各种问题。

因此,算法练级计划包括

  • 提出问题:在公众号发布问题,大家完成

  • 解决方案:在公众号发布答案,大家对比

  • 社区辅助:如果有问题,在社区提出疑问,我将作出解答

从码农到工程师,这是一个很大的跨越,我邀请大家加入到这个过程中来,树立自信,积极思考,努力坚持下去,这不是一条捷径,事实上成功从来没有捷径,算法练级计划是一条有点笨有点痛苦的路,但是在这条路上,你踏踏实实一步步走出的脚印,将见证你从码农到工程师的蜕变。

欢迎大家~

推荐↓↓↓
算法与数据结构
上一篇:动画:什么是鸡尾酒排序和地精排序? 下一篇:看图轻松理解计数排序