华为的编程基础能力要求大纲

  • 编程能力(通用算法及数据结构)
    • 基础数据结构概念,基本操作,及其优缺点
      • 字符串操作(标准库,解析,匹配等)
      • 线性表(数组,动态数组)
      • 队列
      • 链表
      • 哈希表
    • 高级数据结构概念,基本操作,及其优缺点
      • 二叉查找树,平衡树
      • 堆,二叉堆
      • 图论(无向图,有向图基本知识)
    • 常用算法及思想
      • 排序算法
        • 快速排序
        • 插入排序
        • 堆排序
      • 迭代,递归思想
      • 分治思想
        • [[ 二分查找 ]]
        • [[ 归并排序 ]]
      • 搜索算法
        • [[ 深度优先遍历 ]]
        • [[ 广度优先遍历 ]]
      • 贪心算法
      • [[ 动态规划 ]]
        • 背包0-1难度
  • 安全规范理解与应用
  • 通用规范理解与应用(以Go为例)
    • go语言编程知识文档汇总
    • 基本语言特性
      • 程序结构
        • 命名,声明,短生声明,变量,赋值,类型转换和自动推导,作用域
      • 表达式与运算符
        • 算数运算符,比较运算符,逻辑运算符,地址操作符,接收操作符
      • 控制语句
        • if-else,switch与fallthrough,for,break,continue,goto,select
      • 数据类型
        • 基础数据类型和复合数据类型的初始化、长度、容量、扩缩容,结构体的嵌入和匿名成员
      • 函数与方法
        • 函数的声明,匿名函数,闭包,多返回值,变长参数,defer,指针/值对象的方法,内置函数的正确使用
      • 接口
        • 接口的作用,定义,组合,实现,类型断言
      • 错误处理
        • error,panic,recover的使用
      • 标准库
        • 输入输出,strings,net,os,sync,time
    • 代码设计
      • 平行与并发
        • goroutine正确使用,channel上数据的发送和读取,select多路复用
      • 包和文件
        • 包和文件的设计、组织,包的导入,包路径规范
        • gomod
    • 基础工程能力
      • 常用工具
        • build,test,lint,fmt,vet,pprof的使用
    • 高级语言特性
      • runtime
        • 内存管理,垃圾收集,逃逸分析,协程调度,profile,race detector
      • 底层编码
        • 类型的底层数据结构,unsafe包的使用,cgo
      • 反射
        • 基本原理,通过反射修改值,反射结构体
      • 工具
        • race detector,trace,pprof,debug
  • 可信设计与重构
  • 安全可信基础
  • 开源及第三方组件使用能力
  • 现代软件工程
    • 现代软件工程资料汇总
    • 软件工程与软件过程
    • 敏捷宣言、敏捷关键实践、Scrum方法
    • 需求和需求工程
    • 软件设计
    • 软件测试(开发者测试、产品测试、用户测试)
    • 软件维护
    • 项目管理过程及方法(项目四算、项目计划、变更管理、风险管理、质量管理)
    • Devops
  • 编译构建知识与应用
  • 调试与定位能力
  • 配置管理基础能力
  • 开发者测试

反向链接: