0. 前言
0.1 维度与层次
Python语言技术雷达图从能力角度分为以下两个维度:
针对这三个维度中众多的技术点,有偏重地推荐为两个层次:
- 关键知识技能:表格中标蓝加粗字体为关键的知识技能与技术点;
- 扩展知识技能:未标蓝加粗的内容为推荐的扩展内容,在掌握了关键知识技能的基础上,根据业务的不同可以有选择性地挑选学习。
0.2 雷达图的应用建议
专家团针对每个知识技能给出了掌握程度的评分标准:
- 知道(1分):能说清楚是什么,解决什么问题,了解技术对应的社区的使用情况和学习路径。
- 会用(2分):实现过对应技术的"QuickStart",知道技术的适用场景,能照猫画虎实现需求。
- 熟练(3分):能够在业务场景中用最佳实践解决问题,形成自己的方法论和套路。
- 精通(4分):熟悉技术背后原理,研究过源码,能够解决疑难问题(故障、性能优化以及扩展)。
- 贯通(5分):对该技术的不足比较深入的洞见,能够提出创新性的解决方案,拓展该技术。
使用雷达图的个人或团队可以在初期对自身能力做一次评估,并选择合适的技术方向学习。之后在合适的时间点再次评估,审视是否有进步。
辅助评分的参考工具:excel工具
+
知识技能雷达excel工具示意图:
1. 通用领域
此章节的内容多为通用技术、知识,可应用于各个业务领域的软件开发活动中。
1.1 设计
1.2 重构
知识技能 | 技术点 | 学习参考 |
---|---|---|
# 重构 | ||
- 重构&坏味道 | 《refactoring》 | |
《重构与模式》 | ||
- 设计模式 | 《深入浅出设计模式》 《大话设计模式》 《设计模式》 Python设计模式代码参考 | |
- Pythonic Code | writing-pythonic-code 《编程风格:好代码的逻辑》 |
1.3 语言
知识技能 | 技术点 | 学习参考 |
---|---|---|
# Python语言 | ||
- Python语言官方文档 | Python官方文档(分版本) | |
- 基础推荐 | Python3 入门指南 《Python Cookbook》 | |
- 进阶推荐 | 《Effective Python:编写高质量 Python 的 59 个有效方法》 《流畅的Python》 《Python源码剖析》 | |
- 通用及安全编码规范 | 《华为Python语言通用编程规范》 《华为Python语言安全编程规范》 | |
# 算法与数据结构 | ||
- 基本数据结构: 数组、链表、栈、队列、二叉树、图 | 慕课网课程 | |
- 基本算法: 查找、排序、分治递归、动态规划、贪婪、一致性哈希 | 慕课网课程 | |
- 数据结构与算法的Python实现 | 《数据结构与算法:python语言实现》 | |
# 系统支撑 | ||
- 打包发布: pyinstaller setuptools | pyinstaller setuptools | |
- 网络: TCP UDP IP ARP | 《TCP/IP详解卷》 《计算机网络》 | |
- 计算机组成: 内存 cache cpu | 《编码:隐匿在计算机软硬件背后的语言》 《深入理解计算机系统》 | |
- 跨语言: CFFI (C Foreign Function Interface) ctypes Cython | CFFI官方文档 ctypes官方文档 Cython官方文档 |
1.4 工具
知识技能 | 技术点 | 学习参考 |
---|---|---|
# 虚环境管理 | ||
virtualenv venv pyenv | virtualenv官方文档 Python3官方文档venv pyenv | |
开发环境 | ||
Jupyter | Jupyter官方网站 | |
# IDE | ||
Pycharm | Pycharm官方网站 | |
VSCode | VSCode官方网站 VSCode Python Start VSCode Python Language | |
# 包管理 | ||
pip pipenv | pip官方文档 pypi官方网站 pipenv | |
poetry | poetry官方网站 | |
# debugging & profiling | ||
调试 | 官方标准库 MIT Debugging and Profiling Course DebuggingWithGdb | |
运行性能 | 《性能之巅》 cProfile py-spy line-profiler | |
内存优化 | memory_profiler pympler | |
# 测试工具 | ||
unittest pytest | unittest工具官方文档 单元测试定义 TDD定义 python-3-patterns-idioms-test 《单元测试的艺术(第二版)》 | |
mock tools | unittest.mock responses freezegun | |
Fake Data Generator | Mimesis Faker | |
coverage | coverage官方主页 | |
# Clean Code工具 | ||
pylint | pylint官方网站 | |
flake8 flake8-extensions | flake8官方主页 flake8扩展工具列表(按需挑选) | |
radon | radon | |
其它Linter | pep8-naming dlint | |
yapf | yapf | |
black(推荐的Formatter) | black | |
# 版本管理(VCS) | ||
Git Gitlab Github | Git官网 Git实践练习 | |
mercurial | mercurial | |
Linux工具链 | ||
perf 工具 | ||
基础命令 SSH SNMP SFTP 等 |
2. 业务领域
此章节的内容多为某个业务领域的特定技术、知识,同时也是业界经典范例,强烈推荐学习参考。