【来源】CSDN

国外开发者博客中有一篇有趣的文章,将程序员按水平像软件版本号那样划分为不同的版本。相对于在招聘时分为初级,中级,高级程序员,直接表明需要某种语言N版本的程序员或许更方便直接。根据作者的观点,可将WEB开发者大致分为以下几个版本:

Alpha:阅读过一些专业书籍,大多数能用Dreamweaver或者FrontPage帮朋友制作一些Web页面。但在他们熟练掌握HTML代码以前,你大概不会雇佣他们成为职业的WEB制作人员。

Beta:已经比较擅长整合站点页面了,在HTML技巧方面也有一定造诣,但还是用Tables来制作页面,不了解CSS,在面对动态页面或数据库连接时还是底气不足。

Pre Version 1 (0.1):比Beta版的开发者水平要高。熟悉HTML,开始了解CSS是如何运作的,懂一点JavaScript,但还是基于业余水准,逐步开始关心动态站点搭建和数据库连接的知识。这个版本的WEB开发人员还远不能成为雇主眼中的香饽饽。

1.0: 能够基本把控整个站点开发,针对每个问题尽可能的找到最直接的解决办法。但对可测性,可扩展性以及在不同(层)框架下如何选择最合适的WEB设计工具尚无概念。这个版本的WEB开发者有良好的技术基础,需要有进一步的帮助和指导。

2.0:懂面向对象的编程语言,理解分层开发的必要性,关注代码分离,对问题寻找更完美的解决方法,偶然也会考虑设计 模式的问题,但对此仍然概念不清。属于优秀的初级开发者,能完成较松散的代码开发(相对大型严谨的站点开发而言),在面对较复杂问题寻找解决办法时需要周 边人的帮助。

3.0:开始较为深入的理解面向对象编程和设计模式,了解他们的用途,当看到好的设计模式时能看透其本质,逐步关注分 层的架构解决办法和可测试性。理解不同的开发语言并能说出他们的异同(例如各自的优势)。属于优秀的中级别开发者,雇主也确信他们最终能找到问题的解决办 法,这个版本的人可以给1.0和2.0的开发者以指导。但他们对架构的理解仍然不够清晰,值得一提的是,只要给予一些指导,他们能很快理解并熟记做出的决 定,以及选定方案的优势所在。

4.0:
理解模式,重视用户的反馈。着手研究方法论,架构设计和软件开发的最佳入口。头脑中已经形成了超 越开发语言,技术架构的整体方案,可根据需求解构程序。能从理论的角度,不同模式如何融合成最佳形态,将多种X-驱动的模式应用到不同的方案中。是精通多 语言的高手,理解不同系统和方法论的细微差别,属于高级程序员。这个级别的人能够轻易的辅导2.0和3.0的程序员,将他们推向更高的级别。

5.0:从系统的角度考虑问题。对各种系统结构有深入研究,能对整个代码架构中的问题进行改进。在团队粘合性以及代码 安全性方面有杰出贡献。对1.0到4.0版本的开发人员出现的问题能及时察觉,让整个团队保持积极性且保持兴奋的状态创建软件解决办法。举例来说,他们总 是对新的技术和信息保持饥渴状态,试图用最简便的方案解决开发任务。在整个IT团队中获得信任,属于高级程序员和架构师。

那么,您属于哪个版本的程序员呢?
posted @ 2008-06-28 23:18 巴别塔工人 阅读(103) | 评论 (1)编辑

【作者】Leonid Mamchenkov
【来源】 CSDN

PHP 应用的复杂程度越来越高,而 PHP 却因为不够漂亮而吸引和保留不了优秀的程序员。结果呢?越来越多的应用是那些不够水平的开发者写的。于是,PHP 也越来越难找到合格的开发者。

在过去的六个月甚至更长的时间里,我至少在为三家公司寻找 PHP 开发者。我和一些程序员聊过,收到了一些反馈,甚至还面试了几个人,但是我却从来没有推荐过任何人。

