提交 551e2a18 编写于 作者: F feilong

生成学习包和技能树索引

上级 cdc75010
{
"jobs": [
{
"name": "C++工程师",
"level_name": "入门",
"router": "cpp_01"
},
{
"name": "C++工程师",
"level_name": "进阶",
"router": "cpp_02"
},
{
"name": "Java后端工程师",
"level_name": "入门",
"router": "javabf_01"
},
{
"name": "Java后端工程师",
"level_name": "进阶",
"router": "javabf_02"
},
{
"name": "Android工程师",
"level_name": "入门",
"router": "android_01"
},
{
"name": "Android工程师",
"level_name": "进阶",
"router": "android_02"
},
{
"name": "运维工程师",
"level_name": "入门",
"router": "devops_01"
},
{
"name": "运维工程师",
"level_name": "进阶",
"router": "devops_02"
},
{
"name": "搜索工程师",
"level_name": "入门",
"router": "search_01"
},
{
"name": "搜索工程师",
"level_name": "进阶",
"router": "search_02"
},
{
"name": "爬虫工程师",
"level_name": "入门",
"router": "crawler_01"
},
{
"name": "爬虫工程师",
"level_name": "进阶",
"router": "crawler_02"
},
{
"name": "Go后端工程师",
"level_name": "入门",
"router": "go_01"
},
{
"name": "Go后端工程师",
"level_name": "进阶",
"router": "go_02"
},
{
"name": "机器视觉工程师",
"level_name": "入门",
"router": "machinevision_01"
},
{
"name": "机器视觉工程师",
"level_name": "进阶",
"router": "machinevision_02"
},
{
"name": "测试工程师",
"level_name": "入门",
"router": "test_01"
},
{
"name": "测试工程师",
"level_name": "进阶",
"router": "test_02"
},
{
"name": "BI 工程师",
"level_name": "入门",
"router": "bi_01"
},
{
"name": "BI 工程师",
"level_name": "进阶",
"router": "bi_02"
},
{
"name": "PHP工程师",
"level_name": "入门",
"router": "php_01"
},
{
"name": "PHP工程师",
"level_name": "进阶",
"router": "php_02"
},
{
"name": "前端工程师",
"level_name": "入门",
"router": "web_01"
},
{
"name": "前端工程师",
"level_name": "进阶",
"router": "web_02"
},
{
"name": "iOS工程师",
"level_name": "入门",
"router": "ios_01"
},
{
"name": "iOS工程师",
"level_name": "进阶",
"router": "ios_02"
},
{
"name": "后端构架师",
"level_name": "入门",
"router": "archit_01"
},
{
"name": "后端构架师",
"level_name": "进阶",
"router": "archit_02"
},
{
"name": "产品",
"level_name": "入门",
"router": "product_01"
},
{
"name": "产品",
"level_name": "进阶",
"router": "product_02"
},
{
"name": "大数据工程师",
"level_name": "入门",
"router": "bigdata_01"
},
{
"name": "大数据工程师",
"level_name": "进阶",
"router": "bigdata_02"
},
{
"name": "自然语言处理工程师",
"level_name": "入门",
"router": "nlp_01"
},
{
"name": "自然语言处理工程师",
"level_name": "进阶",
"router": "nlp_02"
},
{
"name": "运营",
"level_name": "入门",
"router": "operations_01"
},
{
"name": "运营",
"level_name": "进阶",
"router": "operations_02"
},
{
"name": "算法工程师",
"level_name": "入门",
"router": "algo_01"
},
{
"name": "算法工程师",
"level_name": "进阶",
"router": "algo_02"
}
],
"trees": [
"ai",
"algorithm",
"algorithm02",
"android",
"c",
"cassandra",
"cloud_native",
"cpp",
"devops",
"distrubute",
"flutter",
"gml",
"go",
"goplus",
"hadoop",
"java",
"k8s",
"kafka",
"mongodb",
"mq",
"mysql",
"neo4j",
"network",
"nginx",
"nlp",
"opencv",
"operation",
"operations",
"pg",
"php",
"product",
"python",
"python02",
"react",
"redis",
"rust",
"scala",
"search",
"spark",
"springboot",
"springcloud",
"swift",
"test",
"vue",
"web",
"weixin"
]
}
\ No newline at end of file
...@@ -10,10 +10,17 @@ ...@@ -10,10 +10,17 @@
"level_id": "pkg-algo-level-1b8296e8c947421981ca1f4ea920878a", "level_id": "pkg-algo-level-1b8296e8c947421981ca1f4ea920878a",
"skill_trees": [ "skill_trees": [
"gml", "gml",
"c",
"algorithm", "algorithm",
"c" "python",
"mysql"
], ],
"recommend_skill_trees": [] "recommend_skill_trees": [
"gml",
"c",
"algorithm",
"python"
]
}, },
{ {
"level": "02", "level": "02",
...@@ -23,7 +30,10 @@ ...@@ -23,7 +30,10 @@
"python02", "python02",
"ai" "ai"
], ],
"recommend_skill_trees": [], "recommend_skill_trees": [
"algorithm02",
"python02"
],
"level_id": "pkg-algo-level-0e0f4c2d372c4be6a4954c1e8e29a3bc" "level_id": "pkg-algo-level-0e0f4c2d372c4be6a4954c1e8e29a3bc"
} }
] ]
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
"skill_trees": [ "skill_trees": [
"gml", "gml",
"java", "java",
"android" "android",
"web"
], ],
"recommend_skill_trees": [] "recommend_skill_trees": []
}, },
...@@ -19,7 +20,7 @@ ...@@ -19,7 +20,7 @@
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [ "skill_trees": [
"react", "vue",
"weixin", "weixin",
"flutter" "flutter"
], ],
......
...@@ -10,28 +10,36 @@ ...@@ -10,28 +10,36 @@
"level_id": "pkg-archit-level-634117d27ab1492db3d6e973e122f8c3", "level_id": "pkg-archit-level-634117d27ab1492db3d6e973e122f8c3",
"skill_trees": [ "skill_trees": [
"gml", "gml",
"algorithm",
"network", "network",
"java", "devops",
"springboot",
"nginx", "nginx",
"devops" "mysql",
"redis",
"mq"
], ],
"recommend_skill_trees": [] "recommend_skill_trees": [
"gml",
"network",
"pg",
"cloud_native"
]
}, },
{ {
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [ "skill_trees": [
"springboot",
"springcloud", "springcloud",
"mysql",
"pg", "pg",
"mongodb", "mongodb",
"distrubute",
"go", "go",
"node.js",
"cloud_native" "cloud_native"
], ],
"recommend_skill_trees": [], "recommend_skill_trees": [
"pg",
"cloud_native"
],
"level_id": "pkg-archit-level-ce6121fa7a9c4a58aa9852da2bac850f" "level_id": "pkg-archit-level-ce6121fa7a9c4a58aa9852da2bac850f"
} }
] ]
......
...@@ -11,12 +11,11 @@ ...@@ -11,12 +11,11 @@
"skill_trees": [ "skill_trees": [
"gml", "gml",
"python", "python",
"algorithm",
"mysql" "mysql"
], ],
"recommend_skill_trees": [ "recommend_skill_trees": [
"python02", "gml",
"algorithm02", "python",
"pg" "pg"
] ]
}, },
...@@ -24,13 +23,13 @@ ...@@ -24,13 +23,13 @@
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [ "skill_trees": [
"gml", "redis",
"python", "pg",
"algorithm" "mongodb",
"hadoop",
"scala"
], ],
"recommend_skill_trees": [ "recommend_skill_trees": [
"python02",
"algorithm02",
"pg" "pg"
], ],
"level_id": "pkg-bi-level-0046fafee14640c7b5aa29cc97b17a8a" "level_id": "pkg-bi-level-0046fafee14640c7b5aa29cc97b17a8a"
......
...@@ -10,16 +10,30 @@ ...@@ -10,16 +10,30 @@
"level_id": "pkg-bigdata-level-c208cec9d183455588265813fcdf56bd", "level_id": "pkg-bigdata-level-c208cec9d183455588265813fcdf56bd",
"skill_trees": [ "skill_trees": [
"gml", "gml",
"algorithm", "python",
"java" "mysql",
"redis",
"java",
"hadoop"
], ],
"recommend_skill_trees": [] "recommend_skill_trees": [
"gml",
"python",
"java"
]
}, },
{ {
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [], "skill_trees": [
"recommend_skill_trees": [], "scala",
"spark",
"kafka",
"cassandra"
],
"recommend_skill_trees": [
"pg"
],
"level_id": "pkg-bigdata-level-8e2a8fb109424596a667bcc613db93c1" "level_id": "pkg-bigdata-level-8e2a8fb109424596a667bcc613db93c1"
} }
] ]
......
...@@ -10,16 +10,29 @@ ...@@ -10,16 +10,29 @@
"level_id": "pkg-cpp-level-6205ebd891544d8cadab543433b3b951", "level_id": "pkg-cpp-level-6205ebd891544d8cadab543433b3b951",
"skill_trees": [ "skill_trees": [
"gml", "gml",
"c",
"algorithm", "algorithm",
"network",
"cpp"
],
"recommend_skill_trees": [
"gml",
"c", "c",
"algorithm",
"network" "network"
], ]
"recommend_skill_trees": []
}, },
{ {
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [], "skill_trees": [
"rust",
"go",
"devops",
"mysql",
"pg",
"redis"
],
"recommend_skill_trees": [], "recommend_skill_trees": [],
"level_id": "pkg-cpp-level-0aef5db1bcca497789fbc1ab8863bd7d" "level_id": "pkg-cpp-level-0aef5db1bcca497789fbc1ab8863bd7d"
} }
......
...@@ -10,12 +10,18 @@ ...@@ -10,12 +10,18 @@
"level_id": "pkg-crawler-level-2d99f3f4e3e3416092f46f8b901efae1", "level_id": "pkg-crawler-level-2d99f3f4e3e3416092f46f8b901efae1",
"skill_trees": [ "skill_trees": [
"gml", "gml",
"python",
"algorithm", "algorithm",
"python",
"mysql", "mysql",
"network" "network",
"web"
], ],
"recommend_skill_trees": [] "recommend_skill_trees": [
"gml",
"algorithm",
"python",
"network"
]
}, },
{ {
"level": "02", "level": "02",
...@@ -23,10 +29,13 @@ ...@@ -23,10 +29,13 @@
"skill_trees": [ "skill_trees": [
"python02", "python02",
"algorithm02", "algorithm02",
"web", "mysql"
],
"recommend_skill_trees": [
"python02",
"algorithm02",
"pg" "pg"
], ],
"recommend_skill_trees": [],
"level_id": "pkg-crawler-level-6035cb39f6d14637810beaeb8fecb168" "level_id": "pkg-crawler-level-6035cb39f6d14637810beaeb8fecb168"
} }
] ]
......
...@@ -11,21 +11,28 @@ ...@@ -11,21 +11,28 @@
"skill_trees": [ "skill_trees": [
"gml", "gml",
"python", "python",
"mysql" "network",
"mysql",
"devops"
], ],
"recommend_skill_trees": [ "recommend_skill_trees": [
"devops", "gml",
"cloud_native", "network"
"pg"
] ]
}, },
{ {
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [ "skill_trees": [
"network02" "pg",
"cloud_native",
"k8s"
],
"recommend_skill_trees": [
"cloud_native",
"pg",
"k8s"
], ],
"recommend_skill_trees": [],
"level_id": "pkg-devops-level-5c902f5daeb44c96811e791e3bf1a90a" "level_id": "pkg-devops-level-5c902f5daeb44c96811e791e3bf1a90a"
} }
] ]
......
...@@ -11,15 +11,28 @@ ...@@ -11,15 +11,28 @@
"skill_trees": [ "skill_trees": [
"gml", "gml",
"algorithm", "algorithm",
"network" "network",
"go"
], ],
"recommend_skill_trees": [] "recommend_skill_trees": [
"gml",
"algorithm",
"network"
]
}, },
{ {
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [], "skill_trees": [
"recommend_skill_trees": [], "c",
"goplus",
"rust",
"cloud_native"
],
"recommend_skill_trees": [
"c",
"cloud_native"
],
"level_id": "pkg-go-level-d2faef92de2042e79f0cb16d3016c10c" "level_id": "pkg-go-level-d2faef92de2042e79f0cb16d3016c10c"
} }
] ]
......
...@@ -8,14 +8,25 @@ ...@@ -8,14 +8,25 @@
"level": "01", "level": "01",
"level_name": "入门", "level_name": "入门",
"level_id": "pkg-ios-level-dd40b98b3ede4f738ac67b72b985b8b5", "level_id": "pkg-ios-level-dd40b98b3ede4f738ac67b72b985b8b5",
"skill_trees": [], "skill_trees": [
"recommend_skill_trees": [] "web",
"swift"
],
"recommend_skill_trees": [
"java"
]
}, },
{ {
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [], "skill_trees": [
"recommend_skill_trees": [], "vue",
"weixin",
"flutter"
],
"recommend_skill_trees": [
"web"
],
"level_id": "pkg-ios-level-17042027e678450f95732320c7ed023d" "level_id": "pkg-ios-level-17042027e678450f95732320c7ed023d"
} }
] ]
......
...@@ -18,8 +18,7 @@ ...@@ -18,8 +18,7 @@
"recommend_skill_trees": [ "recommend_skill_trees": [
"gml", "gml",
"algorithm", "algorithm",
"java", "java"
"springboot"
] ]
}, },
{ {
...@@ -27,17 +26,13 @@ ...@@ -27,17 +26,13 @@
"level_name": "进阶", "level_name": "进阶",
"level_id": "pkg-javabf-level-91f3e6a6f5624acfb422f3951177cb6e", "level_id": "pkg-javabf-level-91f3e6a6f5624acfb422f3951177cb6e",
"skill_trees": [ "skill_trees": [
"gml", "springcloud",
"algorithm", "pg"
"java",
"springboot",
"mysql"
], ],
"recommend_skill_trees": [ "recommend_skill_trees": [
"gml", "gml",
"algorithm", "algorithm",
"java", "java"
"springboot"
] ]
} }
] ]
......
...@@ -11,15 +11,30 @@ ...@@ -11,15 +11,30 @@
"skill_trees": [ "skill_trees": [
"gml", "gml",
"algorithm", "algorithm",
"c" "c",
"python",
"opencv"
], ],
"recommend_skill_trees": [] "recommend_skill_trees": [
"gml",
"algorithm",
"c",
"python",
"opencv"
]
}, },
{ {
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [], "skill_trees": [
"recommend_skill_trees": [], "python02",
"nlp",
"neo4j"
],
"recommend_skill_trees": [
"python02",
"neo4j"
],
"level_id": "pkg-machinevision-level-bbcc2444f218474aa445df6ca08c5cfb" "level_id": "pkg-machinevision-level-bbcc2444f218474aa445df6ca08c5cfb"
} }
] ]
......
...@@ -10,15 +10,29 @@ ...@@ -10,15 +10,29 @@
"level_id": "pkg-nlp-level-5317f0fbf4414d87b6d028e421d16396", "level_id": "pkg-nlp-level-5317f0fbf4414d87b6d028e421d16396",
"skill_trees": [ "skill_trees": [
"gml", "gml",
"algorithm" "algorithm",
"python",
"python02"
], ],
"recommend_skill_trees": [] "recommend_skill_trees": []
}, },
{ {
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [], "skill_trees": [
"recommend_skill_trees": [], "nlp",
"opencv",
"neo4j",
"spark",
"mysql",
"redis",
"pg"
],
"recommend_skill_trees": [
"opencv",
"neo4j",
"pg"
],
"level_id": "pkg-nlp-level-4f5c84c95f26440393a69a4181d03a65" "level_id": "pkg-nlp-level-4f5c84c95f26440393a69a4181d03a65"
} }
] ]
......
...@@ -8,14 +8,31 @@ ...@@ -8,14 +8,31 @@
"level": "01", "level": "01",
"level_name": "入门", "level_name": "入门",
"level_id": "pkg-php-level-c8c35ceafdc447198f15f628a745699f", "level_id": "pkg-php-level-c8c35ceafdc447198f15f628a745699f",
"skill_trees": [], "skill_trees": [
"recommend_skill_trees": [] "gml",
"web",
"php",
"mysql"
],
"recommend_skill_trees": [
"gml",
"pg"
]
}, },
{ {
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [], "skill_trees": [
"recommend_skill_trees": [], "go",
"java",
"springboot",
"pg",
"mongodb"
],
"recommend_skill_trees": [
"java",
"pg"
],
"level_id": "pkg-php-level-3a99b53332c9429b8f32669e74ab9f35" "level_id": "pkg-php-level-3a99b53332c9429b8f32669e74ab9f35"
} }
] ]
......
...@@ -11,15 +11,19 @@ ...@@ -11,15 +11,19 @@
"skill_trees": [ "skill_trees": [
"product" "product"
], ],
"recommend_skill_trees": [] "recommend_skill_trees": [
"se"
]
}, },
{ {
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [ "skill_trees": [
"se" "operation"
],
"recommend_skill_trees": [
"se02"
], ],
"recommend_skill_trees": [],
"level_id": "pkg-product-level-995424592df44bc99c88233f341bde94" "level_id": "pkg-product-level-995424592df44bc99c88233f341bde94"
} }
] ]
......
...@@ -12,17 +12,30 @@ ...@@ -12,17 +12,30 @@
"gml", "gml",
"algorithm", "algorithm",
"java", "java",
"search" "search",
"python",
"mysql"
], ],
"recommend_skill_trees": [] "recommend_skill_trees": [
"gml",
"algorithm",
"java",
"python"
]
}, },
{ {
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [ "skill_trees": [
"elastic" "python02",
"nlp",
"pg",
"redis"
],
"recommend_skill_trees": [
"python02",
"pg"
], ],
"recommend_skill_trees": [],
"level_id": "pkg-search-level-e3ddce54bc304fc290a76a437fd4791c" "level_id": "pkg-search-level-e3ddce54bc304fc290a76a437fd4791c"
} }
] ]
......
...@@ -10,20 +10,24 @@ ...@@ -10,20 +10,24 @@
"level_id": "pkg-test-level-8207808da42c4869b7235e0df8e88a72", "level_id": "pkg-test-level-8207808da42c4869b7235e0df8e88a72",
"skill_trees": [ "skill_trees": [
"gml", "gml",
"web",
"python", "python",
"gml" "test"
], ],
"recommend_skill_trees": [] "recommend_skill_trees": [
"gml",
"python"
]
}, },
{ {
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [ "skill_trees": [
"java" "web",
"mysql",
"devops"
], ],
"recommend_skill_trees": [ "recommend_skill_trees": [
"network02" "pg"
], ],
"level_id": "pkg-test-level-85e8c4269c4f4e23b6012ebc8d31e05f" "level_id": "pkg-test-level-85e8c4269c4f4e23b6012ebc8d31e05f"
} }
......
...@@ -19,8 +19,9 @@ ...@@ -19,8 +19,9 @@
"level": "02", "level": "02",
"level_name": "进阶", "level_name": "进阶",
"skill_trees": [ "skill_trees": [
"weixin",
"react", "react",
"weixin" "flutter"
], ],
"recommend_skill_trees": [], "recommend_skill_trees": [],
"level_id": "pkg-web-level-7d906e7132dd43438cd70216f697999e" "level_id": "pkg-web-level-7d906e7132dd43438cd70216f697999e"
......
...@@ -2,4 +2,5 @@ from src.main.package import Package ...@@ -2,4 +2,5 @@ from src.main.package import Package
if __name__ == '__main__': if __name__ == '__main__':
p = Package('data/package/') p = Package('data/package/')
p.walk() # p.walk()
p.list()
...@@ -28,3 +28,40 @@ class Package: ...@@ -28,3 +28,40 @@ class Package:
if level.get('level_id') is None or level.get('level_id') == '': if level.get('level_id') is None or level.get('level_id') == '':
level['level_id'] = f'pkg-{pacakge}-level-'+uuid.uuid4().hex level['level_id'] = f'pkg-{pacakge}-level-'+uuid.uuid4().hex
dump_json(file_full_name, pkg, exist_ok=True, override=True) dump_json(file_full_name, pkg, exist_ok=True, override=True)
def list(self):
pkg_list = []
tree_list = []
for base, dirs, files in os.walk(self.root):
for file_name in files:
file_full_name = os.path.join(base, file_name)
_, ext = os.path.splitext(file_name)
if ext == '.json':
print(file_full_name)
pkg = load_json(file_full_name)
if pkg.get('type') == 'job':
self.list_package(file_full_name, pkg,
pkg_list, tree_list)
out = {
'jobs': pkg_list,
'trees': sorted(list(set(tree_list)))
}
dump_json('data/index.json', out, exist_ok=True, override=True)
def list_package(self, file_full_name, pkg, pkg_list, tree_list):
package = pkg['package']
package_name = pkg['package_name']
levels = pkg['levels']
for level in levels:
level_en = level['level']
level_name = level['level_name']
skill_trees = level['skill_trees']
package_level = f'{package}_{level_en}'
pkg_list.append({
'name': package_name,
'level_name': level_name,
'router': package_level
})
for skill_tree in skill_trees:
tree_list.append(skill_tree)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册