hello-algo/docs/chapter_preface/suggestions.md

64 lines
3.5 KiB
Markdown
Raw Normal View History

2022-11-22 17:47:26 +08:00
---
comments: true
---
2022-11-24 03:21:02 +08:00
# 如何使用本书
2022-11-22 17:47:26 +08:00
## 图文搭配学
2022-11-22 17:47:26 +08:00
视频和图片相比于文字的信息密度和结构化程度更高,更容易让人理解。在本书中,重点和难点知识会主要以动画、图解的形式呈现,而文字的作用则是作为动画和图的解释与补充。
2022-11-22 17:47:26 +08:00
在阅读本书的过程中,若发现某段内容提供了动画或图解,**建议你以图为主线**,将文字内容(一般在图的上方)对齐到图中内容,综合来理解。
2022-11-22 17:47:26 +08:00
![algorithm_animation](suggestions.assets/algorithm_animation.gif)
2022-11-22 17:47:26 +08:00
## 使用源代码
2022-11-22 17:47:26 +08:00
!!! tip "前置工作"
2022-11-22 17:47:26 +08:00
安装本地编程环境。若无,可以参照下节 [编程环境安装](https://www.hello-algo.com/chapter_preface/installation/) 。
2022-11-22 17:47:26 +08:00
### 下载代码仓
2022-11-22 17:47:26 +08:00
如果已经安装 [Git](https://git-scm.com/downloads) ,可以通过命令行来克隆代码仓。
2022-11-22 17:47:26 +08:00
```shell
git clone https://github.com/krahets/hello-algo.git
```
2022-11-22 17:47:26 +08:00
当然,你也可以点击 “Download ZIP” 直接下载代码压缩包,解压即可。
2022-11-24 03:21:02 +08:00
![download_code](suggestions.assets/download_code.png)
2022-11-24 03:21:02 +08:00
### 运行源代码
2022-11-22 17:47:26 +08:00
本书提供配套 Java, C++, Python 代码仓(后续可能拓展支持语言)。书中的代码栏上若标有 `*.java` , `*.cpp` , `*.py` ,则可在仓库 codes 文件夹中找到对应的 **代码源文件**
2022-11-22 17:47:26 +08:00
![code_md_to_repo](suggestions.assets/code_md_to_repo.png)
2022-11-22 17:47:26 +08:00
这些源文件中包含测试样例,可以直接运行,帮助你省去不必要的调试时间,可以将精力集中在学习内容上。
!!! tip "代码学习建议"
若学习时间紧张,请至少 **将所有代码通读并运行一遍**。若时间允许,强力建议 **对照着代码自己敲一遍**,逐渐锻炼肌肉记忆。相比于读代码,自己写的过程会带来新的收获。
2022-11-22 17:47:26 +08:00
![running_code](suggestions.assets/running_code.gif)
## 参与讨论区
阅读本书时,请不要 “惯着” 那些弄不明白的知识点。如果有任何疑惑,可以在评论区留下你的问题,小伙伴们和我都会给予解答(我一般 2 ~ 3 天看一次评论区)。
同时,也希望你可以多花时间逛逛评论区。一方面,可以看看大家遇到了什么问题,反过来查漏补缺,这往往可以引起更加深度的思考。另一方面,也希望你可以慷慨地解答小伙伴们的问题、分享自己的见解,大家一起加油与进步!
![comment](suggestions.assets/comment.gif)
## 算法学习 “三步走”
**第一阶段,算法入门,也正是本书的定位。** 熟悉各种数据结构的特点、用法,学习各种算法的工作原理、用途、效率等。
**第二阶段,刷算法题。** 可以先从热门题单开刷,推荐 [剑指 Offer](https://leetcode.cn/problem-list/xb9nqhhg/)、[LeetCode 热题 HOT 100](https://leetcode.cn/problem-list/2cktkvj/) ,先积累至少 100 道题量,熟悉大多数的算法问题。刚开始刷题时,“遗忘” 是最大的困扰点,但这是很正常的,请不要担心。学习中有一种概念叫 “周期性回顾” ,同一道题隔段时间做一次,当做了三遍以上,往往就能牢记于心了。
**第三阶段,搭建知识体系。** 在学习方面,可以阅读算法专栏文章、解题框架、算法教材,不断地丰富知识体系。在刷题方面,可以开始采用进阶刷题方案,例如按专题分类、一题多解、一解多题等,刷题方案在社区中可以找到一些讲解,在此不做赘述。
![learning_route](suggestions.assets/learning_route.png)