转帖自:
http://www.tommstudio.com/ViewNews.aspx?ID=187
http://hi.baidu.com/rarnu/blog/

本文翻译自《美国优秀经理观念大全修订本》

我想现在没有什么比做一个软件工程师更能赚钱的了,当然了,明星除外。在美国,一个优秀的软件工程师,就算在一个平凡的岗位上,也能得到年薪50万(美元)以上的待遇。这绝对不是开玩笑,在北美曾有统计表明,一年内发放给软件工程师的工资以及各种福利,占去了全美净收入的2.4%,这是一个很大的数字。

我是一个Java软件工程师,但是在这里我不想说Java,而是想说说Delphi,这个曾一度被遗弃的孩子。

首先,我痛恨Borland的决策层,他们几乎把一个拥有鲜活生命力的产品断送了。几年前我就预言,BDE不会活得太久,我的预言成真了。虽然那是当时为了维护Java才说的,但也不是毫无跟据。我喜欢Java,喜欢使用反射机制来方便的调用一个未知的成员,但是Delphi不可以如此做,就算是后来有了RTTI机制,我一样不喜欢,它的限制太大了,一点都不自由。

但是反过来说,我又很喜欢Delphi,很多情况下,我无法用Java实现一些功能,但是我的同事可以用Delphi补上一些代码,使程序功能得到增强,这是让我很欢喜的一件事。不论是我的上级或下级,都有很多人说Java与Delphi的相容性很好,可以方便的合作开发。但是这一点并不能让我不痛恨 Borland,因为他们明明可以将更多的精力花在加强语言上,但是他们却做了很多无用的事。而且也没有收到好的成效。

在1998年的时候,Delphi是一个宠儿,人人都喜欢它并且使用它。Delphi以其独特的魅力(最大的特点是快速的可视化开发)吸引了大批原本使用VC的软件工程师。但是好景不长,自从Delphi开始收费后(而且还非常昂贵)它的占有率立刻下降了30%。这也许是一个企业要生存所必须的,我没有指望Delphi会永远免费。但是过高的价格是很多人放弃它的主要原因之一。这个情况在2004年到达了顶峰,数以百计的企业给员工下了禁令,禁止使用Delphi。

到了现在,也就是2007年,Borland已退出历史舞台,取而代之的CodeGear,又将Delphi发展到一个新的高度。或许有人说RAD Studio2007是匆忙之作,但是这至少让我们看到了一点,那就是Delphi还在进步,也让很多软件工程师找回了对Delphi的信心。至少在北美,已经不再是Java和VC的天下了。

话说到此,我想说一下Delphi软件工程师如何才能赚钱。在我退休以前,我曾经几次想改变自己的发展方向,虽然到现在为止,我都承认Java比Delphi优秀,特别是在移动应用方面,但是我还是想让自己成为一个Delphi程序员。就算是为了它那极为高速的开发,极为容易的赚钱方式,我想我选择它是没有错的。我看到过很多人,程序写得还算不错,但是他们赚不到钱,原因只有一个,就是他们没有被公司录取。

在被录取的员工里,我只说我看到的,Delphi程序员的报酬是最高的,我不怕说出实话,我身为经理,但是我的报酬甚至不如我的下属。原因仅仅是我只会 Java,不会Delphi。这些话也许听起来是违心的,其实我一直觉得Java优越于Delphi不知几倍。但是作为一个评测者,我深知公正的重要性。

Delphi软件工程师在公司里是相当重要的,但是人数是最少的。一个优秀的Delphi软件工程师一天的工作可以抵得上一个5人Java小团队一星期的工作。是不是觉得不可思议?这是事实。而且Delphi还是百搭,我们常常用它来弥补其他语言的不足(虽然它自己也有很多不足)。因此,我们对Delphi人才的招收是非常严格的。

就我看来,一个合格的Delphi软件工程师,他必然是有着非常丰富的其他语言的开发经验,有着非常强烈的研究欲望,也有着一个较大的研究圈子,这样能方便技术上的交流。很多时候,与公司内部的人进行交流是一个误区。相处越久的两个人,越是了解彼此,越是清楚对方的水平,也就越不愿意多与对方交流。反而倒是MSN上的很多网友,通常能给出一个灵感。

