Skip to content

Commit

Permalink
增加先修内容
Browse files Browse the repository at this point in the history
  • Loading branch information
Forsaken Delusion committed Aug 20, 2024
1 parent a11e240 commit b3a556f
Show file tree
Hide file tree
Showing 9 changed files with 1,871 additions and 1 deletion.
300 changes: 300 additions & 0 deletions docs/计算机科学学习路线/计算机基础/先修内容/git.md

Large diffs are not rendered by default.

539 changes: 539 additions & 0 deletions docs/计算机科学学习路线/计算机基础/先修内容/latex.md

Large diffs are not rendered by default.

338 changes: 338 additions & 0 deletions docs/计算机科学学习路线/计算机基础/先修内容/linux.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# Markdown 入门

!!! note "前言"

Markdown 是一种学习成本较低的轻量级标记语言。它用简单的标记语法代替按钮,因此能省去频繁使用鼠标调整排版的麻烦,为文档编写者提供便利。用 Markdown 编写的内容可导出为 HTML、Word、PDF 等多种格式的文档。由于易读易写,它在 GitHub、简书等网站上也有广泛的应用。

通过阅读本文档,读者可以在五分钟内快速学习到常用的 Markdown 标记。更多的内容请移步菜鸟教程。

我们强烈建议计算机类的同学们在大一的春季学期学会 Markdown 或 LaTeX 二者中其中之一,因为这将是我们后续实验报告或大作业报告将利用的常用工具。

