本文已收录于专栏
前言
看到太多爆肝熬夜整合的内容,又是几万字,又是爆肝,我也来试试看能不能扛得住。试完后发现,果然还是扛不住啊。但是既然整理完了,那就把我的 算法学习路线 发出来吧,我把整个算法学习的阶段总结成了五个步骤,分别为: 「 基础语法 」、 「 语法练习 」、 「 数据结构 」、 「 算法入门 」、 「 算法进阶 」。本文梳理了这五个大项的思维导图,在下文会有详细介绍。
希望各位能够找到自己的定位,通过自己的努力在算法这条路上越走越远。
刚开始切勿心浮气躁,说一定要把这么多东西都学会。就算你的精力旺盛,日夜操劳,时间也是有限的。所以,首先是明确我们要做什么,然后制定好一个合理的 「 目标 」 ,然后再将目标进行逐渐拆解,再一点一点将要学习的内容逐步付诸实践才是最重要的。
点击我跳转末尾 获取 粉丝专属 《算法和数据结构》源码。
文章目录
1、基础语法
算法是以编程语言为基础的,所以选择一门编程语言来学习是必须的。因为作者本身是C/C++技术栈的,所以就拿C语言来举例子吧。如果是 Java、Python 技术栈,可以跳过 C语言相关的内容。这一小节,先给出学习路线图,然后我再来讲,每部分应该如何去学。
1)第一个程序
无论是 Java、Python、C/C++,想要上手一门语言,第一步一定是 HelloWorld,先不要急着去配环境。如果环境配了几个小时,可能一开始的雄心壮志就被配环境的过程消磨殆尽,更加不要谈日后的丰功伟业了。来看第一个 C 语言程序:
#include <stdio.h> // (1)
int main() // (2)
{
/\* 我的第一个 C 程序 \*/ // (3)
printf("Hello, World! \n"); // (4)
return 0; // (5)
}
这段代码只做了一件事情,就是向屏幕上输出一行字:
Hello, World!
。(
1
)
(1)
(1)
stdio.h
是一个头文件 (标准输入输出头文件) ,#include
是一个预处理命令,用来引入头文件。当编译器遇到printf()
函数时,如果没有找到stdio.h
头文件,就会发生编译错误。(
2
)
(2)
(2)
main()
作为这个程序的入口函数,代码都是从这个函数开始执行的。(
3
)
(3)
(3) 被
/*
和*/
包围起来的代表注释,是给人看到,不进行代码的解析和执行。(
4
)
(4)
(4)
printf
代表将内容输出到控制台上。其中\n
代表换行符。(
5
)
(5)
(5) 作为函数的返回值。
2)热爱编程
所以,我们需要让这件事情从一开始就变得 有趣,这样才能坚持下去。比如找一个相对较为有趣的教程,这里我会推荐这个:《光天化日学C语言》。听名字就比较搞笑,可能作者本身也不是什么正经人,哈哈哈!虽然不能作为一个严谨的教程去学,起码可以对搞笑的内容先产生兴趣。从而对于语言本身有学习下去的动力。
刚才提到的这个系列,可以先收藏起来。回头再去看,它讲述的是 对白式 的 C语言教学,从最简单的输出 HelloWorld 这个字符串开始讲起,逐渐让读者产生对C语言的兴趣。这个系列的作者是前 WorldFinal 退役选手,一直致力于 将困难的问题讲明白 。我看了他的大部分教程,基本都能一遍看懂。
3)制定目录
然后,我们大致看下你选择的教程的前几个章节,那些标题是否有你认知以外的名词出现,比如以这