作为项目经理,我希望有更多有才华的人进入我的部门,参与到项目的开发中来。公司曾经尝试过招入一批Delphi软件工程师,但是收益不佳,召来的员工经常会辞职或是被公司辞退,能真正长久做开发的非常之少。总结而言,原因有三个。

其一就是使用Delphi的人不多(必须主攻Delphi,因为它与别的语言相差较大),有些软件工程师原本并非主攻Delphi,而是凭借自己对其他语言的熟悉,快速上手Delphi。但是Delphi是世界上最容易上手,也是最难精通的语言。仅凭借熟悉是完全不够的,然而他们不愿意对Delphi做出深入的研究。唯独不知,Delphi的世界与其他语言的距离还是比较远的,不可能一步就跨过来。

其二是有些Delphi软件工程师太过自傲(必须服从管理),不可否认的,由于使用Delphi的软件工程师不多,能写出优秀软件的更是少之又少。他们的自傲是完全有资格的。但是身在一个企业,就必须服从企业的管理,一个自由性太强的人,是无法做好他们应做的事的。也许个人能力非常强,甚至有能力独立完成一个大型软件,但是这并不代表他们在团队里会有出色的表现。

其三就是学习中的软件工程师(必须自己提前精通,而不是进入公司学习)每个人都会有一个从入门到精通的过程,这个过程必须在脱离企业的情况下完成。Delphi是一个完全被设计用来完全快速开发的工具,它不是用来学习的。通常情况下,一个Delphi软件的开发周期不会超过半年。如果软件工程师处处需要资料和他人的提点。一个必然的结果就是开发效率低下,情况严重时可能影响整个团队的进度。除非是科研性质的企业,控件厂商等,需要大量的研究,学习。一般企业使用Delphi以完成任务为主,使用大量的控件去快速的完成任务。以最高的效率获得直接的经济利益。

排除这三条,剩下的软件工程师是我喜欢的,他们一定能在工作岗位上顺利,出色的工作,并得到很高的待遇。我要求软件工程师有相当的能力,能够独立完成一个项目(第二要求)。但是我更需要优秀的团队合作精神与开发经验(第一要求)。很多时候,经验决定一切。你甚至可以完全说不出编写一段代码的理由,但是你必须知道如何写。这听起来的确有点荒谬,但是在工作中,这样的事时常发生。

在有些公司,领导会要求Delphi软件工程师掌握一些其他的编程语言,比较理想的是同时掌握Delphi,C++,汇编和Java(理想情况)。C#作为一门新流行起来的语言,也应该适当的了解。前文已提到,Delphi自身也有一些或大或小的问题,有的时候会需要其他语言来弥补,仅仅是懂得Delphi完全不够。就像我仅仅懂得Java,那也是不够的,同样的道理。

译注:
1. BDE不会活得太久,原文:BDE will not be in the world much longer. 直译觉得读起来不流畅。
2. 快速的可视化开发,原文:rapid and visual development,我曾一度想译为RAD,但是觉得不妥。
3. 极为容易的赚钱方式,在美国,软件的价格按代码量计算,平均5行有效代码一美元。
4. 小团队,原文中无“小”字,我觉得5人团队是非常小的,因此加上“小”字
5. 百搭,原文:Patch-all
6.Delphi是世界上最容易上手,也是最难精通的语言,原文:Delphi is the easiest to learn in the world, also is the language which most difficult to be mastered in. 这是我常常说的一句话,出处即源于此。
7.不可能一步就跨过来,原文:can not be reached by a foot.
8.从入门到精通,原文:from basic to be skilled in

博主的话:

这个世界的发展是多变的,三十年河东,三十年河西,任何事物都不可能永远占据霸主地位,希望广大Delphier,不要轻言放弃,就像作者所言,一专多能,继续研究Delphi,在熟悉几门其它语言,是非常有用的。

http://www.cnblogs.com/wxy8/archive/2011/01/29/1947350.html#2151602