在我解释之前,先别抨击我的要求太高。我并不是在寻找火箭科研人员,也不是找同样高端的开发者,我甚至都不打算找一个高级的 PHP 开发者。只要有足够的水平来维护 CakePHP 和 WordPress 这两个项目的人就够了,更何况,它们还是开源的。

我理解并不是每个人都使用过 CakePHP 和 WordPress 来做开发。我也明白熟悉这些代码和通读相关文档都需要一些时间。更知道不是每个人都熟悉开源软件开发模型,不是每个人都在团队里工作过,所以,熟悉版本控 制软件,文档编辑工具和 bug 跟踪等等都不在要求范围之内。

但是我不明白的是,为什么那些自称使用 PHP 和 MySQL ,至少开发过两个 web 项目的人,却不能用纸笔写出最简单的代码?为什么有数年 PHP 开发和团队领导经验的“高级 web 工程师”,面对没有 Dreamweaver 的开发环境时却一无是处?那些至少拥有一个计算机科学学士学位的开发者,却还在崇尚冒泡排序法?为什么程序员不再回答技术问题,反而开始向潜在的雇主讲述 面试经历?为什么拥有数年团队合作经验的技术人员,在面试时哪怕是被问到最简单的技术问题,都会茫然不知所措?

如果你想知道上面这些问题的答案,这里正好有个例子。比如说,有个简单的问题:“stack (也称为 FILO ) 和 queue (也称为 pipe 或者 FIFO) 两者之间有什么不同?”答案就已经明显地隐藏在问题之中了,不是么?

这些自称有好几年开发工作和项目经验的应聘者,在面试时通常会遇到一些简单的程序问题。比如下面这个问题: “使用 PHP 创建一个存储人物信息的列表,人物信息包括姓名、年龄和性别,向其中添加三个样本。然后按列表中的男性名字的字母序排出一个列表,如果不使用数据库会有额 外加分。”每个应聘者只有一张纸,一支笔,和无限制的答题时间。但是在这六个月里,我还从没看过有人能手写代码解决这些问题。

我们通过所有的招聘网站、报纸、各地社区和职业介绍所来寻找应聘者,结果却是无一成功。现在我们只需要三个人,但是在不久的将来空缺将更多。

这就像塞浦路斯 (地中海东部一岛国,人口约82万) 上的人力资源状况一样,需求大于供给,但是仍然无济于事。所以我也希望你们了解我的感受。

想讨论塞浦路斯这个在科技领域里又小又不注目的国家,你们还是得等一等吧。去年我去了希腊博主露营会,今年 我又去了阿姆斯特丹的下一代网络大会。在这两个大会上,我和来自欧洲和美国的朋友们都聊过。我也访问过各地的社区和招聘网站。我的感受是,这不仅仅是和塞 浦路斯所面临的问题一样。当然,因为其地理原因和科技水平地位,塞浦路斯的情况确实是比其他地区要严重一些。

现在,我仍然在花费大量的时间来寻找 PHP 开发者,但是同时我也在思考这个问题的根源。PHP 看起来是种很流行的语言,但是为会在寻找一个好的 PHP 开发者时会遇到这样的问题呢?我得出这样一种理论,也许称其为一系列的假设和推测比较好。

PHP 是丑陋的语言

我本人认识一些优秀的开发者,我也读过更多优秀开发者的博客文章。尽管他们常常使用 PHP ,有些还把 PHP 作为日常开发基础语言,但是我却从来不记得他们其中有任何人说过喜欢 PHP 语言。如果在新项目时有开发语言的选择的可能,他们会选择 Java,C,Python,Perl,Ruby on Rails,Haskell等等,但就是不会选择 PHP 。PHP 有它的优势,但是却不是一种漂亮和方便的开发语言。

PHP 是面向新手的语言

PHP 之所以如此流行,原因之一就是它是面向新手的语言,人们可以不需要任何编程基础就开始编写 PHP 应用程序。 大多数应用提供商会提供 PHP 开发程序给你,而这些程序每个月的激活费不过是少之又少。你可以在任何文本编辑器里写 PHP 程序,所以你也不需要高性能的机器或是昂贵的 IDE 。HPH.net 开发网站上有所有你所需要的开发文档和实例,所以你也不必在学校苦学,更不必和开发者网站签订使用协议。对编程新手来说,所有这些都是让 PHP 吸引力十足的原因。

