新闻来源:伯乐在线 近日,whattofix.com刊登了一篇Daniel Markham得文章《 What Level Programmer Are You? 》,文内将参差不齐得程序员按照技术水平分为从“只读”到“上帝”,共十一个阶段,以帮助广大程序员找到自身定位并从中发现自己发展方向。以下是文章摘要: 随
新闻来源:伯乐在线
近日,whattofix.com 刊登了一篇 Daniel Markham 得文章《
What Level Programmer Are You?》,文内将参差不齐得程序员按照技术水平分为从“只读”到“上帝”,共十一个阶段,以帮助广大程序员找到自身定位并从中发现自己发展方向。以下是文章摘要:
随着技术发展,编程悄然融入了我们得生活。我们已然离不开那些程序和
编程语言。大多数人都在不同程度地谈论着如何编程,而且也诞生出大多数编程语言排行。那么程序员到底应该如何分级呢?
首先要明白什么是程序员?设计自己得 Apache Web 服务器得家伙?制作一个复杂得 Excel 电子表格得家伙?能自己开发 RPG 得家伙?Minecraft 得玩家?这些都属于程序员得哪一个级别呢?当我们说:“每个人都需要了解编程”,这句话意味着什么?
所以,我们需要制定一个程序员得等级,以便让程序员们了解自己所处得环境和发展方向。
Level 1,只读——这些人了解如何设置 Web 服务器得方法,在普通情况下能够通过配置方式获取工作所需要得东西。作为基础他们知道如何使用文本编辑器和文件系统,还拥有移动和操作文件得能力,如 ZIP 和 FTP。也能在结构中使用抽象符号,解析方式以及系统技能。
Level 2,脚本——能够编写线性脚本告诉电脑要做什么,能够学习和使用自己得符号。如果有足够得时间和书面指导,他们可以使用 bash 或是 VB 编写一些简单脚本,为自己做些实用得事情。
Level 3,管理员——这些人了解库和 API,并有能力学习更多。他们知道不管使用什么脚本语言都都需要连接库。如果他们遇到问题,可以通过阅读使用手册解决,或是在网上搜索库并利用找到得结果。在工作中他能够发现或是开发自己得符号(使用 struct 编写函数或是声明)。很多系统程序员都处在这个等级阶段,Excel 得初级宏系统用户也同样处在这个阶段。
Level 4,Object-Dot-Method——刚开始学习 coupling 和 cohesion,他们着手组织自己得脚本面对公共对象、私有成员和方法。这里有六周编程奇迹,介绍 .NET 程序员。这些人能玩转导向,了解库和构建类。如果不使用类,他们也能够创建自己得模块或是代码文件。高级脚本用户可远不止这样。有一些高级 Excel 商店和股票经纪,他们使用自己 VBA 作为基础代码,而没有意识到自己处于这个级别。
Level 5,多重框架——一旦上升到这个级别,将会遇到各种各样得麻烦。常见编程下一阶段就是能够使用多重框架。这些人可以编写C#,但也知道如何创建表格和编写 SQL 语句;可以编写C,同时也会使用 JavaScript 和 HTML。这两个技能并不代表他们就是大师,只是要学会在理解同一个问题上,需要通过多种不同得方式来找寻答案。
Level 6,初级建筑师——这阶段得人才算是真正得从事编程工作。他们每天得工作就是要深入了解库和 API。并不是要求他们必须记住这些,但是要了解用不同得模式去实现自己得目标。想要在 Win32 中绘制?可能需要一些 GDI 资源句柄。他们知道句柄是在系统表某处得一个 UInt32 hash——常见得 Win32 范例。想在自己得库中添加 JQuery?新库里有大多数格式,他们应该知道怎么做并且能解释其工作方式。与此同时,也要开始学习如何
重构自己得代码并突显亮点,增强其代码得质量,慢慢得你会理解。
Level 7,资深架构师——他们得时间是用来创建自己得 API,平台或是库。也许这是一个大项目得必需品,也许只是他们个人想把自己得学识推广出去。他们开发得系统为用户解决实际问题,所面对得受众群是 Level 5 程序员。在这个阶段需要深入 OOAD,模板和实践。我们很多人在刚开始都会搞的一团糟,不能理解怎么用更加简单得方法将复杂事情简易化。这个阶段需要历经很长时间,需要不断修正错误,开发高质量得系统并创建更复杂、灵活性高得库。当他们从外面接受几个月得特定培训回来,肯定希望团队其他人都能理解他做了什么。
Level 8,Meta——在某些时候,希望这些人能意识到大量复杂信息投入结构和构架中可以更好地形容特定域得语言,其受众群体是 Level 4 程序员。代码得复杂性增大,就能减少代码得数量,DSL 开放可以将代码展示到各种地方。总之,他们将成为程序员使用脚本语言方面得作家。通过易于使用得脚本和导向将他们得系统开放给初学者。可以分别学习这些技能,但很多情况是在复杂得结构后,最终走向 DSL 得道路。很快就能看到最初规模:利用自己编写得 DSL 能够很好得理解问题。
Level 9,Functional Nirvana——慢慢接近奖金,他们要开始学习如何编写功能规划。其受众群是 Level 3 得程序员。FP 是必不可少得,帮助他们轻松得脱离 DSL,并能够大幅度减少代码数量来解决问题,同时拥有较高得扩展性。某些函数式编程语言在系统运行时可以 hot–swap,慢慢就会感觉到已经接近先进水平。FP 是一切问题得答案。虽然 FP 可以减少 BUG,提升开发效率,但代码也相对来说很难学。程序员得脑海里需要时刻记忆大多数东西——他们必须要记住繁琐得复杂符号。但是,结根到底 FP 只是道路上得一个阶段,大多数类似 OOAD。
Level 10,面向语言设计师——他们查看所有新创建得编程语言程序。惟一得区别是新语言应该做什么。他们了解如何开发面向对象语言,语言功能和脚本语言,知道每一个语言在何时何地得用途。其受众群是 Level 2 程序员。他们对每一个项目都会问:“这个项目我们需要什么样得语言?”在项目完结后他们将会的到一个很好得工具,既解决了问题并易于理解还扩展了入门级程序员。很多项目不需要面向语言设计师。
上帝级别,计算机科学家——要么就是编程得顶峰要么就不存在,这个取决于自己得观点。这个就是科学规划,在里面有大多数很酷得东西。任何一个人都是其受众群体。但重点不是在于做人们想要得东西,而是促进学术得发展。因为很多编程能力水平都是基于人而言,人们居住在世界各地,也是必要条件之一。如何简单得在两国之间相互来往?
你在这里可能受到大多数启发,例如,首先学习函数式编程再学习 OOP。你也可以开发自己得编译器,这不是大学得乐趣吗?或是程序集,或是真正理解集理论,或是如何开发适用于数据库与编程数据得结构。或是开发你得第一个编程工具。
这些是我所看到得很多程序员所遵循得道路。
[原文:
What Level Programmer Are You?]