今天看了一篇blog,对计算机的每个学科给出了能力层次。针对这个矩阵,我自测了自身的能力层次,并给出学习方案:
计算机科学 Computer Science
我的层次和学习目标:
数据结构:Level 2——学习高级数据结构知识,比如B树,二项堆,AVL树,前缀树等
算法: Level 2——学习动态规划,图算法数值估算知识,NP问题等
编程体系:Level 2 - Level 3——进一步学习静态和动态链接、编码、解释。
软件工程 Software Engineering
软件工程:完全不懂。
程序设计 Programming
问题分解:正在向Level 3努力——面向对象
系统分解:Level 0
交流: Level 3
同一文件中代码组织:没有考虑组织问题,只考虑过代码的规整。
文件组织、代码组织、防御性编码基本不懂
错误处理、IDE、API、框架 也是基本不懂
需求分析: Level 0
脚本: Level 0
数据库: Level 2
经验 Experience
专业经验基本Level 0
学识 Knowledge
工具使用、语言知识、代码库知识、下一代技术知识基本level 0
平台内部: Level 0
书籍: Level 1
博客: Level 2
总结:
数据结构:Level 2——学习高级数据结构知识,比如B树,二项堆,AVL树,前缀树等
算法: Level 2——学习动态规划,图算法数值估算知识,NP问题等
编程体系:Level 2 - Level 3——进一步学习静态和动态链接、编码、解释。
软件工程:完全不懂。
问题分解:正在向Level 3努力——面向对象
系统分解:Level 0
交流: Level 3
同一文件中代码组织:没有考虑组织问题,只考虑过代码的规整。
文件组织、代码组织、防御性编码基本不懂
错误处理、IDE、API、框架 也是基本不懂
需求分析: Level 0
脚本: Level 0
数据库: Level 2
专业经验基本Level 0
工具使用、语言知识、代码库知识、下一代技术知识基本level 0
平台内部: Level 0
书籍: Level 1
博客: Level 2
从这些总结来看,我基本处于程序员的低级阶段,没有软件工程思想,不懂任何工具。
我需要做的努力,首先是对比较难入手的学科开始,
1. 学习算法导论中,高级数据结构和算法知识。
2. 进一步学习C++。
3. 学习脚本语言。
4. 学习UNIX环境,直到内核。