Delphi程序员如何找到高薪的工作?(赚不到钱,原因只有一个,就是他们没有被公司录取。Delphi必须要独自进行深入研究,才能精通,同时也不能自由性太强)的更多相关文章

  1. 一名Delphi程序员的开发习惯

    一名Delphi程序员的开发习惯 有关开发习惯的一些想法,如鲠在喉,不吐不快.究其发贴动机,当然不排除有骗取参与分的可能,但另一方面,也希望能给同行(念Xing)者提供一些 建议,或者参考(希望不是误 ...

  2. 【转】优秀的Java程序员必须了解GC的工作原理

    一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应 ...

  3. 优秀Java程序员必须了解的GC工作原理

    一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应 ...

  4. 月薪3万的程序员告诉你:这样工作才能拿高薪(转 IT之家)

    习惯即刻回报 他不懂得只有春天播种,秋天才会有收获.刚刚付出一点点,甚至还没有付出,就想要得到回报.技术刚刚掌握,能一边百度一边干活了就觉得该拿到多少多少钱了.找工作先想着多少多少钱,入职了没干几个月 ...

  5. PHP程序员可以这样准备找工作

    你好,是我琉忆.PHP程序员面试笔试图书系列作者. 今天就跟大家聊聊作为一个PHP程序员,每年的跳槽季都应该怎么准备一番. 其实普遍的跳槽季总的就有2个. 分别是新年后的3-4月,还有9-10月份. ...

  6. java程序员在交接别人的工作时如何保证顺利交接?

    序言 各位好啊,我是会编程的蜗牛,作为java开发者,尤其是在职场混迹了多年的老手,肯定会遇到同事离职的情况,或者自己跳槽的情况,这些都免不了需要做好交接工作,不管是别人交接给我们,还是我们交接给别人 ...

  7. 优秀Java程序员必须了解的GC工作原理(转)

    一个优秀的Java程序员必须了解GC(Garbage Collection 垃圾收集)的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系 ...

  8. 【程序人生】程序员真会玩,工作996,生病ICU

    昨天Github上一个项目彻底爆红了网络,短短一天star数突破一万,Issues已破1800,大家纷纷说出有关企业的不合理加班行为,句句吐露程序员的心声,掀起了一波抵制加班潮,抵制996. 该项目里 ...

  9. 程序员,不要让自己做兔子(updated) 网上最近流传的一个笑话,关于兔子,狼还有一只老虎的,故事 我就是想打你了,还需要什么理由吗?谁让你是兔子 项目经理是这样当的

    程序员,不要让自己做兔子(updated) 前段时间和一个朋友聊天,酒席间向我抱怨他那段时间的郁闷:项目经理从客户那里拿来一个需求,实际上就是一个ppt描述,我这个朋友拿过来看后刚开始不觉得什么,一个 ...

随机推荐

  1. TOMCAT8009端口与AJP13协议

    Tomcat最主要的功能是提供Servlet/JSP容器,尽管它也可以作为独立的Java Web服务器,它在对静态资源(如HTML文件或图像文件)的处理速度,以及提供的Web服务器管理功能方面都不如其 ...

  2. BZOJ 3038 上帝造题的七分钟2 树状数组+并查集

    题目大意:一个序列,有两种操作.1.将一段数中的每个数开根号.2.查询一段数的和. 思路:和3211是一个题,有兴趣的能够看看我的那篇博客. CODE: #include <cmath> ...

  3. PHP URL参数获取方式的四种例子

    在已知URL参数的情况下,我们可以根据自身情况采用$_GET来获取相应的参数信息($_GET['name']);那,在未知情况下如何获取到URL上的参数信息呢? 第一种.利用$_SERVER内置数组变 ...

  4. 【z12】&&【b092】hankson的趣味问题

    描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现 在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲解了 ...

  5. YASM User Manual

    This document is the user manual for the Yasm assembler. It is intended as both an introduction and ...

  6. [Angular] Learn Angular Multi-Slot Content Projection

    Now for au-modal component, we pass in tow component though contenct projection: <au-modal class= ...

  7. thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件)

    thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件) 一.总结 1.通过模型事件(钩子函数),可以在插入更新删除等前后执行一些特定的功能 2.模型事件是写在模型里面的,控制器中 ...

  8. ios开发runtime学习二:runtime交换方法

    #import "ViewController.h" /* Runtime(交换方法):主要想修改系统的方法实现 需求: 比如说有一个项目,已经开发了2年,忽然项目负责人添加一个功 ...

  9. mycat server.xml 配置文件详解

    <?xml version="1.0" encoding="UTF-8"?> <!-- - - Licensed under the Apac ...

  10. php汉字 字节数组转换

    <?php function stringToByteArray($str,$charset) { $str = iconv($charset,'UTF-16',$str); preg_matc ...