介绍

I-Algorithms是基于《算法导论》衍生的一个Web前端学习文档。《算法导论》对于一些没有数学基础或者已经忘了数学知识的开发者而言学习相对困难,通过此学习文档希望能简化《算法导论》的一些理论知识,使的算法学习变得更加简单。在学习文档中,会使用JavaScript实现书中的一些算法,同时也会衍生一些书中没有的知识点,并寻找相应的面试题加以实践和说明。希望算法的学习不仅可以提升我们的编程能力,同时也有助于我们在各种面试中脱颖而出。

📝 学习文档

I-Algorithms学习文档的章节设计将按照《算法导论》的章节内容进行设计,包括

  • 基础知识
  • 排序和顺序统计量
  • 数据结构
  • 高级设计和分析技术
  • 高级数据结构
  • 图算法
  • 算法问题选编

同时会将数学基础知识穿插到各个需要解释的章节中,关于各个章节的细节内容具体可查看章节目录

📦 库包

I-Algorithms的JavaScript实现封装成了npm库包供开发者使用,如果你想尝试使用其中的一些算法API,可以查看安装和使用

👥 维护

如果你觉得作者写的代码有Bug、不规范或者不优雅,想自己在作者的基础上进行修改或者给作者提Pull Request,可以查看如何使用该仓库Pull Request

💡 由来

随着Web前端的发展,作者越来越感受到前端职业带来的冲击,底层建设越来越封闭,上层建设越来越繁荣。很多Web前端开发工程师连基本的计算机专业知识都不清楚的情况下(包括作者本人),依然可以在烦躁的行业中获得不错的工作待遇。

但是如果从长远的角度来考虑,Web前端是一个很容易被淘汰的职业,它是一碗青春饭(当然如果你后面的发展不是以技术开发为主则可以忽略),因为上层建设对于学习入门而言并不是什么难事,你会的,别人也可以会,而随着年龄的增长,你很容易被淘汰,因为你永远学不过那些精力旺盛的年轻人。

在计算机技术行业的发展更多的应该是沉淀,而不是一味的学习上层建设(上层建设就像漏斗一样,你前几年学了JQuery,这几年用了Vue,那么你就会慢慢遗忘那些年你学过的JQuery,当然学习JQuery源码或者Vue源码那是另外一回事了)。作者认为更应该沉淀那些在计算机行业完全可以通用的专业知识。

作者虽然是一名Web前端开发工程师,但是对于计算机专业知识的掌握非常薄弱,希望自己能慢慢往下沉淀,算法学习是作者鼓足勇气迈出的第一步,希望越来越多的人能加入作者的学习行列。

📖 参考

  • javascript-algorithms - Algorithms and data structures implemented in JavaScript with explanations and links to further readings
  • CLRS - Solutions to Introduction to Algorithms