PHP 回避了某些问题

大多数我认识的优秀程序都有一定的 PHP 水平,而那些差劲的程序也学习过一些 PHP。但是对于优秀程序员来说,PHP 既不是他们的所在领域的第一位语言,也不是他们的发展方向。而我所知道的大部分差劲程序员,却只了解 PHP 这一种语言,而且他们并不精通 PHP。所以,对于优秀程序员来说,学习和使用 PHP 不过是一时需求;而对于那些差劲者来说,使用 PHP 却是永久的习惯。

因为次要原因流行的 PHP

有很原因促成了 PHP 的流行:免费,开源,易于上手,等等。大多数应用提供商都提供可用的 PHP 开发包,而很多程序里就已经预置了 PHP 。而 PHP 本身最大的特点,比如执行速率,资源要求,开发速度等等,却和其他很多语言没有多大差别。PHP 不过是因为一些次要原因而流行起来罢了。

PHP 已经过时

PHP 起源于 Perl 中过时的 web 开发库,它已经发展和扩展成熟甚至过时,那些用 PHP 编写的项目也是如此。如果说以前大部分 PHP 项目做的是的最简单的事情,比如连接注册表单,访问者计算和一些模板,那么,现在这些 PHP 项目的处理能力已经在用户管理,金融操作,高实用性和平衡配置等需求上到达了瓶颈。

冲突

现在来说说 PHP 所面临的两难境地。PHP 应用的复杂程度越来越高,而 PHP 却因为不够漂亮而吸引和保留不了优秀的程序员。结果呢?越来越多的应用是那些不够水平的开发者写的。于是,PHP 也越来越难找到合格的开发者。(你自己的 PHP 项目也变得越来越复杂。)

问题?

我们怎样才能吸引优秀的开发者来做 PHP 开发?最大的原因就是不能找到合格的开发者,这个问题也困扰其他一些开发语言。其他的开发语言能解决这个问题吗?这个问题真的有解决之道吗?

出路

和别人一样,我也没有解决方法。但是,我却看好服务应用提供商,比如 Amazon 和 Google 。他们可能会在几个月甚至几年后才过时,但是到时又会有更多的服务商加入进来 (Yahoo,微软,或 IBM ?) 。

我认为提供应用服务的方式应该是这样的。首先,他们应该把程序员类为两类。第一类是新手程序员,他们既不知 道也没有多少资源可以调配,他们要通过服务商的提供来使用服务,数据库,函数库和编程界面。(当然,优秀程序员也可以使用这些,但是他们另有选择,而不像 新手一样。) 提供的应用服务应该会方便地解决他们所不了解的东西,并且可以随时随时帮助他们。特别是像 PHP ,已经这样做了数年了。而优秀程序员大多数都会参与到核心项目和专项开发中,他们则会需要更多的知识和经验。

posted @ 2008-06-22 14:46 巴别塔工人 阅读(96) | 评论 (0)编辑
腾讯科技讯(http://tech.qq.com/a/20080523/000270.htm)
5月23日上午,中国移动通信集团公司发言人通报:中国铁通集团有限公司并入中国移动通信集团公司,成为其全资子企业,目前仍将保持相对独立运营。

此外,中国移动通信集团公司领导班子也进行相应调整。王建宙继续担任中国移动通信集团公司总经理,并担任党组副书记;张春江任中国移动通信集团公司党组书记、副总经理;中国移动通信集团公司原有副总经理继续留任;同时新增赵吉斌、张晓铁、李正茂为中国移动通信集团公司副总经理,党组成员。

据悉,上述调整不涉及中国移动有限公司(0941. HK)。

我国电信业重组拉开帷幕。截止到23日上午11:30,中国联通、中国电信、中国网通等运营商尚未公布重组消息。
posted @ 2008-05-23 12:55 巴别塔工人 阅读(26) | 评论 (0)编辑