软件技术雷达 c

0. 前言

0.1 维度与层次

C语言技术雷达图从能力角度分为以下三个维度:

针对这三个维度中众多的技术点,有偏重地推荐为两个层次:

  • 关键知识技能:表格中标蓝加粗字体为关键的知识技能与技术点;
  • 扩展知识技能:未标蓝加粗的内容为推荐的扩展内容,在掌握了关键知识技能的基础上,根据业务的不同可以有选择性地挑选学习。

0.2 雷达图的应用建议

专家团针对每个知识技能给出了掌握程度的评分标准:

  • 知道(1分):能说清楚是什么,解决什么问题,了解技术对应的社区的使用情况和学习路径。
  • 会用(2分):实现过对应技术的"QuickStart",知道技术的适用场景,能照猫画虎实现需求。
  • 熟练(3分):能够在业务场景中用最佳实践解决问题,形成自己的方法论和套路。
  • 精通(4分):熟悉技术背后原理,研究过源码,能够解决疑难问题(故障、性能优化以及扩展)。
  • 贯通(5分):对该技术的不足比较深入的洞见,能够提出创新性的解决方案,拓展该技术。

使用雷达图的个人或团队可以在初期对自身能力做一次评估,并选择合适的技术方向学习。之后在合适的时间点再次评估,审视是否有进步。

辅助评分的参考工具:excel工具

知识技能雷达excel工具示意图:

 

1. 通用领域

此章节的内容多为通用技术、知识,可应用于各个业务领域的软件开发活动中。

1.1 设计

知识技能技术点学习参考
# 架构设计  
 - 领域驱动设计《领域驱动设计:软件核心复杂性应对之道》
  《实现领域驱动设计》
  martinfowler domain_driven_design
 - 面向对象设计《C现代编程》
  《面向对象是怎么工作的》
  Introduction to Object-Oriented Programming
  DCI架构
The DCI Architecture
小类,大对象
小类,大对象:C++
  运用四色建模法进行领域分析
 - 演进式架构《浮现式设计》
  《Building Evolutionary Architectures》
evolutionaryarchitecture.com
Evolutionary_Architecture_Keynote_by_Neal_Ford
martinfowler evo_arch_forward
  is design dead - Martin Fowler
  《软件演进式设计与领域建模》(公司优秀MOOC课程)
 - 4+1视图运用RUP 4+1视图方法进行软件架构设计
# 安全设计  
 - 威胁建模华为网络安全技术社区:威胁分析

1.2 重构

知识技能技术点学习参考
# 重构  
 - 重构&坏味道《refactoring》
  《嵌入式软件重构方法与实践0.2》
  《重构与模式》
 - 设计模式《计算机程序的构造和解释》
  《嵌入式C语言设计模式》
design-patterns-in-c

1.3 编码

知识技能技术点学习参考
# C 语言  
 - 语言特性:
数组
指针
结构体
函数
《The C programming Language》
《C现代编程》
 - posix api:
文件&目录&I/O
进程&线程
内存
信号
时间
网络
《UNIX环境高级编程》
《UNIX编程艺术》
《Linux系统编程》
 - 通用及安全编码规范《华为C语言编程规范》
 - 内存安全《C陷阱与缺陷》
# 算法与数据结构  
 - 基本数据结构:
数组、链表、栈、队列、二叉树、图
慕课网课程
 - 基本算法:
查找、排序、分治递归、动态规划、贪婪、一致性哈希
慕课网课程
# 系统支撑  
 - 编译:
编译
链接
加载
执行
《程序员的自我修养--链接、装载与库》
 - 网络:
TCP
UDP
IP
ARP
《TCP/IP详解卷》
 - 计算机组成:
内存
cache
cpu
《深入理解计算机系统》
 - 内嵌汇编How to Use Inline Assembly Language in C Code
 - 网络工具《wireshark网络分析就这么简单》
《wireshark网络分析的艺术》
tcpdump

1.4 测试与调试

知识技能技术点学习参考
# 开发者测试  
 - 测试分层:
Unit testing
Integration testing
System testing
Operational acceptance testing
《单元测试之道》
《测试驱动的嵌入式C语言开发》
 - 开发者测试框架:
gtest
DTCenter
gtest
# 调试  
 - 单步调试:
debuger
breakpoints
threading
condition breakpoint
watch
gdb

2. 业务领域

此章节的内容多为某个业务领域的特定技术、知识,同时也是业界经典范例,强烈推荐学习参考。

知识技能技术点学习参考
# 硬件管理  
 - 设备驱动开发《Linux设备驱动开发详解》
# 调度  
 - 网络调度Nginx
《深入理解Nginx模块开发与架构解析》
  libuv
  libevent
 - 存储redis
# 高性能计算/中间件  
 - 高性能RPCgRPC
 - 消息队列zeromq

3. IT基础

此章节的内容多为软件开发活动中一些推荐掌握的技能、知识,熟练掌握和运用这些技能对软件开发的效率、质量都有较好的帮助。

知识技能技术点学习参考
# Linux工具链  
 - 脚本语言:shell,python《UNIX Power Tools》
 - perf 工具 
 - 基础命令、SSH、SNMP、SFTP等 
 - readelf、objdump、nm 
# 版本管理(VCS)  
 - Git、Gitlab、GithubGit官网
Git实践练习
 - svn 
# IDE/TOOLS  
 NextCodeVSCode Refactoring
 Eclipse-CDTEclipse Refactor Actions
 CLionCLion Refactor Help
# CI/构建  
 CMake《CMake CookBook》中文
 Makefile《跟我一起写makefile》
代码静态检查  
 Pclint 
 coverity 
 fortify 
 valgrind 
 ASAN

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值