README.md 10.5 KB
Newer Older
F
feilong 已提交
1
# CSDN 技能森林
幻灰龙's avatar
幻灰龙 已提交
2

F
feilong 已提交
3
本仓库是技能树森林的 RFC(Request for Comments) 仓库。提议请在 rfc/ 目录下创建文档,例如 [`rfc_001.md`](./rfc/rfc_001.md)
F
feilong 已提交
4

F
feilong 已提交
5 6
[技能树发布的新闻稿](https://blog.csdn.net/SoftwareTeacher/article/details/122858533)

F
fix bug  
feilong 已提交
7 8
## 如何参与贡献

F
fix bug  
feilong 已提交
9
1. fork 下面对应开放技能树编辑仓库,仔细阅读对应的仓库的README规则,新增习题或者改进已有习题
F
fix bug  
feilong 已提交
10 11 12
2. 提交 pull-request 等待审核合并
3. 核心贡献者会邀请加入项目仓库成员
4. 技能树社区将展示出题者信息,以及根据贡献值奖励一定的原力值
F
feilong 已提交
13
5. 参考[参与贡献Q/A](./qa.md)
F
fix bug  
feilong 已提交
14

F
feilong 已提交
15 16 17 18
## 技能树仓库和技能树社区

* 技能树开放编辑仓库采用 MIT 或者 CC4 开源协议
* 一个技能树仓库的章节结构和习题就绪时,则上线初版的技能树社区
F
fix bug  
feilong 已提交
19

F
feilong 已提交
20 21 22 23 24 25 26 27 28 29 30
|| 开放编辑仓库      | 上线的技能树社区 | 状态|
|--| ----------- | ----------- |----------- |
|1|[CS入门技能树仓库](https://gitcode.net/csdn/skill_tree_git_md_linux)|[CS入门技能树社区](https://bbs.csdn.net/skill/gml)|✓|
|2|[Python技能树编辑仓库](https://gitcode.net/csdn/skill_tree_python)|[Python技能树社区](http://python.csdn.net)|✓|
|3|[C语言技能树编辑仓库](https://gitcode.net/csdn/skill_tree_c)|[C语言技能树社区](http://clang.csdn.net)|✓|
|4|[Java技能树编辑仓库](https://gitcode.net/csdn/skill_tree_java)|[Java技能树社区](https://bbs.csdn.net/skill/java)|✓|
|5|[算法(algorithm)技能树编辑仓库](https://gitcode.net/csdn/skill_tree_algorithm)|[算法技能树社区](https://algo.csdn.net)|✓|
|6|[PostgreSQL技能树编辑仓库](https://gitcode.net/csdn/skill_tree_pg)|[PostgreSQL技能树社区](https://bbs.csdn.net/skill/pg)|✓|
|7|[OpenCV技能树编辑仓库](https://gitcode.net/csdn/skill_tree_git_md_linux)|[OpenCV技能树社区](https://bbs.csdn.net/skill/opencv)|✓|
|8|[每日一题技能树编辑仓库](https://gitcode.net/csdn/skill_tree_dailycode)|[每日一练](https://dailycode.csdn.net)|✓|
|9|[Neo4j技能树编辑仓库](https://gitcode.net/csdn/skill_tree_neo4j)|[Neo4j技能树社区](https://bbs.csdn.net/skill/neo4j)|✓|
F
feilong 已提交
31
|10|[云原生入门技能树](https://gitcode.net/csdn/skill_tree_cloud_native)|[云原生入门技能树](https://bbs.csdn.net/skill/cloud_native)|✓|
F
feilong 已提交
32 33 34 35
|11|[网络技能树](https://gitcode.net/csdn/skill_tree_network)|[网络技能树社区](https://bbs.csdn.net/skill/network) | ✓初阶已上线 |
|12|[Vue技能树](https://gitcode.net/csdn/skill_tree_vue)| |.|
|13|[.NET技能树](https://gitcode.net/csdn/skill_tree_dotnet)| | . |
|14|[Rust技能树](https://gitcode.net/csdn/skill_tree_rust)| | . |
F
feilong 已提交
36
|15|[Web开发入门技能树](https://gitcode.net/csdn/skill_tree_web)| | |
F
feilong 已提交
37 38 39 40 41 42
|16|[Web实战技能树](https://gitcode.net/csdn/skill_tree_web_in_action)| | |
|17|[AI技能树](https://gitcode.net/csdn/skill_tree_ai)| | |
|18|[OceanBase技能树](https://gitcode.net/csdn/skill_tree_oceanbase)| | |
|19|[DevOps运维技能树](https://gitcode.net/csdn/skill_tree_devops)| | |
|20|[面向对象程序设计技能树](https://gitcode.net/csdn/skill_tree_oo)| | |
|21|[游戏开发入门技能树](https://gitcode.net/csdn/skill_tree_game)| | |
F
feilong 已提交
43

F
feilong 已提交
44

F
feilong 已提交
45 46 47 48 49 50
## 技能树服务构建项目

技能树数据处理的流水线如下:

`技能树开放编辑仓库` --> `技能树命令行工具` --> `技能树服务`

F
feilong 已提交
51
其中不同环节的仓库如下:
F
feilong 已提交
52

F
feilong 已提交
53 54 55
* `技能树开放编辑仓库` 就是每个领域的编辑仓库。
*`技能树命令行工具``技能树服务` 会分别创建两个独立的仓库
* 实现上,`技能树命令行工具``技能树服务` 都会有一些对技能树编辑仓库数据的结构解析、校验、转换需求,这些解析器的实现托管在一个独立的 `技能树解析` 仓库里。
F
feilong 已提交
56

F
feilong 已提交
57
管道仓库状态
F
feilong 已提交
58

F
feilong 已提交
59 60 61 62 63
| 仓库      | 状态|
| ----------- | ----------- |
|技能树命令行工具(skill_tree_cli)|内部状态,TODO:开放仓库,参考下一节|
|技能树服务(skill_tree_server)|内部状态,TODO:开放仓库|
|[技能树解析(skill_tree_parser)](https://gitcode.net/csdn/skill_tree_parser)|已创建并在三个环节使用|
F
feilong 已提交
64 65

## [技能树命令行设计(草稿)](https://gitcode.net/csdn/skill_tree/-/issues/4)
F
feilong 已提交
66

F
feilong 已提交
67
技能树仓库编辑命令 最终应该和 技能树管道处理命令组合在一起,类似 git 一样提供一个 skill_tree 命令,该命令包含如下 `actions`
F
feilong 已提交
68

F
feilong 已提交
69
* `init` 命令:初始化一个技能树仓库,该过程会交互式询问,输入技能树仓库相关的 meta 信息,用来自动完成技能树仓库
F
feilong 已提交
70 71 72 73 74
  * 原始数据编辑目录:data/
  * 处理脚本目录:src/
  * 管道数据处理目录:pipeline/
    * 保持结构并规格化处理输出目录:pipeline/spec
    * 链接合成目录:pipeline/link
F
feilong 已提交
75 76 77
* `tree` 命令:在data/ 目录下通过该命令为每个节点和习题分配id,自动化生成必要的元数据
* `spec` 命令:在pipeline/spec 目录下输出严格规格化的中间数据格式
* `link` 命令:链接节点数据,包含
F
feilong 已提交
78 79 80
  * 生成节社区(抽象意义上)
  * 生成节频道(抽象意义上)
  * 生成习题交流贴(抽象意义上)
F
feilong 已提交
81 82
* `deploy` 命令:将link后的产生的数据发布到抽象技能树服务
* `server` 命令:启动抽象技能树服务,用户可以开始使用。
F
feilong 已提交
83

F
feilong 已提交
84 85 86 87 88
## 技能树概述

内容生产者, 内容消费者,学习者: 他们有不同的需求。

从一个“产品设计” 的角度,一个领域 (Python) 有一个技能树。 这个技能树上面有很多 知识点,这些知识点有 {初中高} 的特性。 每个知识点有 相关的 {博客, 问答, 代码, 视频,... } 集合。 用户如何证明自己掌握了某个知识点? 考虑:
F
fix bug  
feilong 已提交
89

F
feilong 已提交
90 91 92 93
* 每个知识点有相关的 “测试”,通过了这个 “测试”.
* 成为这个知识点的回答采纳目标。
* 写原创博客获得一定的赞。
* 通过某种考试。
F
feilong 已提交
94 95 96 97 98 99 100 101 102

## 痛点的解决

* 我怎么能证明我自己懂了这个领域? 解决:显示用户花了时间,通过了测试,写了博客。
* 光看博客就能证明自己懂了么? 解决:不行,必须通过测试了
* 我看了程序,但是只有程序片段,我怎么运行在我的电脑呢?   CSDN 的程序是完整的,但是拷贝到我的电脑上,怎么不行啊? 解决:让用户能执行完整的可运行的程序。
* 回答者的痛点:我不断地回答相似的问题,一遍一遍给他们源代码。 解决:把完整的解决代码放在 Code 平台上,以后让提问者来这里看。 (这个和 ‘问答’ 业务很相关)

对于技能树上的一个问题,我们应该有完整的解决方案,让用户非常满意:
F
feilong 已提交
103

F
feilong 已提交
104
* 问题(怎么做归并排序?)
F
feilong 已提交
105 106 107 108
* 解答(原理是这样的)
* 代码:这个代码是要能在 Code-China 上可以运行的 (归并排序的代码在 JupyterNotebook 之类的平台运行)
* 解释通过代码的评论来完成:用户会说:我不大懂第十行, 为何要这样写?  专家就会解释。

F
feilong 已提交
109
## 技能树社区核心设计
F
feilong 已提交
110

F
feilong 已提交
111 112 113 114 115
1. 构建结构化信息,通过难度等级、章/节+子树,使用算法匹配学习知识
2. 每个知识点节点是一个微社区
3. 每个微社区内包含3个重要元素:
    * 参考资料(学习,使用算法匹配+推荐给出最优质内容)
    * 习题(验证学习,是否掌握了知识点?习题做完可以去Notebook运行)
F
feilong 已提交
116 117 118 119 120
    * 交流讨论区(同主题交流,通过输出进一步强化学习)

## 基于技能树的知识图谱

基于技能树的层次结构,构建复合的知识图谱结构,仓库: [skill_tree_level](https://gitcode.net/csdn/skill_tree_level.git)
F
feilong 已提交
121 122 123 124 125 126 127 128 129

## 不同技能树构成了职业路线学习包

data/pacakage 目录下定义了由不同的技能树组合构成的学习包
例如:
* [Java后端工程师职业路线](./data/package/career/java_backend.json)
* [Python爬虫工程师职业路线](./data/package/career/python_crawler.json)
* [Python数据分析工程师职业路线](./data/package/career/python_data_analyzer.json)
* [Python运维工程师职业路线](./data/package/career/python_ops.json)
F
feilong 已提交
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188


## 贡献者列表

### 顾问
    * [SoftwareTeacher @SoftwareTeacher](https://blog.csdn.net/SoftwareTeacher)
    * [于仕琪(南科大) @u010670887](https://blog.csdn.net/u010670887)

### 已发布技能树

* CS入门技能树
    * [幻灰龙 @huanhuilong](https://blog.csdn.net/huanhuilong)
    * [厦门陈奕迅 @u011837622](https://blog.csdn.net/u011837622)
* Python技能树
    * [幻灰龙 @huanhuilong](https://blog.csdn.net/huanhuilong)
    * [HansBug @HansBug](https://blog.csdn.net/HansBug)
* C语言技能树
    * [Alexxinlu @u010280923](https://blog.csdn.net/u010280923)
    * [幻灰龙 @huanhuilong](https://blog.csdn.net/huanhuilong)
    * [ccat @ccat](https://blog.csdn.net/ccat)
* Java技能树
    * [ccat @ccat](https://blog.csdn.net/ccat)
    * [湘王 @lostrex](https://blog.csdn.net/lostrex)
    * [GreyZeng @hotonyhui](https://blog.csdn.net/hotonyhui)
* 算法技能树
    * [PeasantWorker @qq_44193969](https://blog.csdn.net/qq_44193969)
    * [幻灰龙 @huanhuilong](https://blog.csdn.net/huanhuilong)
* PostgreSQL技能树
    * [ccat @ccat](https://blog.csdn.net/ccat)
* OpenCV技能树
    * [幻灰龙 @huanhuilong](https://blog.csdn.net/huanhuilong)
    * [小白YouCans @youcans](https://blog.csdn.net/youcans)
    * [AI浩 @hhhhhhhhhhwwwwwwwwww](https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww)
    * [请叫我卷福 @xiaozhi_5638](https://blog.csdn.net/xiaozhi_5638)
    * [吴佳WuJia @yvettewu](https://blog.csdn.net/yvettewu)
* Neo4j 技能树
    * [Neo4j 开发者 @neo4jdev](https://blog.csdn.net/neo4jdev)
* 云原生入门技能树
    * [幻灰龙 @huanhuilong](https://blog.csdn.net/huanhuilong)
* 网络技能树
    * [鸡腿0452 @a54034079](https://blog.csdn.net/a54034079)
    * [Jinfeng Pan @m0_61899144](https://blog.csdn.net/m0_61899144)
    * [Jason_Zhou1 @Jason_Zhou1](https://blog.csdn.net/Jason_Zhou1)
    * [horrible_seed @horrible_seed](https://blog.csdn.net/horrible_seed)
    * [2002ljy @qq_45947883](https://blog.csdn.net/qq_45947883)
    * [Benttto @qq_53286237](https://blog.csdn.net/qq_53286237)
    * [fdflz001 @qq_52947385](https://blog.csdn.net/qq_52947385)

### 未发布技能树

* Rust 技能树
    * [幻灰龙 @huanhuilong](https://blog.csdn.net/huanhuilong)
    * [jacky_rust @qq_42530826](https://blog.csdn.net/qq_42530826)
* .NET 技能树
    * [幻灰龙 @huanhuilong](https://blog.csdn.net/huanhuilong)
    * [kinfey](https://blog.csdn.net/kinfey)
    * [Admini$trat0r @qq_41863100](https://blog.csdn.net/qq_41863100)
* Vue技能树
    * [几何心凉 @JHXL_](https://blog.csdn.net/JHXL_)