这个指南在做什么

当一个自学者开始自学一个技能/课程/学科时,通常会遇到这么几个事情

  1. 课程资料: 包括公开课视频,课程用书以及习题集等,要去哪里找?
  2. 前置课程: 课程之间存在先后序关系,学习某个课程之前,需要预先学习什么其他课程?
  3. 学科的路线图: 学科会包含一系列课程,这些课程之前的关系图是怎么样的?

简单来说,本指南提供了一个聚合的地方解决上面所说的三个问题,可以方便的搜索学科体系,课程学习路线以及相关学习资料。

如何使用

点击网页右上角的搜索按钮,便可轻松的搜到资料

信息不全的问题

  这里所有的资料都是由网友按照一定的规则上传的,如果你发现当前自己所学的专业简介是空页面或者课程资料暂缺时,非常欢迎你一起参与进来,共同完善指南信息。详见如何参与

如何参与

如何提交学科和课程的信息

  有三种方式能让你参与到本项目中来,这里按使用者的难易程度从难到易列出

  1. 如果你知道如何使用github的pull request,那么可以通过直接向本项目提交pull request提交信息,具体的提交格式可以参考下一节。
  2. 如果你拥有一个github账号,但却不知道如何提交pull request,也没有关系。可以通过在向本项目提交issue的方式来给与支持。提交issue时可以是任意格式,但是建议参考一下提交修改的格式约定,好让维护者方便的将信息填入对应的专业、课程当中。
  3. 如果你从来没有使用过git,那么您可以通过邮件的方式给项目维护者以建议。当前项目维护者邮箱: mugglewei@gmail.com。发送邮件可以是任意文本格式,但是建议参考一下提交修改的格式约定,好让维护者方便的将信息填入对应的专业、课程当中。

提交的格式

  • 由于本项目是学科自学指南,所以当涉及学习资料时,只需填入链接和说明即可。不建议直接上传任何的视频、图片甚至教材到本项目当中来。
  • 本项目的结构如下图所示
    • /content/posts: 为所有节点的根目录
    • subject_system: 学科体系介绍,当中包含了不同的专业目录及关系图;例如学科体系-中国
    • major: 学科专业介绍,当中包含此专业的基础课程和专业课程目录,以及课程之间的依赖关系;例如信息与计算科学
    • course: 课程介绍,当中可包含不同学校的公开课视频链接,课件链接等; 例如数学分析
graph {
    posts [label="/content/posts"];
    subject_system [label="subject_system"];
    major [label="major"];
    course [label="course"];
    
    posts--subject_system;
    posts--major;
    posts--course;
}
  • 插入专业/课程时,不建议手动插入,可以通过项目根目录中的两个python脚本,自动生成预设格式
    • 生成专业
    1
    
    python new_major.py ${专业名称}
    
    • 生成课程
    1
    
    python new_course.py ${课程名称}
    
  • 本项目中的课程依赖图以及学科关系图,全部使用 dot语言 描述,比如上面生成专业之后,可以找到graphviz代码块,直接编写即可
  • 预览: 当在本地修改好之后,想要预览最终的效果,可以安装hugo,然后运行run.sh(windows用户运行run.bat),之后打开游览器,输入http://127.0.0.1:8080/learning_compass/ 即可在本地游览效果。如果只是游览单页,可以在vscode中安装好markdown和graphviz的插件就可以了。
  • 项目中的链接跳转:由于Github Pages的URL不一定一样,使用绝对地址在项目中跳转会有问题,所以建议在专业页面引用课程页面时,使用相对目录。