程序员水平分级 你属于哪一类?

标签: Uncategorized | 发表时间:2012-02-15 13:19 | 作者:flychen
出处:http://flychen.com

导读:近日, 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?

相关文章

from 博客 – 伯乐在线 http://blog.jobbole.com/13232/?utm_source=rss&utm_medium=rss&utm_campaign=%25e7%25a8%258b%25e5%25ba%258f%25e5%2591%2598%25e6%25b0%25b4%25e5%25b9%25b3%25e5%2588%2586%25e7%25ba%25a7-%25e4%25bd%25a0%25e5%25b1%259e%25e4%25ba%258e%25e5%2593%25aa%25e4%25b8%2580%25e7%25b1%25bb%25ef%25bc%259f

您可能也喜欢:

在Emacs中使用gdb调试程序

程序模拟腾讯微博登录

iOS应用简单剖析

字符串匹配那些事(一)
无觅

相关 [程序员 分级] 推荐:

程序员水平分级 你属于哪一类?

- - 搜索引擎技术博客
导读:近日, whattofix.com 刊登了一篇  Daniel Markham 的文章《 What Level Programmer Are You?》,文内将参差不齐的 程序员按照技术水平分为从“只读”到“上帝”,共十一个阶段,以帮助广大程序员找到自身定位并从中发现自己发展方向. 随着技术发展,编程悄然融入了我们的生活.

普通程序员、文艺程序员、2B程序员

- 可可 - 宇宙的心弦
希望能引起广大苦逼的正在学或者已经学过c++人的共鸣和会心一笑吧. 如何辨别自己在现实还是虚拟世界.

如何面试程序员?

- bluesnail - 阮一峰的网络日志
你要面试一个程序员,应该问他什么问题. 有人在Hacker News的讨论区里,请求指点,怎么才能在面试中发现合格的人. 众人纷纷出主意,有很多高质量的回帖,我觉得挺有启发,就整理出了下面这篇文章. 首先,最重要的是,你自己一开始就应该想清楚:. 哪些途径和方法可以发现这样的人. 只有明确这些根本性的问题,才能正确高效地完成面试.

程序员的本质

- Allen - 译言-电脑/网络/数码科技
来源What do programmers really do?.   很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员. 另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题. 甚至不少程序员对他们是做什么的都没有清晰的概念.   在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:.

程序员人生之路

- myartings - 博客园-首页原创精华区
   程序员人生之路(强烈推荐,分析的透彻. ),某程序达人的人生感悟,估计没有半个甲子的时间,是绝对不可能感悟出来的.    相对同时刚出校门同学从事其它行业而言优厚的薪水,以及不断学习更新的专业知识不仅仅让你感到生活的充实,更满足了你那不让外人知的虚荣心. 在刚出校门的几年中,你经常回头看看被你落在后面的同学们,在内心怜悯他们的同时,你也会对自已天天加班的努力工作感到心里平衡:“有付出才会有回报”这句话在那几年中你说的最多,不管是对自已的朋友们还是自已的爱人.

程序员装B指南

- Qing-Run - 博客园-首页原创精华区
1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好. 一个用来查资料,一个用来写代码. 总之要显得信息量很大,效率很高. 2.椅子不一定要舒服,但是一定要可以半躺着. 3.大量的便签,各种的颜色的,用来记录每天要完成的事务,多多益善. 沿着电脑屏幕的边框,尽量贴满,显出有很多事情的样子.

程序员收入报告

- diaoxsh - cnBeta.COM
最近,波兰的程序员Chris(也叫KreCi)公布了他的第十四期程序员收入报告. 数据显示,上月是目前为止他收入最多的一个月. Chris的收入并不是指他的工资或薪水,Chris是一个自由职业者. 他的收入也不是来自个人承包软件工程的收入,他更像是一个果农,种了优良的果树,只要不断的给这些果树施肥浇水,这些果树会给他带来源源不断的财富.

程序员的利器-SourceInsight

- Alex - 博客园-首页原创精华区
作为程序员,大部分时间是在已有的代码上代码工作. 要对已有的代码进行调整,首先就要搞清楚当前代码中蕴含的逻辑关系. 所以常常有程序员调侃说花了大半天时间看代码,最后写代码的时间只有几分钟. 所以,对已有代码的分析质量将影响(甚至会决定)最终代码修改的质量. SourceInsight在代码分析上给予程序员极大的帮助.

程序员?还是小丑?

- Vingel - cnBeta.COM
和你从不认识的人坐在一起,试图弄清楚他是个程序员还是个小丑. 我没有想侮辱任何人的意思,而且,我是第一个要感谢这么多年的教育和努力终于把我变成一个专业小丑的人. 对于程序员新手,我充满怜悯,为了和缓的帮他热热身,我给了他一道温和的问题来消解我们之间的陌生. 我让Ada写一段程序,在纸上,打印出“hello“这个词10次.