├── .github └── workflows │ └── mkdocs.yml ├── .gitignore ├── README.md ├── docs ├── CNAME ├── ai-ml │ ├── NLP.md │ ├── adversarial-search.md │ ├── index.md │ ├── pytorch.md │ ├── 现代概率机器学习初步.md │ └── 神经网络.md ├── backend │ ├── crawler │ │ └── crawler.md │ ├── django │ │ └── django.md │ ├── expressjs │ │ └── express-js.md │ ├── go │ │ └── go.md │ └── index.md ├── basic │ ├── git.md │ ├── index.md │ ├── latex.md │ ├── linux.md │ ├── markdown.md │ ├── meet-problems.md │ ├── vscode.md │ └── web.md ├── courses │ └── index.md ├── frontend │ ├── android │ │ ├── components.md │ │ ├── extensions.md │ │ ├── index.md │ │ ├── resources.md │ │ ├── structure.md │ │ └── useful-things.md │ ├── index.md │ ├── react │ │ ├── basic.md │ │ ├── dataflow.md │ │ ├── extensions.md │ │ ├── function-component.md │ │ ├── index.md │ │ ├── lifecycle.md │ │ └── prepare.md │ ├── swiftui │ │ ├── build-views.md │ │ ├── data-flow.md │ │ ├── declaritive-mvvm.md │ │ ├── extensions.md │ │ ├── hello-world.md │ │ └── index.md │ ├── web │ └── web_foundation │ │ ├── Readme.md │ │ ├── css.md │ │ ├── foundation.md │ │ ├── html.md │ │ ├── hw.pdf │ │ └── javascript.md ├── hardware │ ├── cod.md │ └── index.md ├── index.md ├── languages │ ├── c-oop │ │ ├── behavioral-pattern.md │ │ ├── class-advanced.md │ │ ├── class-easy.md │ │ ├── combination-and-derivation.md │ │ ├── environment.md │ │ ├── function-object-and-smart-pointers.md │ │ ├── function.md │ │ ├── index.md │ │ ├── polymorphism-and-templates.md │ │ ├── reference-copy.md │ │ ├── stl-and-string.md │ │ ├── templates-and-intro-to-stl.md │ │ └── virtual-function.md │ ├── css │ │ ├── bootstrap.md │ │ ├── index.md │ │ └── mdui.md │ ├── html.md │ ├── index.md │ ├── java │ │ ├── advanced-language-feature.md │ │ ├── basic-language-structure.md │ │ ├── design-patterns.md │ │ ├── fundamental-oop.md │ │ ├── index.md │ │ └── introduction-and-installation.md │ ├── javascript │ │ ├── async.md │ │ ├── browser.md │ │ ├── control.md │ │ ├── function.md │ │ ├── index.md │ │ ├── oop-advance.md │ │ ├── oop.md │ │ └── variable.md │ ├── modern-cpp.md │ ├── node.js │ │ ├── index.md │ │ └── npm.md │ ├── python │ │ ├── crawler.md │ │ ├── index.md │ │ └── pip.md │ ├── rust │ │ ├── control.md │ │ ├── function.md │ │ ├── generics.md │ │ ├── index.md │ │ ├── matching.md │ │ ├── ownership.md │ │ ├── reference.md │ │ ├── start.md │ │ ├── struct.md │ │ ├── trait.md │ │ ├── variable.md │ │ └── whyrust.md │ ├── swift │ │ ├── basic.md │ │ ├── control-flow.md │ │ ├── extensions.md │ │ ├── generics.md │ │ ├── index.md │ │ ├── internal-types.md │ │ ├── types.md │ │ └── variable-function.md │ └── typescript │ │ ├── function.md │ │ ├── index.md │ │ ├── oop.md │ │ ├── type.md │ │ └── variable.md ├── notes │ ├── editor.md │ └── reader.md ├── source │ ├── basic-tutorial.md │ ├── book.md │ ├── index.md │ ├── lecture.md │ └── source.md └── static │ ├── ai-ml │ ├── adversarial-search │ │ ├── minmax.png │ │ └── montecarlo.png │ ├── nlp │ │ ├── 1-id.png │ │ ├── 10-bert.png │ │ ├── 11-gpt.png │ │ ├── 12-self.png │ │ ├── 13-cross.png │ │ ├── 14-special.png │ │ ├── 15-multihead.png │ │ ├── 16-groupquery.png │ │ ├── 17-encoder.png │ │ ├── 18-decoder.png │ │ ├── 19-lora.png │ │ ├── 2-embedding.png │ │ ├── 20-finetune.png │ │ ├── 3-cbow.png │ │ ├── 4-cnn.png │ │ ├── 5-rnn.png │ │ ├── 6-distance.png │ │ ├── 7-probs.png │ │ ├── 8-dotproduct.png │ │ └── 9-transformer.png │ └── nn │ │ ├── cnn.png │ │ ├── convolution.png │ │ ├── draw.drawio │ │ ├── fitting.svg │ │ ├── fitting2.png │ │ ├── graph.svg │ │ ├── icon.png │ │ ├── mlp.png │ │ ├── rnn.png │ │ └── wordvec.jpeg │ ├── backend │ ├── crawler │ │ ├── clear-network-log.png │ │ ├── end-of-answers.png │ │ ├── feeds-cursor.png │ │ ├── feeds-detail.png │ │ ├── filter-XHR.png │ │ ├── filter-feeds.png │ │ ├── get-url.png │ │ ├── get-with-cookie.png │ │ ├── get-without-cookie.png │ │ ├── last-page.png │ │ ├── login-XPath.png │ │ ├── login-changed.png │ │ ├── login-posi.png │ │ ├── login-window.png │ │ ├── scrapy-architecture.png │ │ ├── scrapy-startproject.png │ │ └── session-id-in-html.png │ └── django │ │ ├── django-admin-manage-model.png │ │ └── django-admin-panel.png │ ├── basic │ └── web │ │ ├── html1.png │ │ ├── html2.png │ │ ├── html3.png │ │ └── jd1.png │ ├── frontend │ ├── android │ │ ├── layout.png │ │ └── resources.png │ ├── react │ │ ├── lifecycle-flowchart.jpg │ │ ├── lifecycle-methods.png │ │ ├── recursive-render.png │ │ ├── src.zip │ │ └── useeffect-warning.png │ └── swiftui │ │ ├── build-views-button-1.webp │ │ ├── build-views-ex-1.webp │ │ ├── build-views-group-1.webp │ │ ├── build-views-hstack-1.webp │ │ ├── build-views-hstack-2.webp │ │ ├── build-views-image-1.webp │ │ ├── build-views-image-2.webp │ │ ├── build-views-image-3.webp │ │ ├── build-views-image-4.webp │ │ ├── build-views-image-5.webp │ │ ├── build-views-image-6.webp │ │ ├── build-views-image-ori.webp │ │ ├── build-views-label-1.webp │ │ ├── build-views-menu-1.webp │ │ ├── build-views-modifier-1.jpeg │ │ ├── build-views-modifier-2.jpeg │ │ ├── build-views-spacer-1.webp │ │ ├── build-views-text-1.webp │ │ ├── build-views-text-2.webp │ │ ├── build-views-text-3.webp │ │ ├── build-views-text-4.webp │ │ ├── build-views-vstack-1.webp │ │ ├── build-views-zstack-1.webp │ │ ├── build-views-zstack-2.webp │ │ ├── build-views-zstack-3.webp │ │ ├── data-flow-state-1.gif │ │ ├── hello-world-files.jpeg │ │ ├── hello-world-project.jpeg │ │ ├── mvvm-arch.svg │ │ └── mvvm-mv.svg │ └── languages │ ├── css │ ├── 0.html │ ├── 1-after.html │ ├── 1-before.html │ ├── 2.html │ ├── 3.html │ └── 4.html │ ├── html │ ├── 0.html │ ├── 1.html │ ├── 2.html │ ├── 3.html │ └── 4.html │ ├── java │ ├── compile-and-run.png │ └── create-new-project.png │ ├── javascript │ ├── dom-html.html │ ├── event-1.html │ ├── event-2.html │ ├── event-3.html │ ├── function-proto.png │ ├── proto-proto.png │ └── proto-triangle.png │ └── swift │ └── multiline-string.png ├── mkdocs.yml ├── requirements.txt └── theme ├── main.html └── partials └── comments.html /.github/workflows/mkdocs.yml: -------------------------------------------------------------------------------- 1 | name: deploy 2 | on: 3 | push: 4 | branches: 5 | - master 6 | jobs: 7 | deploy: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v2 11 | with: 12 | fetch-depth: 0 13 | - uses: actions/setup-python@v2 14 | with: 15 | python-version: 3.x 16 | - run: pip install -r requirements.txt 17 | - run: mkdocs gh-deploy --force 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /site/* 2 | .venv 3 | .DS_Store 4 | /__pycache__/* -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sast-skill-docs 2 | 3 | ## Installation 4 | 5 | ```bash 6 | python3 -m venv .venv 7 | source .venv/bin/activate 8 | pip install -r requirements.txt 9 | ``` 10 | -------------------------------------------------------------------------------- /docs/CNAME: -------------------------------------------------------------------------------- 1 | docs.net9.org -------------------------------------------------------------------------------- /docs/ai-ml/index.md: -------------------------------------------------------------------------------- 1 | # 人工智能 & 机器学习 2 | 3 | 本部分主要介绍人工智能领域相关知识以及可能使用到的框架、工具。 4 | 5 | !!! caution "不完善的条目" 6 | 7 | 我们希望有更多的编写者为这一部分编写文档,尤其是 Pytorch 相关。 -------------------------------------------------------------------------------- /docs/backend/index.md: -------------------------------------------------------------------------------- 1 | # 后端框架 2 | 3 | 本部分主要介绍后端开发时可能使用到的各类框架。 4 | 5 | -------------------------------------------------------------------------------- /docs/basic/index.md: -------------------------------------------------------------------------------- 1 | # 基本技能 2 | 3 | 进入计算机领域的一些基本的学习技能和学习工具,从如何记笔记、码代码,到如何使用好你的电脑、如何管理你的代码,我们希望这里的文档能提供一些帮助。 4 | 5 | !!! caution "不完善的条目" 6 | 7 | 我们希望有更多的编写者为这一部分编写文档。 -------------------------------------------------------------------------------- /docs/basic/markdown.md: -------------------------------------------------------------------------------- 1 | # Markdown 入门 2 | 3 | !!! note "前言" 4 | 5 | Markdown 是一种学习成本较低的轻量级标记语言。它用简单的标记语法代替按钮,因此能省去频繁使用鼠标调整排版的麻烦,为文档编写者提供便利。用 Markdown 编写的内容可导出为 HTML、Word、PDF 等多种格式的文档。由于易读易写,它在 GitHub、简书等网站上也有广泛的应用。 6 | 7 | 通过阅读本文档,读者可以在五分钟内快速学习到常用的 Markdown 标记。更多的内容请移步菜鸟教程。 8 | 9 | 我们强烈建议计算机类的同学们在大一的春季学期学会 Markdown 或 LaTeX 二者中其中之一,因为这将是我们后续实验报告或大作业报告将利用的常用工具。 10 | 11 | 在开始学习 Markdown 语法之前,建议先通过 [Typora 官网](https://typora.io/) 安装好 Typora 编辑器。 12 | 13 | ## 语法 14 | 15 | ### 标题 16 | 17 | 共有 1-6 级标题,使用 `#` 标记。`#` 数量与标题级别对应。注意 `#` 与文字间的空格不可省略。 18 | 19 | ```markdown 20 | #### 四级标题 21 | ##### 五级标题 22 | ###### 六级标题 23 | ``` 24 | 25 | #### 四级标题 26 | ##### 五级标题 27 | ###### 六级标题 28 | 29 | ### 字体 30 | 31 | ```markdown 32 | *斜体* _斜体_ 33 | **粗体** __粗体__ 34 | ***粗斜体*** ___粗斜体___ 35 | ~~删除线~~ 36 | 下划线 37 | ``` 38 | 39 | *斜体* _斜体_ 40 | 41 | **粗体** __粗体__ 42 | 43 | ***粗斜体*** ___粗斜体___ 44 | 45 | ~~删除线~~ 46 | 47 | 下划线 48 | 49 | ### 列表 50 | 51 | 无序列表用 `*` 或 `+` 或 `-` 标识,有序列表用数字和 `.` 来标识,支持列表嵌套。 52 | 53 | ```markdown 54 | * 第一项 55 | + 第二项 56 | - 第三项 57 | 1. 子项一 58 | 1. 孙子项一 59 | * 重孙子项一 60 | ``` 61 | 62 | * 第一项 63 | + 第二项 64 | - 第三项 65 | 1. 子项一 66 | 1. 孙子项一 67 | * 重孙子项一 68 | 69 | ### 引用 70 | 71 | ```markdown 72 | > 这是一条无意义的引用。 73 | ``` 74 | 75 | > 这是一条无意义的引用。 76 | 77 | ### 代码 78 | 79 | ```markdown 80 | 加法操作由 `add()` 函数完成 81 | ``` 82 | 83 | 加法操作由 `add()` 函数完成 84 | 85 | ````markdown 86 | ```Python 87 | def add(a, b): 88 | return a + b 89 | ``` 90 | ```` 91 | 92 | ```Python 93 | def add(a, b): 94 | return a + b 95 | ``` 96 | 97 | ### 链接 98 | 99 | ```markdown 100 | [菜鸟教程](https://www.runoob.com/markdown/md-tutorial.html) 101 | 102 | ``` 103 | 104 | [菜鸟教程](https://www.runoob.com/markdown/md-tutorial.html) 105 | 106 | 107 | 108 | ### 图片 109 | 110 | 插入图片需依照 `![alt 属性文本](图片地址)` 格式。注意不要使用本地路径,可以将图片上传到清华云盘再获取图片链接。 111 | 112 | ```markdown 113 | ![示例图片](https://i.loli.net/2021/10/08/R3wUTtaAZHjSxEV.png) 114 | ``` 115 | 116 | ![示例图片](https://i.loli.net/2021/10/08/R3wUTtaAZHjSxEV.png) 117 | 118 | ## 其他 119 | 120 | Markdown 还有一些高级玩法,例如表格、公式、HTML 元素、画时序图、画流程图等等。由于不是很常用,这些都留给有兴趣的读者自行探索。 121 | 122 | 友情链接: 123 | 124 | + 菜鸟教程 125 | + **(推荐学习)**公式编辑教程 126 | + 绘制流程图、时序图、甘特图 127 | + CommonMark,一个常用的 Markdown 标准 128 | -------------------------------------------------------------------------------- /docs/basic/meet-problems.md: -------------------------------------------------------------------------------- 1 | # 当我遇到问题时,我该怎么做... 2 | 3 | > 科协水群里闲聊时,有人“暴言”:“在贵系有技术问题时,摇人比查文档更方便。”遇到问题时多和其他人交流、避免闷头苦干当然是支持的,但这并不意味着问问题前不需要付出努力(例如在搜索引擎上查找)、问问题时对方有义务替你解答...... 4 | > 5 | > —— 摘自 “酒井科协” 公众号 2022 年 3 月 25 日文章 6 | 7 | 学习过程中遇到问题是在所难免的,而如何面对遇到的问题,却是值得我们学习的话题。本篇文章我们从“如何使用搜索引擎”、“如何查阅官方文档”、“如何选择常用网站”、“如何有效地进行提问”这几种方式来阐述,“当我在学习过程中遇到问题时,我应该怎样做...” 8 | 9 | 10 | 11 | ## 如何使用搜索引擎 12 | 13 | ### 我应该怎样选用搜索引擎 14 | 15 | “百度一下,你就知道”诚然是大众的选择,而我们必须指出其在搜索结果呈现时的局限性。具体来说,由于一些商业性因素的限制,它大概率会返回一些与搜索结果不是最强相关的内容。我们在这里推荐两款搜索引擎:如果你因为中国大陆的限制无法访问互联网上的一部分内容,我们推荐你使用 **“Bing 国际版”**,而如果你可以访问到世界互联网上的内容,我们则推荐你使用 **“Google”**。我们接下来的讨论均以后者作为基础展开。 16 | 17 | ### 我应该如何使用搜索引擎 18 | 19 | 相信大家都掌握了搜索引擎的基本使用方法,也掌握了例如“搜索关键词”而不是“搜索整句话”的这种基本搜索技巧。接下来我们演示一些较为进阶的搜索方法。 20 | 21 | + 指定网站搜索 `site:web.site` 22 | + 精确匹配 `"Exact Match"` 23 | + 必须包含 `+` 与必须不包含 `-` 24 | + 任意匹配 `*` 25 | + 指定时间范围,例如只获取过去 1 年内的搜索结果,这样可以保证搜索结果的时效性 26 | 27 | 参考资料:[How to properly use a search engine](https://www.instructables.com/How-to-Properly-Use-a-Search-Engine/). 28 | 29 | 30 | 31 | ## 如何查阅官方文档 32 | 33 | 大部分你使用的工具或者库都会有自己的官网网站;有些即使没有官方网站也会有自己的 GitHub Repo 和配套的 Wiki。了解一个工具或者函数库最全面、也是最便利的方法,实际上是读它对应部分的说明文档。 34 | 35 | 比如,我们想了解怎么在 PyTorch 中实现叉乘,或许我们可以在百度中搜索 `pytorch 叉乘`,然后点开一个 CSDN 教程,但这远没有 Google 搜索 `pytorch cross product`,然后打开 pytorch.org 的官方文档进行阅读来的全面而透彻。 36 | 37 | 再比如,如果我想快速上手一个名叫 “Carla” 的模拟仿真工具,最合适的方式,应该是搜索 “carla doc”,然后打开[官方文档](https://carla.readthedocs.io/en/latest/)阅读其中 “Getting Started” 部分,这样能对这个软件有最基本的了解。之后再根据自己的需要阅读其他部分的内容。 38 | 39 | 40 | 41 | ## 如何选择常用网站 42 | 43 | 要想搜索不同的内容,我们一般会选择不同的网站。这里我们针对一些常见的问题,列出一些常用的网站: 44 | 45 | `Runtime Error / Compilation Error` 46 | 47 | 程序运行时遇到了我不了解的报错,即使查看了函数调用栈也不理解最终的报错信息;程序编译不过,其中用了我不理解的编译特性... **StackOverflow** 是这些问题的好帮手,可以替代 CSDN 作为你的搜索首选。事实上,CSDN 的部分内容是直接从 StackOverflow 上搬运而来,而这些搬运而来的内容在国内网站上又相互爬取、相互展示... 48 | 49 | 但这也不意味着中文内容都是差的,如果使用 Google 并且语言为中文,通常能查到一些中文个人博客的内容,这些内容一般不会是机器搬运的,可以作为参考。例如如果想要配置 `DN42` 实验网络,由于官方文档不详细,个人博客的内容也是非常重要的参考。 50 | 51 | `What is the original paper of XXX...` 52 | 53 | 我们想知道某篇学术论文的出处,或者是其引用格式。这时 **scholar.google.com** 就可以起到很好的作用。如果你知道这篇论文的全名,你可以直接进行搜索,然后便捷地获取引用格式与论文原文的 PDF 版本。 54 | 55 | `I want to know whether or not someone has implemented this...` 56 | 57 | 想找过往的轮子?好办,在 **GitHub** 中进行搜索,你可以看到规模庞大的开源代码...但是,在使用时请务必遵守其对应的 LICENSE。可以尝试使用 [GitHub Code Search](https://cs.github.com),能够更加精确、全面的搜索公开仓库的代码。 58 | 59 | 此外,在学习对应的内容时,我们推荐到对应的官方网站、教程、文档或 Wiki 上进行学习。在学习一些公开课程可能涉及到的知识时(如 CS231n),我们推荐先搜索课程主页,进而在 YouTube 上搜索对应的讲解视频,然后在 B 站与知乎等国内平台上进行检索。 60 | 61 | 62 | 63 | ## 如何有效地进行提问 64 | 65 | 在你尝试了如上内容无果之后,自己闷头苦干或许已经不能解决你的问题了。是时候进行提问了 —— 打开微信列表,翻出一个人的账号,然后敲下一句“在吗”,等待回复 —— 不,这并不是正确的提问方式,至少对方从一句“在吗”中并没有获得任何的信息增益。他/她可能认为你想邀他/她喝一杯下午茶,而不是帮你还有 24 个小时就到 DDL 的 DSA 编程作业 Debug。 66 | 67 | 要想有效地进行提问,我们强烈推荐你阅读一遍参考资料。当然,我们在这里列出几点重点: 68 | 69 | **在你提问之前** 70 | 71 | + 请确保你通过搜索引擎检索不到你想问的问题 72 | + 请确保你查阅了官方文档,其中并没有提及可以直接解决你的问题的答案 73 | + 请确保你自己做了充分的预实验 74 | + 比如 `这段程序的运行结果是什么?`,为什么不自己跑一下呢 75 | 76 | **你的提问内容** 77 | 78 | + 请提供充分的信息给回答者 79 | + 比如请不要发一个 `这段代码有 Bug [捂脸]` 的语句给对方,然后附上一个 ~300 行,以文本方式发送在微信聊天框的代码 80 | + 请至少提供充分的说明:哪段代码?出了什么问题?报错信息是什么?这段代码的目标功能是什么? 81 | + 如果有可能的话,请给出足够多的注释(不过是代码还是你的思考内容) 82 | + 请说出你做过了哪些努力 83 | + 比如按照某个论坛某条回复的方法进行了尝试 84 | 85 | 即使提问,也不代表问题的主动权放在了对方手里。问题毕竟是你自己的问题,对方没有义务帮助你必须解决掉这个问题,所以继续自行寻找答案也许是需要的... 86 | 87 | 参考资料:[How to ask the question the smart way](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way). -------------------------------------------------------------------------------- /docs/basic/web.md: -------------------------------------------------------------------------------- 1 | # Web 与 Web 应用基础 2 | 3 | ## 前言 4 | 5 | 当我们访问网站的时候,发生了些什么?网页实质上是文件。当我们通过浏览器访问网站时,浏览器会向服务器发送请求,服务器会将网页文件发送给浏览器,浏览器再将网页文件渲染成我们看到的网页。 6 | 7 | ## Web 页面 8 | 9 | ### HTML 10 | 11 | HTML (Hyper Text Markup Language, 超文本标记语言) 是一种用于描述网页文档的语言。HTML 定义了许多不同种类的标签, 它们被尖括号包围,起始标签和结束标签通常成对出现,标签自身则表示了内容的类型与格式,标签内含有具体的内容。例如,下面的代码表示 **加粗的** “你好” 12 | 13 | ```html 14 | 你好 15 | ``` 16 | 17 | 在 Word 中,我们通过手动在 Tab 栏里调整格式,文本的写作、结构和格式的调整相分离。而在 HTML 中,**内容的格式信息以标签的形式,作为纯文本存储在文件中**,便于生成、编辑、传输、渲染。 18 | 19 | 下面是一些常见的用来表征文本的 HTML 标签: 20 | 21 | |标签|描述| 22 | |---|---| 23 | |`

` - `

`|定义标题,从最高级别到最低级别| 24 | |`

`|定义段落| 25 | |`