程序员能力矩阵翻译

计算机科学


2n (0级)n2 (1级)n(2级)log(n)(3级)
数据结构不知道数组和链表的区别能够解释和使用数组、链表、字典等在实际的编程任务知道时间和空间权衡的基本数据结构,数组和链表,能够解释如何实现哈希和能够处理冲突,优先级队列和方法实施等。先进的数据结构的知识,比如b -树、二项和斐波那契堆AVL /红黑树,倾斜的树木,跳跃表、尝试等。
算法无法找到数组中数字的平均值(很难相信但是我采访的候选人)基本的排序、搜索和遍历数据结构和检索算法树,图,简单的贪婪和分而治之算法,能够理解这个矩阵的水平的相关性。能够识别和代码动态规划解决方案,熟悉图算法,数值计算算法的知识,能够识别NP问题等。
系统编程不知道编译器、链接器或翻译基本的了解编译器、连接器和解释器。 知道什么是汇编代码和如何在硬件级别的工作。 虚拟内存和分页的一些知识。了解内核模式和用户模式,多线程,同步原语以及他们是如何实现,能够阅读汇编代码。 了解网络如何工作,理解网络协议和套接字编程水平。理解整个程序堆栈、硬件(CPU +内存缓存+ +中断+微码),二进制代码,组装、静态和动态链接,编译、解释,JIT编译,垃圾收集、堆、栈内存寻址…
软件工程


2n (0级)n2 (1级)n(2级)log(n)(3级)
源代码版本控制按日期文件夹备份VSS和CVS / SVN用户开始精通使用CVS和SVN特性。 知道如何分支和归并,使用程序库补丁安装特性等。分布式VCS系统的知识。 有/ hg / Darcs / Git吗
构建自动化只知道如何构建IDE知道如何从命令行构建系统能够安装一个脚本构建基本的系统能够安装一个脚本来构建系统并且文档,安装程序,生成发布说明和标签中的代码源控制
自动化测试认为所有的测试是测试人员的工作写自动化单元测试并提出了良好的单元测试用例编写的代码吗写了代码以TDD方式理解并能够设置自动化功能,负载/性能和用户界面测试

编程


2n (0级)n2 (1级)n(2级)log(n)(3级)
问题分解只有直线和复制粘贴代码重用问题分解成多个函数能够想出可复用的函数/对象,解决整个问题使用适当的数据结构和算法,提出了通用的/面向对象的代码来封装方面的问题,有可能发生变化。
系统的分解不能认为以上级别的一个的那一的文件/类能够解决问题空间和设计方案,只要它是在相同的平台/技术能够设计跨越多个技术/平台的系统能够想象和设计复杂 的系统早多个产品线和与外部系统集成。也应该能够设计支持系统监测、报告、故障恢复等。
沟通不能表达想法/主意同行。 糟糕的拼写和语法。同伴能了解你。 有良好的拼写和语法能力。能有效地与同事沟通能够理解和交流想法/设计/创意/规格以明确的方式和调整沟通按照上下文
代码组织在一个文件中没有证据表明组织在一个文件中按照逻辑性或者易接近的方法代码分为区域和易于解释,引用其他源文件文件许可标题,摘要,良好的注释,空间使用。 文件应该看起来很漂亮

2n (0级)n2 (1级)n(2级)log(n)(3级)
跨文件代码组织没有考虑到组织代码文件相关文件被分组到一个文件夹中每个物理文件都有一个惟一的目的,比如一个类的定义,一个特性的实现等。在物理层代码组织匹配设计和看文件名和文件夹分布提供了洞察设计
源码树组织一切都放在一个文件夹基本代码划分成不同的逻辑文件夹。没有循环依赖,二进制文件,库,文档,构建,第三方的代码都组织到相应的文件夹源码树的物理布局与逻辑层次、组织方式相匹配。 目录名称和组织提供见解的设计系统。
代码的可读性单音节的名字好名字的文件、变量、类、方法等。没有长函数、注释解释不常规的代码,bug修复,代码假设代码假设验证使用断言,自然的代码流,没有深层嵌套的条件和方法
防御性编码不理解这个概念在代码中检查所有参数和断言关键假设确保检查返回值和检查异常的代码可以失败有自己的库来帮助防守编码,写单元测试,模拟故障