在开始学习 Markdown 语法之前,建议先通过 [Typora 官网](https://typora.io/) 安装好 Typora 编辑器。

## 语法

### 标题

共有 1-6 级标题,使用 `#` 标记。`#` 数量与标题级别对应。注意 `#` 与文字间的空格不可省略。

```markdown
#### 四级标题
##### 五级标题
###### 六级标题
```

#### 四级标题
##### 五级标题
###### 六级标题

### 字体

```markdown
*斜体* _斜体_
**粗体** __粗体__
***粗斜体*** ___粗斜体___
~~删除线~~
<u>下划线</u>
```

*斜体* _斜体_

**粗体** __粗体__

***粗斜体*** ___粗斜体___

~~删除线~~

<u>下划线</u>

### 列表

无序列表用 `*``+``-` 标识,有序列表用数字和 `.` 来标识,支持列表嵌套。

```markdown
* 第一项
+ 第二项
- 第三项
1. 子项一
1. 孙子项一
* 重孙子项一
```

* 第一项
+ 第二项
- 第三项
1. 子项一
1. 孙子项一
* 重孙子项一

### 引用

```markdown
> 这是一条无意义的引用。
```

> 这是一条无意义的引用。
### 代码

```markdown
加法操作由 `add()` 函数完成
```

加法操作由 `add()` 函数完成

````markdown
```Python
def add(a, b):
return a + b
```
````

```Python
def add(a, b):
return a + b
```

### 链接

```markdown
[菜鸟教程](https://www.runoob.com/markdown/md-tutorial.html)
<https://www.runoob.com/markdown/md-tutorial.html>
```

[菜鸟教程](https://www.runoob.com/markdown/md-tutorial.html)

<https://www.runoob.com/markdown/md-tutorial.html>

### 图片

插入图片需依照 `![alt 属性文本](图片地址)` 格式。注意不要使用本地路径,可以将图片上传到清华云盘再获取图片链接。

```markdown
![示例图片](https://i.loli.net/2021/10/08/R3wUTtaAZHjSxEV.png)
```

![示例图片](https://i.loli.net/2021/10/08/R3wUTtaAZHjSxEV.png)

## 其他

Markdown 还有一些高级玩法,例如表格、公式、HTML 元素、画时序图、画流程图等等。由于不是很常用,这些都留给有兴趣的读者自行探索。

友情链接:

+ 菜鸟教程 <https://www.runoob.com/markdown/md-tutorial.html>
+ **(推荐学习)**公式编辑教程 <https://www.jianshu.com/p/25f0139637b7>
+ 绘制流程图、时序图、甘特图 <https://www.jianshu.com/p/6dbcc3aff98b>
+ CommonMark,一个常用的 Markdown 标准 <https://spec.commonmark.org/>
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# 当我遇到问题时,我该怎么做...

> 科协水群里闲聊时,有人“暴言”:“在贵系有技术问题时,摇人比查文档更方便。”遇到问题时多和其他人交流、避免闷头苦干当然是支持的,但这并不意味着问问题前不需要付出努力(例如在搜索引擎上查找)、问问题时对方有义务替你解答......
>
> <right>—— 摘自 “酒井科协” 公众号 2022 年 3 月 25 日文章</right>
学习过程中遇到问题是在所难免的,而如何面对遇到的问题,却是值得我们学习的话题。本篇文章我们从“如何使用搜索引擎”、“如何查阅官方文档”、“如何选择常用网站”、“如何有效地进行提问”这几种方式来阐述,“当我在学习过程中遇到问题时,我应该怎样做...”



## 如何使用搜索引擎

### 我应该怎样选用搜索引擎

“百度一下,你就知道”诚然是大众的选择,而我们必须指出其在搜索结果呈现时的局限性。具体来说,由于一些商业性因素的限制,它大概率会返回一些与搜索结果不是最强相关的内容。我们在这里推荐两款搜索引擎:如果你因为中国大陆的限制无法访问互联网上的一部分内容,我们推荐你使用 **“Bing 国际版”**,而如果你可以访问到世界互联网上的内容,我们则推荐你使用 **“Google”**。我们接下来的讨论均以后者作为基础展开。

### 我应该如何使用搜索引擎

相信大家都掌握了搜索引擎的基本使用方法,也掌握了例如“搜索关键词”而不是“搜索整句话”的这种基本搜索技巧。接下来我们演示一些较为进阶的搜索方法。

+ 指定网站搜索 `site:web.site`
+ 精确匹配 `"Exact Match"`
+ 必须包含 `+` 与必须不包含 `-`
+ 任意匹配 `*`
+ 指定时间范围,例如只获取过去 1 年内的搜索结果,这样可以保证搜索结果的时效性

参考资料:[How to properly use a search engine](https://www.instructables.com/How-to-Properly-Use-a-Search-Engine/).



## 如何查阅官方文档

大部分你使用的工具或者库都会有自己的官网网站;有些即使没有官方网站也会有自己的 GitHub Repo 和配套的 Wiki。了解一个工具或者函数库最全面、也是最便利的方法,实际上是读它对应部分的说明文档。

比如,我们想了解怎么在 PyTorch 中实现叉乘,或许我们可以在百度中搜索 `pytorch 叉乘`,然后点开一个 CSDN 教程,但这远没有 Google 搜索 `pytorch cross product`,然后打开 pytorch.org 的官方文档进行阅读来的全面而透彻。

再比如,如果我想快速上手一个名叫 “Carla” 的模拟仿真工具,最合适的方式,应该是搜索 “carla doc”,然后打开[官方文档](https://carla.readthedocs.io/en/latest/)阅读其中 “Getting Started” 部分,这样能对这个软件有最基本的了解。之后再根据自己的需要阅读其他部分的内容。



## 如何选择常用网站

要想搜索不同的内容,我们一般会选择不同的网站。这里我们针对一些常见的问题,列出一些常用的网站:

`Runtime Error / Compilation Error`

程序运行时遇到了我不了解的报错,即使查看了函数调用栈也不理解最终的报错信息;程序编译不过,其中用了我不理解的编译特性... **StackOverflow** 是这些问题的好帮手,可以替代 CSDN 作为你的搜索首选。事实上,CSDN 的部分内容是直接从 StackOverflow 上搬运而来,而这些搬运而来的内容在国内网站上又相互爬取、相互展示...

但这也不意味着中文内容都是差的,如果使用 Google 并且语言为中文,通常能查到一些中文个人博客的内容,这些内容一般不会是机器搬运的,可以作为参考。例如如果想要配置 `DN42` 实验网络,由于官方文档不详细,个人博客的内容也是非常重要的参考。

`What is the original paper of XXX...`

我们想知道某篇学术论文的出处,或者是其引用格式。这时 **scholar.google.com** 就可以起到很好的作用。如果你知道这篇论文的全名,你可以直接进行搜索,然后便捷地获取引用格式与论文原文的 PDF 版本。

`I want to know whether or not someone has implemented this...`

想找过往的轮子?好办,在 **GitHub** 中进行搜索,你可以看到规模庞大的开源代码...但是,在使用时请务必遵守其对应的 LICENSE。可以尝试使用 [GitHub Code Search](https://cs.github.com),能够更加精确、全面的搜索公开仓库的代码。

此外,在学习对应的内容时,我们推荐到对应的官方网站、教程、文档或 Wiki 上进行学习。在学习一些公开课程可能涉及到的知识时(如 CS231n),我们推荐先搜索课程主页,进而在 YouTube 上搜索对应的讲解视频,然后在 B 站与知乎等国内平台上进行检索。



## 如何有效地进行提问

在你尝试了如上内容无果之后,自己闷头苦干或许已经不能解决你的问题了。是时候进行提问了 —— 打开微信列表,翻出一个人的账号,然后敲下一句“在吗”,等待回复 —— 不,这并不是正确的提问方式,至少对方从一句“在吗”中并没有获得任何的信息增益。他/她可能认为你想邀他/她喝一杯下午茶,而不是帮你还有 24 个小时就到 DDL 的 DSA 编程作业 Debug。

要想有效地进行提问,我们强烈推荐你阅读一遍参考资料。当然,我们在这里列出几点重点:

**在你提问之前**

+ 请确保你通过搜索引擎检索不到你想问的问题
+ 请确保你查阅了官方文档,其中并没有提及可以直接解决你的问题的答案
+ 请确保你自己做了充分的预实验
+ 比如 `这段程序的运行结果是什么?`,为什么不自己跑一下呢

**你的提问内容**

+ 请提供充分的信息给回答者
+ 比如请不要发一个 `这段代码有 Bug [捂脸]` 的语句给对方,然后附上一个 ~300 行,以文本方式发送在微信聊天框的代码
+ 请至少提供充分的说明:哪段代码?出了什么问题?报错信息是什么?这段代码的目标功能是什么?
+ 如果有可能的话,请给出足够多的注释(不过是代码还是你的思考内容)
+ 请说出你做过了哪些努力
+ 比如按照某个论坛某条回复的方法进行了尝试

即使提问,也不代表问题的主动权放在了对方手里。问题毕竟是你自己的问题,对方没有义务帮助你必须解决掉这个问题,所以继续自行寻找答案也许是需要的...

参考资料:[How to ask the question the smart way](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way).
Loading

0 comments on commit b3a556f

Please sign in to comment.