README.md 8.0 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 31 32 33 34 35
|| 开放编辑仓库      | 上线的技能树社区 | 状态|
|--| ----------- | ----------- |----------- |
|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)|✓|
|10|[云原生技能树](https://gitcode.net/csdn/skill_tree_cloud_native)|[云原生入门技能树](https://bbs.csdn.net/skill/cloud_native)|✓|
|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)