报名后请加微信 S_wolfs 拉入正式学员群进行训练
经验和算法哪个重要? ——
经验是通过长期积累,不断做项目,从实践中积累所得,不可以短期突破——需要不断积极进去,锲而不舍,最终变得经验丰富。而学习算法和数据结构是短期内提高编程能力的最佳手段。所以对于大多数5年工作经验以内的工程师,在没有丰富的经验之前,算法就成为了核心竞争力。 这也是大厂很多岗位考察算法的核心逻辑。
算法和数据结构很大程度上决定着编程能力、对性能效率的理解、架构能力的天花板,也是理解系统设计的敲门砖。算法就好比令狐冲学习「独孤九剑」之前,先苦练了10多年华山剑法的一招一式。算法和数据结构就是构成复杂系统的那一招一式。
课程将《算法导论》中的内容以一种更加简单的形式制作出来,一分为二。本次课程,作为算法学习的准入课程,提供精美的视频,习题系统和毕业考试。而进阶课程提供给在程序道路上有更高目标和追求的人。 建议学习完基础课程,通过考试后再学习进阶课程,循序渐进。
课程计划
平时安排(周1-周5)
- 学习视频课程
- 配合课程每天1道题目(提供在线刷题系统)
- 提供学习交流群
- 提供咨询答疑服务
周末安排(周六 or 周日)
- 直播答疑解惑(比如数学知识)
- 直播习题精讲
- 直播在线解答提问
考试安排
- 考试旨在为大家提供检验学习成果,比较和竞争的平台
- 每年举办多次「javascript算法和数据结构考试I」「javascript算法和数据结构考试II」针对不同水平段的学员
- 考试时间为周日,使用在线系统,4个小时内提交代码。系统会根据代码执行时间(空间)复杂度进行评分
- 考试及格的同学我们将提供进阶学习平台、课程、资料和辅导等
基础课程内容
算法的基础知识
- 算法的第一课- 输入、输出和数量级
- 计算能力的变革
- CPU、寄存器和内存
- 二分查找
- 插入排序
- 冒泡排序
算法的衡量和优化
- 时间复杂度和空间复杂度- 复杂度的本质
- 合并排序(分治策略)
- 递归函数复杂度分析(树状图)
- 递归表达式分析法
- 递归数学归纳法分析
- 主定理 *选学
排序算法
- 排序算法介绍- 基于比较的排序算法
- 快速排序
- 快速排序复杂度和优化
- 合并排序的优化
- 计数排序
- 基数排序
- 桶排序
外部排序
递归
- 递归的基本概念- 递归图形的绘制
- 递归和穷举问题
- 组合问题
- 递归空间优化
- 回溯算法
- 重复子问题优化
- 尾递归
- 搜索问题(8皇后)
- 深度优先搜索和广度优先搜索
基础数据结构
- 数组- 双向链表
- 反转单向链表
- 堆
- 栈
- 堆
- 队列
Q&A
1. 课程和《算法导论》中内容的区别?
课程还参考了国外的教材和其他很多算法书籍,在这些书籍当中《算法导论》当之无愧是No.1。 但是《算法导论》学习曲线太陡峭,而我们的课程会容易很多。学完基础课程,就达到了可以独自看算法导论的水平。
2. 课程考试不通过会怎样?
课程考试是为了给大家学习算法提供更好的学习环境,提供竞争氛围和乐趣。 不通过可以下次考试再考一遍。不通过也可以选进阶课程,但是从老师个人的人生经验上来看,建议大家循序渐进。
3. 进阶课程有哪些内容,哪里买?
进阶课程包括散列、树、图、动态规划、贪心算法,旨在帮助比进大厂之外还有更多技术追求的人。课程正在录制和准备中,预计2018年末和大家见面。