2n (0级)n2 (1级)n(2级)log(n)(3级)
错误处理
只有代码快乐的情况下基本的错误处理代码,可以抛出异常/生成错误确保错误/异常离开程序处于良好状态,资源,连接和记忆都清理干净代码检测之前可能是个例外,保持一致的异常处理策略在所有层代码中,提出的指导方针为整个系统的异常处理。
IDE主要为文本编辑使用IDE了解其周围的接口,能够高效地通过菜单来使用IDE了解最常操作的键盘快捷键。写自定义宏
API经常需要查找文档最常用的api在内存吗巨大的API和深入的知识写库的API来简化常用任务和API,以填补空白
框架未使用核心平台外的任何框架听过但不使用流行的框架可用的平台在专业的职位中使用过一个以上的框架,通晓每个框架的特色框架的作者

2n (0级)n2 (1级)n(2级)log(n)(3级)
需求将给定的需求和代码规范想出问题错过了规范病例了解全貌,提出整个地区,需要规范能够提出更好的选择和刘翔需求基于经验
脚本没有脚本工具知识批处理文件/shell脚本Perl / Python / Ruby /改变/ Powershell编写和出版的可重用的代码吗
数据库认为excel是一个数据库知道基本的数据库概念,规范化、ACID,事务,可以编写简单的选择能够设计良好的和标准化的数据库模式记住要运行的查询,精通使用视图、存储过程、触发器和用户定义的类型。 知道聚集和非聚集索引的区别。 精通使用ORM工具。能做基本的数据库管理,性能优化,索引优化,编写高级select查询,能够使用相关sql替换光标,了解数据存储在内部,了解内部索引存储,了解如何镜像数据库,复制等理解两阶段提交是如何工作的。

 经验 


2n (0级)n2 (1级)n(2级)log(n)(3级)
语言与专业经验命令式语言和面向对象命令式语言,面向对象语言和说明型语言(SQL),额外的好处如果了解静态类型vs动态类型,弱类型vs强类型和静态隐式类型功能,额外的好处,如果他们理解延迟评价,鞭笞,延续并发语言(Erlang,Oz)逻辑语言(Prolog)
平台与专业经验12-34-56+
多年的专业经验12-56-910+
领域知识没有知识的领域工作至少一个产品领域在同一领域中为多个产品工作过领域专家。 已经在领域设计和实现数种产品/方案。 熟悉与标准条款、协议中使用的域。

 知识  


2n (0级)n2 (1级)n(2级)log(n)(3级)
工具知识限于主要IDE(VS.Net,Eclipse等等)。知道一些流行和标准工具的备选方案。知识编辑器、调试器、ide、开源的备选方案有如有人从Scott Hanselman谁知道的大多数工具电动工具的列表。 使用ORM工具。实际上写的工具和脚本,额外的好处,如果他们已经出版。
语言接触命令式语言和面向对象命令式语言,面向对象语言和说明型语言(SQL),额外的好处如果了解静态类型vs动态类型,弱类型vs强类型和静态隐式类型功能,额外的好处,如果他们理解延迟评价,鞭笞,延续并发语言(Erlang,Oz)逻辑语言(Prolog)
代码库知识从来没有看代码代码布局的基本知识以及如何构建系统良好的代码库工作知识,实现了一些bug修复,也许一些小功能实现了代码库中多个大型特性,能够轻松地将多数特性的可视化所需的更改或bug修复
即将到来的技术知识没有听说过即将到来的技术知识听说过即将到来的技术在这个领域下载了alpha preview / CTP / beta和阅读一些文章/手册吗玩了预览和已经创造出来的东西和共享给其他人作为奖励呢

2n (0级)n2 (1级)n(2级)log(n)(3级)
平台内部0平台内部的知识内部的基本知识平台是如何工作的平台内部的深入了解,可以设想平台如何将程序并将其转换为可执行的代码。写了工具来增强或内部提供信息平台。 如反汇编器、反编译器、调试器等。
释放系列,21天系列,24小时系列、假人系列…代码完成,不要让我思考,掌握正则表达式设计模式、人件编程珍珠,算法设计手册,务实程序员,神秘的男人计算机程序,概念的结构和解释技术,计算机编程模型,计算机编程艺术,数据库系统,通过c J日期、思考,小阴谋家
博客有听说过但没有时间。读软件工程技术/程序/博客和经常听播客。维护一个博客链接和一些有用的文章和工具的集合,他/她已经收集了维护一个博客,个人见解和想法编程是共享的

  


转载于:https://my.oschina.net/shizilaixi/blog/537036

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值