提供一个学习数据结构和算法的技巧 - 边学边练(当然后续学习其他知识的时候也可以采用这样的办法,尤其我们实践性强的编程工作)
学好了数据结构和算法:
    1.会在写代码的时候不由自主地考虑很多性能方面的问题.
    2.可以更少的写出时间复杂度、空间复杂度高的垃圾代码.
    3.这样不但能基于其本身提升我们的算法能力,编程能力也会有质的飞跃.
回想下我们在技术圈各种装X的场景
我们经常喜欢谈论高大上的架构,比如高可用、微服务、服务治理等。
而真理往往掌握在少数人手中
鲜有人关注代码层面的编程能力。
愿意沉下心来,花几个月时间啃一啃计算机基础知识、认认真真夯实基础的人,简直就是凤毛麟角.

为了说明基础的重要性,这里举个前腾讯T4大牛的例子 - 他用了不到半年时间就把区块链的整个技术脉络摸清楚了!
看看他怎么说:
像区块链、人工智能这些看似很新的技术,其实一点儿都不“新”。
因为最初学编程的时候,他就把那些基础的知识都学透了。
当面临行业变动、新技术更迭的时候,他不断发现,那些所谓的新技术核心和本质的东西其实就是当初学的那些知识。
掌握了这个“规律”之后,他学任何东西都很快,任何新技术都能快速迎头赶上,这就是他快速学习并且获得成功的秘诀。
所以,我们自然而然的就能够判断出来,这其中最重要的就是基础足够扎实.
  • 所以说 , 基础知识就像是一座大楼的地基 , 它决定了我们的技术高度。
  • 而要想快速做出点事情 , 前提条件一定是基础能力过硬 , “内功”要到位。
那我们究竟都需要修炼哪些“内功”呢?
操作系统、计算机网络、编译原理等等 , 当然还有数据结构和算法。
可是我们都知道,像《算法导论》这些经典书籍虽然全面,可过于理论导致学起来非常枯燥;
而且市面很多课程大多缺乏真实的开发场景,费劲学完感觉好像还是用不上,过不了几天就忘了。
所以我们需要真正受用的数据结构与算法课程,给我们指明一个简洁、高效的学习路径,教我们一个学习基础知识的通用方法。
接下来看下课程设计
不只会教我们怎么用,还会告诉我们为什么需要它,帮我们捋清它们背后的设计思想,以培养我们举一反三的能力。
结合真实的软件开发案例,让我们知道数据结构和算法究竟应该如何应用到实际的编码中。
分成四个递进的模块,以由浅入深的进行学习:
  • 入门篇
  1. 时间、空间复杂度分析(非常重要)贯穿整个专栏的学习过程。

    比较难掌握,需要结合大量的实例边学边练,从而真正能掌握复杂度分析以为后面的学习铺路。
  2. 需要掌握时间、空间复杂度的概念,大O表示法的由来,各种复杂度分析技巧,以及最好、最坏、平均、均摊复杂度分析方法。

    以面对任何代码的复杂度分析,我们都能游刃有余、毫不畏惧!
  • 基础篇

    篇幅最大 , 涵盖了最基础和最常用的数据结构和算法(需要重点学习)。

    会结合具体的软件开发实例,由浅入深进行讲解并适时总结一些实用“宝典”.
    比如递归这一节会讲到为什么递归代码比较难写、如何避免堆栈溢出以及递归冗余计算和如何将递归代码转化为非递归代码。
  • 高级篇

    讲一些不是那么常用的数据结构和算法。

    虽然不常用,但是这些内容也需要知道。
    是为了让我们开拓视野,强化训练算法思维、逻辑思维。
  • 实战篇

    通过实战部分串讲一下前面讲到的数据结构和算法

    因为整个专栏都是围绕数据结构和算法在具体软件实践中的应用来讲的
    会拿一些开源项目、框架或者系统设计问题,剖析它们背后的数据结构和算法,以有一个更加直观的感受。

    人生路上,我们会遇到很多的坎。
    跨过去就可以成长,跨不过去就是困难和停滞 ;而在后面很长的一段时间里都需要为这个困难买单。
    对于我们技术人来说,更是这样。
    既然数据结构和算法这个坎,我们总归是要跨过去 , 为什么不是现在!

    争哥愿景 - “我希望通过这个专栏,不仅能帮你跨过数据结构与算法这个坎,还能帮你掌握一种学习知识和技能的方法,帮你度过职场甚至人生的重要时刻!


MoeRookie
3 声望1 粉丝

为全国人民的居家智能化而竭尽吾力!


引用和评论

0 条评论