what?每个人都可以学会算法!学会1到100求和就学会了算法!

引言

Pascal之父尼古拉斯·沃斯因提出著名公式“算法+数据结构=程序”而荣获1984年计算机领域的最高奖项-图灵奖。通过这个公式,可以发现算法对于程序设计是多么的重要。然而算法的学习之路并非一帆风顺,往往会遭遇很多困难和挑战,大多数同学困难遇多了也就放弃了。算法学习之难究其原因在于算法自身的抽象性和枯燥性,而且往往理解了算法的思想也难以应用其解决实际问题。

互联网算法文章现状

互联网的出现让我们获取知识变得比以往任何时候都要便捷、快速,面对海量的信息,甚至经常会出现信息过载的情况。在互联网上也有非常多的文章来介绍各种算法思想及其应用。通过阅读互联网现有介绍算法的文章,发现存在以下问题:

  1. 算法文章的质量参差不齐。随着互联网技术的快速发展,尤其是进入2.0时代后,互联网让每一位用户都变成了知识的创造者,出现了很多的同学创造了海量关于算法的文章。在百度搜索引擎中输入“算法”二字后,会出现数以万计的关于算法的文章。随便筛选几篇经过搜索引擎排名靠前的文章,阅读后发现文章的质量差异较大,参差不齐。互联网的算法文章除了搜索引擎”把关“外,更需要来自类似CSDN推出的”原力计划“来进一步筛选出较高质量的算法文章,而本系列文章有幸能够为此贡献绵薄力量。
  2. 算法思想的描述晦涩难懂。算法思想本身是高度抽象的,尤其类似遗传等智能算法更是如此,因此给学习者带来一定的学习困难。现有的大部分文章基本都是照搬教材等不同来源的内容,些许的文章增加案例帮助学习者理解,文章的同质化现象非常严重。一个复杂的算法思想需要用简单的语言描述出来,并且能够被学习者理解。要做到这一点的前提是文章作者对算法本身有较深的理解,熟悉一定的教学技巧,同时还要了解学习者在学习时的心理。能够将原有的算法知识经过各种转化,用简单的语言形象化的表达出来,这所有的一切都需要讲解者有很深的的沉淀和积累才能够做到。
  3. 不同算法文章选取的问题背景均不同,读者需要花费较多的时间来了解背景知识。现有的个别文章虽然采用案例的方式来帮助读者更好的理解算法思想,但是不同算法选取的案例不同,部分案例较为复杂不便于理解,且无法形成算法体系。读者在学习的时候,需要不停切换各种算法问题的背景,然而这种不同算法不同背景知识的学习也花费了读者较多的时间。每一个算法都需要事先了解背景知识,那么100个算法就需要了解100个背景,试想这100个背景学习的时间是否能够节约下来转化成算法思想本身的学习中去。如果能够做到针对一个算法背景能学习到尽可能多的算法,岂不是美哉!

算法文章撰写思路

为了避免再次撰写同质化的算法文章,为了帮助读者更加聚焦算法思想本身,为了帮助学习者节约更多的时间,同时也为了进一步提升算法学习的效率,我们提出以下思路进行算法文章的创作:

本系列文章选取1100求和问题,尝试从不同角度加以分析,介绍常见算法思想,做到了解一个问题,学会多种算法。1到100求和是一个非常简单的问题,同时也是程序设计语言初学者都会遇到的一个问题,因此该案例的选取具有较强的通用性,读者不必花费太多的时间和精力去了解案例的背景知识,而专注于算法思想本身。一个问题通常有N种解法,针对1到100求和这个问题,从不同角度加以分析,应用不同的算法思想解决这个问题,最终实现“一个问题、多种算法”的学习。

本系列文章由主线和辅线两个部分组成。主线围绕1到100求和问题开展多种算法思想的阐述。辅线将对主线涉及到的一些关键知识点进行补充介绍,帮助读者了解更多的细节。之所以采用主线、辅线两种方式分开的原因在于,该方式能够帮助读者更好的聚焦算法本身,如果读者已经了解并熟悉该部分内容,则可以跳过并继续后续阅读,反之可以阅读辅线文章以帮助其更好的了解细节。

特色和亮点

率先提出了“一个问题、多种算法”的算法学习路径。让读者将主要的时间和精力聚焦在不同算法思想的学习和理解上,最大程度上减少案例背景知识的学习。选取的问题简单、通俗易懂,能够帮助大家快速熟悉背景知识,尽早的投入到算法本身的学习。

尝试从不同角度深入研究和探讨同一个问题,在学习算法的同时,掌握多种分析问题的方法。除了知识的传授之外,更加注重算法能力的培养,帮助读者在掌握算法思想后能够灵活应用其解决实际问题,而不仅仅是停留在知识学习的层面。

 

如果您对这种高效的、有趣的算法文章感兴趣的话,欢迎持续关注后续”原力计划“文章。学会1到100求和到底能够掌握多少种算法思想,让我们一起拭目以待吧!

你可能感兴趣的:(what?每个人都可以学会算法!学会1到100求和就学会了算法!)