`
hzbook
  • 浏览: 259168 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

程序员的成长经历往往是相似的,大部分的人走过了最前面的相同一段路,而有的人则走的更远。回首自己这些年来走过的历程,也许能让年轻的程序员少走一些弯路,成长的更快;或许更好一些,能让大家从中得到一些启发,早日进入优秀的程序员阶段,回归梦想,释放激情。

第一阶段 ,最初是在学校里学习计算机基础知识,学习经典的程序设计语言,编写测试用的小程序。这段时间可以说是对计算机和程序设计的入门阶段。这个阶段主要是培养了自己对计算机软件的兴趣,打下了良好的计算机知识的基础。

第二阶段 ,而后参加工作,从事计算机软件开发工作,按照工作要求,边学边编,终于可以让自己的程序投入运行了。这个阶段突然感觉到了自己的价值,感觉到软件的神奇,软件成了实用产品。这个阶段实现了学习到生产的过渡。

第三阶段 ,随着工作的增加,开始编写各种程序,开发各种系统,这个时候忙于编程知识的积累和应用。应该说这个阶段自我感到很充实,有做不完的事,还属于程序设计的语言级阶段。

第四阶段 ,随着编程技巧有了一定积累后,我(开始)想这样的问题:我是不是最好的程序员?我能否编写出最好的程序?这个阶段是一个反思的阶段。我对自己的要求是:不但要会编程序,而且要编好程序,从数量开始转向了质量。

第五阶段 ,开始在提高自己的软件水平上做文章。经过各种系统开发,尤其是大系统的开发,发现了软件中有许多功能是重复的。因此,有一段时间把精力花在编制各种库函 数上,通过不同系统调用相同的函数,来减少重复开发,实现功能共享。当时比较得意的是库函数不是我一个人在调用,而是整个项目小组都在调用,甚至不同的系 统也能调用,从而体会到编写库函数特别有价值。这个阶段的标志是库函数,程序员水平上升到库函数那一级。

第六阶段 ,到了库函数那个层次后,很快就发现,单单实现程序函数级的调用是远远不够的。当你做了很多项目,包括大项目和小项目,尤其是跨行业的项目之后,你就会把 库函数的共享思想,用于项目开发。你就会想一个问题:为什么一个项目能有相同的构架?如果有相同的构架,那么开发就有了相对的标准,我们就有可能通过配置 的方法实现相同构架的系统。于是我提出了IASG(交互式软件自动生成器)思想,并在C语言和其他一些语言实现IASG实例。记得最快的一次编写一个系统 (公安自行车信息管理系统,主要用于丢失自行车信息登记)只用了3个小时(从需求到安装盘)。这个思想对我影响很大。这个阶段是上了一个很大的台阶,从程 序上升到软件。核心思想就从库函数共享上升到软件共享。具体过程是建立一个系统的构架,构架中有许多共同的功能,例如,参数设置,用户权限管理,库表管理 等等。另外,还提供信息建立查询开发模板,通过配置和特殊功能的编制就很快形成了一个系统。现在想起来IASG离我已经有20年了。

第七阶段 ,到了IASG阶段后,我发现无论技术如何提高,都无法改变开发落后于需求的现实。通俗地说就是:程序员水平再高,仅仅是拉车水平高,但是,应该在什么路 上拉车程序员并不知道。如果这条路是一条光明的路,则程序员越拉越有劲,有奔头;如果这条路是条死路,则程序员拉功尽费;如果这条路是条漫长的路,不知明 不知暗,则程序员可能要拉死为止。现实中程序员水平低、收入低、被称之“IT农民工”;系统需求不明确,系统开发周期一拖再拖;系统重复开发多,信息甚至 不能在一个企业中实现共享,更不用说在企业之间,行业之间实现共享了;各种企业级的软件ERP、CRM、BI层出不穷,也没有哪个能满足中国的市场;各种 新技术新概念也在不断出现,也没有哪种技术概念能真正发挥其内在价值,还是处于被学习被运用的下场。

这个阶段是程序员脱离了技术本身,开始思索开始求源的阶段。这个阶段是程序员的思想上有了飞跃。以前光拉车不看路,现在要抬头看路了。

第八阶段 ,有了抬头看路的想法,于是我踏上寻路之途。我首先看一下我们脚下的路是什么路,为什么这条路是那么不平坦、不宽广?从软件生命周期来看,软件主要由用户 需求发起的,用户需求是软件生存的根本理由。由于企业的不同、用户的不同导致不同的需求,这种大量的无序的需求,这种需求驱动方式必然造成了我前面说的各 种现象。这个阶段是寻找根源阶段,找到了根源,我们就可以有机会去解决问题。这个过程相对比较困难,这不仅需要编程技术还需要很多方面的知识,要了解这个 根源就迫使你去学习和积累更多程序以外的知识。

第九阶段 ,当我找到软件是需求驱动方式之后,我就开始去考虑什么是用户需求?用户为什么要提出这些需求?我们可以更深入地分析用户需求产生的根源,我们能否让无序 需求变成有序需求呢?当然这些问题我们都进行了深入分析,其过程也很难在这里进行展开说明。我只是说,最后结论是用户的需求来源于企业的经营。很多人思考 问题还是就需求而需求,并没有站在企业经营角度上去考虑问题。千万不要小看这个变化,这个变化最终会导致一个理论的产生。于是我们尽可能地站在企业经营角 度上看待企业经营方式、企业管理、企业信息化等。但是,我们最终要解决企业经营这个概念问题,如果我们都不能明确企业经营这个概念,或者我们不能科学地定 义企业经营这个概念,那我们的一切基于企业经营的各种具体现象就会如同无本之源无序的泛滥。就像ERP、CRM等所谓企业信息化产品,都没有一个企业经营 定义的支撑,只能就企业经营的某个方面提出解决方案。这些产品不缺乏需求的支持,缺乏的是最最基本的企业经营定义的支持。而这个概念就是EOM。

EOM是从定义企业经营角度入手,把我们今后要开展的各种研究和开发活动都放在一个理论可支持的基础之上。有了企业经营定义之后,我们才有可能来分 析我们需要什么软件,我们的软件采用什么技术才能实现企业经营的目标。而程序员则通过EOM了解到企业经营需要什么样的软件,这个软件有多大的价值,这个 软件采用什么技术才能实现,自己要提高什么方面的技术水平才能获得更大的价值。

这个阶段就是EOM阶段,通过EOM了解软件的根源和有价值的软件所在,进而选择自己的未来的方向。

第十阶段 ,当我建立了EOM之后,我便开始了EOM实现阶段。这个实现阶段分两个部分,通过两个部分的结合我们就可以逐步地看到EOM软件产品的实例,看到EOM的真正价值所在。

第一部分是EOM的业务实现。当我们明确了EOM之后,我们就可以根据EOM来重新规划企业信息化的整体构架,我们可以细分这个构架中的各种平台产 品、各种通用产品、各种专业产品、可以细分出这个构架实现的各种技术构架和实现手段,可以细分出这个构架中的各种标准功能和标准信息。这样我们的程序员就 可以根据自己的特长和爱好以及价值的判断来选择其中的软件产品和技术。在明确目标,看好大路的情形下,通过自己的努力,不断提高自己的各种技能水平,让自 己的价值和企业经营价值有机的结合在一起,实现自己的理想。

第二部分是EOM的技术实现。有了EOM并根据EOM理论构建了企业信息化的构架后,我们就必须从技术上来实现这个构架,否则,这个构架永远停留在 理论上的存在,不具有可行性。我们可以采用现有的各种技术来实现这个构架,但是,现有的技术都是基于原有的业务需求而建立和发展的,它适用于原来的应用对 象。现在EOM是一个全新的企业经营理念,因此,我们必须建立一种新的软件构架来适应这个理念,来最好的实现这个理念。有幸的是,我们找到了称作 NSS(NEW Software Structure)软件新构架的技术,这个技术体现了适应企业经营发展方向,将软件合理分层,用最新的软件技术按照构架的方式规范软件开发的模式,实现 最大范围的功能共享,实现软件的可扩展性。

这个阶段可让程序员在软件产品业务设计上,也可以在软件产品技术实现上等多个方面进行深入钻研,成为领域专家。这和我们平时涉及的简单的需求分析和简单的技术实现有着本质的区别。

从我程序员经历可以看出,程序员成长是无止境的,只要有的放矢地去努力,就会一个台阶、一个台阶登高向上的。我认为程序员成长经历主要有三大阶段,通用技术阶段、市场阶段、专业技术阶段。

1) 通用技术阶段是程序员专注编程水平提高的阶段,也就是说“只拉车不看路”阶段。这个程序员能做的那个程序员也能做,程序员的替代性很强,程序员市场价值相对较低,程序员只关注编程技术本身。

2)市场阶段是程序员跳开技术层面开始考虑为什么要开发这个软件,这个软件有什么价值,程序员开始不甘于“农民工”作为,通过求软件之源来重新认知自己的方向。

3)专用技术阶段是程序员认知了这个软件和技术有很大的市场价值,全身心投入到这个领域中去,使得程序员在这个领域成为专家。程序员不但要懂技术,更要懂客户业务,技术和业务变得不可比,这种稀缺性造就了程序员极大的价值。

这三个阶段其实就是三个过程,每一个过程都是一次飞跃。程序员知道自己可以飞到多高,那是程序员的学习和眼界;程序员能飞到哪里,那就要靠程序员自身的努力。一个程序员可以没有能力,但是不可以没有眼界。


程序员成长路线图--从入门到优秀》 作者。

分享到:
评论

相关推荐

    程序员成长之路(很受用)

    "程序员成长之路" 程序员成长之路是一个老程序员对刚上大学的学弟学妹的忠告。文章提出了几个误区,提醒初学者不要追赶时髦技术,而应该花时间学习基础性的东西。 第一个误区是认为计算机技术等于编程技术。很多人...

    中外程序员成长之路

    《中外程序员成长之路》这个资料集合,主要涵盖了程序员在职业发展道路上的各种经历、挑战与思考。通过对奋斗篇、中国篇、外国篇和反思篇的分类,我们可以深入理解不同背景下的程序员如何逐步成长为技术专家,以及...

    程序员成长之路

    本资源教你如何成为一名合格的程序员,作为一名程序员你值得拥有

    jsp程序员成长攻略

    jsp程序员成长攻略,详细介绍如何成为一名jsp程序员。

    程序员成长路线图 从入门到优秀

    程序员成长路线图 从入门到优秀

    程序员成长之路:C#编程入门与提高

    《程序员成长之路:C#编程入门与提高》这本书是一本专为初学者和希望提升C#编程技能的开发者设计的指南。它涵盖了从基础到高级的C#编程概念,旨在帮助读者逐步掌握这一强大而广泛使用的编程语言。下面将详细阐述书中...

    JAVA程序员之路-----看专业程序员的成长之路

    ### JAVA程序员之路——专业程序员的成长历程 在IT领域中,JAVA作为一门强大的编程语言,不仅在企业级应用开发中占据重要地位,而且在全球范围内拥有庞大的开发者群体。对于想要成为JAVA程序员的朋友来说,了解JAVA...

    程序员成长的烦恼.pdf

    本书《程序员成长的烦恼》对程序员成长过程中所遇到的各类问题进行了深入探讨,涵盖了从初学者到高级开发人员需要掌握的知识点和解决方法。 首先,初入IT行业的程序员将面临学习编程语言的挑战。在众多的编程语言中...

    程序员成长路线图:从入门到优秀.pdf

    ### 程序员成长路线图:从入门到优秀 #### 一、程序员的梦想与现实 ##### 1.1 程序员的梦想——中国的比尔·盖茨 在IT行业中,很多程序员都有着一个共同的梦想——成为中国版的比尔·盖茨。这种梦想不仅仅是对...

    java程序员成长之路

    内含8个版本,由业内老鸟撰写供新人参考,规划java职业生涯。

    java程序员成长之路.doc

    "java程序员成长之路" Java 程序员的成长之路是一个长期的过程,需要不断学习和实践。本文将从初识 Java 到成为一名熟练的 Java 开发者,整个过程中需要掌握的知识点和技能。 首先,需要掌握 Java 的基础知识,...

    C程序员成长攻略

    本书《C程序员成长攻略》是多位编程专家多年从事C应用程序开发经验的总结。它以“主题+实例”为主线,详细介绍了C编程技术、编程技巧以及应用系统的设计和开发方法。全书内容丰富,实例详尽,涵盖了C编程技术、C语言...

    程序员成长的烦恼pdf

    《程序员成长的烦恼》这本书是针对程序员在职业生涯中所遇到的各种问题进行深入探讨的宝贵资源。作为一本专门针对程序员的专业读物,它涵盖了从技术学习、职业规划到团队协作、项目管理等多个方面,旨在帮助程序员...

    《系统程序员成长计划》_C语言_源码.zip

    《系统程序员成长计划》是一份针对想要在系统编程领域深入学习和发展的程序员的教程资源,主要基于C语言。源码.zip或.rar文件通常包含了多个源代码文件,这些文件是学习和理解系统编程的关键,因为它们提供了实际...

    程序员成长的十层楼!!!

    "程序员成长的十层楼" 程序员成功需要经历的过程,很稀有的,希望大家能够珍惜!在程序员的成长道路上,我们可以将其分为十个层次,每个层次需要不同的技术水平和能力。下面我们来详细介绍每个层次的要求和特点。 ...

    程序员成长路线图:从入门到优秀

    程序员成长路线图是 IT 行业中一个非常重要的主题,作为一个 IT 行业职员,我经历过一个普通程序员成长的过程,同时也接触过许多不同层次的程序员。他们或在我身边匆匆而过,或与我共同工作,或在我可以关注的范围内...

    Delphi程序员成长攻略

    《Delphi程序员成长攻略》是一本专为想要深入学习和提升Delphi编程技能的开发者设计的指南。Delphi,作为一款强大的对象 Pascal 编程工具,以其高效的代码生成、直观的集成开发环境(IDE)以及丰富的组件库而受到...

    《内外兼修(程序员的成长之路)》

    《内外兼修(程序员的成长之路)》是一本专注于程序员个人成长和职业发展的书籍,它深入探讨了在IT行业中,特别是Java编程领域,如何通过技术提升和软技能培养来实现全面的自我发展。这本书旨在帮助程序员从新手到资深...

Global site tag (gtag.js) - Google Analytics