一个老程序员的回忆录--近几年中国软件的发展【转】

有一次出差途中,幸遇一位程序员。初观其貌,约30有余,姑且称其为“老”程序员。这位老兄初看不善
言辞,但同他侃起他软件开发的经历时,其人滔滔不绝。我虽非干这个行当的,但据我的社会经验他绝不是在
夸夸其谈,借机吹嘘自己。所以照其原话一字不差,摘录下来,供有兴趣的人们读一读解闷:  
 
 
 “从1989年进入大学开始,到而今攻读博士学位已经有12年有余。虽然我的专业一直都是软件,但并非一进
入这个专业便可以算作从事了这个专业。假如认为大学期间幼稚有余,从硕士真正算是进入了软件开发领域
,至今也有9年之多。然而,这些年来我都作了些什么呢?  
 
 计算机领域的发展之快令人目不暇接,自不待言。九十年代初期,国内仍然是DOS盛行的时代。那时,我在试
图分析这个实在不能称之为操作系统的小系统。经常为能够随意控制DOS而洋洋自得。先学习BASIC,然后是
PASCAL、汇编、C等语言。也曾经对BIOS系统中的二进制码的进行过一些分析。有时狂妄地想,只要是能够
形式化的东西,都可以用软件表达出来。而且把一个整个的PC都为我所用也绝非难事。  
 
 这时,我又接触到了实实在在的计算机网络。说是网络,其实多数人指的不过是局域网。更有甚者,那时
NOVEL网实际上就是局域网的代名词。如果你在那时的计算机书店看到一本讲计算机网络工程和编程方面的书
,不管书名里有没有NOVEL这几个字母,十有八九就是讲NOVEL网的。此时,我便忙于学习和研究NOVEL网
的通信原理。学习NETBIOS、IPX/SPX等协议,学会了在局域网上如何进行点对点以及广播通信。还为自己写
了一个在局域网上进行聊天的工具而沾沾自喜。另外,大约是在九十年代初期,有很多人认为网络编程就是
SOCKET编程,私下认为实在是误解。  
 
 然而,细想起来,那些日子都在忙于学习语言和用最低级的工具反汇编系统的代码。对于网络,也一下子陷进
了使用具体协议的编程细节。对整个软件系统的大局方面并无瑕顾及。一句话,整日是在代码中摸爬滚打,完
全没有时间对计算机系统的大局方面进行任何的考虑和思索。  
 
 进入WINDOWS时代后,虽然也对WIN3.1在心里以及行动上进行过讽刺与抵制,然而由于外界需求以及陆续
推出的WIN95/NT,还有对技术的狂热,又开始投身于WINDOWS系统的分析与开发。这时,又学习了SDK、
VC、VB以及DELPHI。经常为自己能在一两个星期内迅速掌握DELPHI这样的工具高兴不已。也为自己用
DELPHI在几个月的时间里开发出了一个类似于DELPHI的某领域内的开发工具而兴奋。  
 
 这时,我也早已认识到开发语言的相似性以及工具性。各种语言只不过是有一些独特的语法以及关键字组成。
再进一步,采用各种语言的开发工具也不过只是提供了各自的一些函数库/类库。学习起来并非难事。所以,这
时(大约为1995年)我也停止了购买单纯讲解如何使用某种语言或开发工具(如VB、VC等)的书。   
 接触UNIX系统是在上班之后的事情了。UNIX系统的命令行设计之精致和X WINDOW的巧妙结构使我感叹不
已。然而由于工作和兴趣的关系,以及WINDOWS系统之普及性,使我又很快的离开了阳春白雪的UNIX。即
使如此,我总是幻想着为UNIX开发一套类似于DELPHI/VB的工具。然而由于各种原因始终未能付诸实施,而
今已有类似产品,使我心痛不已,有点自己的孩子却由别人带了的那种‘大胆的’酸楚。  
 
 大约是95年,JAVA横空出世。这种不能简单地称之为编程语言的语言,使我爱不释手。由于它的简单性、可
移植性以及健壮性和迎合了当时INTERNET的发展,便又使我投身其中。幸好我没有仅仅关心其语法的细节
,从那种在语法上带了若干多余修饰的‘近乎煽情’一般的C++转向‘娇小秀气’的Java,使得我有余兴考虑
到底什么是面向对象的风范这个问题了。  
 
 面向对象的思想我是从1993年便开始接触到的。然而,直到今日我仍不能宣称自己掌握了它的精髓。广义而言
,使用面向对象的语言设计与开发并不一定进行的就是面向对象的设计与开发;再大胆地进一步讲,使用非面
向对象的语言设计与开发并非一定就不是进行的面向对象的设计与开发。不客气地讲,目前面向对象的开发者
大多数情况下只是把数据和函数简单地以类为单位组织起来而起。我是直到接触了设计模式,才真正领略了面
向对象风范的初步轮廓。  
 
 新技术、新系统和新语言层出不穷,极度编程(XP)、重构(Refactoring)、设计模式、反模式
(AntiPatterns)、分析模式、UML、RUP、中间件、RMI、 J2EE、.NET 、Linux、WinCE、WinXP、
Java、C#(有些看似很新,其实只不过同大众尤其是没有INTERNET时的国人信息来源不畅有关);就是一些
老的但至今仍流行不衰的系统和技术如CORBA、TCP/IP、面向对象等我们也不能不提。  
 
 虽然在跟进新技术方面,我做的不算太差,然而仔细想想,为什么我没有推出有力的作品呢?另外,好像我太
强调个人问题了。所以必须补充一点的是,现如今人力资源炒作的’团队精神’。这种炒作使得人们有一种误
解,认为国人从来没有考虑过人与人合作方面的问题。其实,我们的祖先早已留下‘一个和尚挑水吃,两个和
尚抬水吃,三个和尚没水吃’的经典评论。他们也考虑了这个合作问题。私下认为,‘团队精神’绝非仅仅是
能力问题,而在很大程度上是个人品问题。再说远一点,先前有一本叫做《谁动了。。。》的洋书不幸畅销
,又让国人忘了祖先早已留下的至理名言‘亡羊补牢’、‘未雨绸缪’等寓言故事和成语的存在性。  
 
 回到技术正题:除了狂热地跟进新技术,作为一个软件从业人员的我们还需要做些什么呢?这是任何一个意欲
长期从事这个技术的人必须思索的一个大问题。我虽然也回答不了这个问题,但我的经历告诉我,不能再在代
码里摸爬滚打了!当然,我不是指不编程了。而是要时刻记住从更高的角度审视自己的代码。同时,应该不断
地分析成功系统的体系结构,如JDK、MFC、VCL等。”  
 
 稍微沉闷了片刻,他颇有点怀才不遇地说:  
  “哎,现如今的社会说是需要有推销自己的能力,其实他们说的是还要有点卖弄自己的本事。不过这也是我的
一家之言。我也不知道怎么回事,至今也没有碰到合适的机会。虽然现在软件业不景气,面试倒是也有一两回
。但不知为什么,都没有下文。”  
 
 正如我的经验判断,其人不善言辞。但还是颇有几分内秀,所以我和他交换了联系方法。正当我要鼓励他几句
时,我们已经到达了目的地,大家一阵匆忙地打点行装,便在拥挤中各奔前程了。真希望他能得到好的机会
,尽早发挥自己的才能。

时间: 2024-10-23 01:03:49

一个老程序员的回忆录--近几年中国软件的发展【转】的相关文章

一个老程序员的心理话,句句戳心(转)

一个老程序员的心理话,句句戳心 码易-猿猿-yuan 2015-11-04 12:22:45 中国的程序员是世界上最好的程序员.他们不计报酬,没日没夜地工作.没有女朋友,没有节假日,可能几年后他们一无所有.他们仍在加班. 一些人总是发出一些错误的声音,形成了劣胜优汰可怕的现象.他们在误导着中国,把我们的后继军训练成软件蓝领――――胸无大志,目光短浅,稍有点成绩就自 满就自高自大的人,浑不知天外有天,外国正在虎视眈眈盯着中国的庞大市场. 由于软件蓝领的呼声人们不再致力于培养大批的高精尖人才,掌握国

10年IT人生酸甜苦辣的经历!一个老程序员的心理话

10年IT人生酸甜苦辣的经历!一个老程序员的心理话 我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶.我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心.而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑.C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web 学院”.96,97级的不少大学生都去做Web 了.当然我没有任

Coding girl一个老程序员谈到的一个女程序员的故事

因为有人说我给一个女程序员的建议不靠谱,我不服,因为我的工作经历中的一些女程序员都很不错,比那些男程序员都强,所以,我在新浪微博和twitter上征集女程序员的故事和想法,这两天来,我收到了好几封邮件,让我很感动.其中,有一个故事让我回味很久,在脑海里挥之不去,可能是因为她的经历和我很相似,她的想法和我很有共鸣. 本来,我想通过收到的这些故事然后编辑成一篇关于女程序员的文章,但是我觉得这个故事已经足够好了,任何的编辑都是对这个故事的不尊重,所以,我原封不动,一字不改地把这个故事转到这里.我把一些

一个老程序员告诉你:中国程序员为什么要跳槽

程序员 一些人总是发出一些错误的声音,形成了劣胜优汰可怕的现象.他们在误导着中国,把我们的后继军训练成软件蓝领,胸无大志,目光短浅,稍有点成绩就自满就自高自大的人,浑不知天外有天,外国正在虎视眈眈盯着中国的庞大市场. 由于软件蓝领的呼声人们不再致力于培养大批的高精尖人才,掌握国际尖端技术的人.而是花费心思培训一群猪出来给外国人利用.把自己的命运交给了外国人手里.结果,在最容易的管理软件领域也输给外国人,外国人派几个人过来,利用中国的劳动力,开发出软件,再卖给中国.大量的利润到了外国人手里.而我们

漫谈程序员系列:一个老程序员的2014年终总结

人生天地之间,若白驹过隙,忽然而已.蓦然回首,头上似霜雪,脸上似山川.我的 2014 啊,你就这么毫无眷恋地离我而去了.既然往事已不可追,未来尚未到来,在这年末岁首的间隙,就让我来回忆一下余烟尚存的 2014 吧. 2014 年,对我而言,发生了很多事,不管怎样,我还是一个程序员,这是工作.生活,以及我自己,给我的标签.也许很快这个标签会泛黄.蝶化.零落成泥碾作尘,不过不论怎样,它是我青春的纪念,它仍将伴随着我继续前行. 坚持技术博客写作 看到这里,也许你笑了. 是啊,这一年我不务正业,虽然每周

一个老程序员对自己当前编程技术处在哪个水平的反思

我目前的教练技能处于第二个阶段和第三个阶段之间. 在过去四个月里,支持我从前一阶段跨越到当前阶段的,最重要的是我想通过用教练技能武装自己,做好一个multiplier的信念.当然,这个TLS打卡群和每周一次的四人小组打卡练习,客观上也给了我足够的练习机会,使我的能力得到成长. 畅想一下,如要在明年TLS项目毕业时,你能从当前阶段进一步成功跨越到下一阶段,还需要什么不同的支持? 需要自己发自内心的主动刻意练习.其实看到老师这个题目,我马上就联想到了编程界公认的,经典的程序员修炼进阶模型,这个模型给

一个老程序员是如何手写Spring MVC的

人见人爱的Spring已然不仅仅只是一个框架了.如今,Spring已然成为了一个生态.但深入了解Spring的却寥寥无几.这里,我带大家一起来看看,我是如何手写Spring的.我将结合对Spring十多年的研究经验,用不到400行代码来描述SpringIOC.DI.MVC的精华设计思想,并保证基本功能完整. 首先,我们先来介绍一下Spring的三个阶段,配置阶段.初始化阶段和运行阶段(如图): 配置阶段:主要是完成application.xml配置和Annotation配置. 初始化阶段:主要是

80. 投奔怒海——一个Domino老程序员眼里的Java开发

这是一个以键盘鼠标为谋生工具已十多年的人初次进行专门的Java开发的体验和感受,对于Java程序员,这些也许早就习以为常,那就把这当成从一个来自不同世界的新人眼里看看他们自己的工作:对于我的Domino同行,这些体验或许将来有更多共鸣的可能. 在加入到这个Java产品开发团队之前,我的Java开发经验如下:十几年前跟着一本Java入门书做练习写的几个Applet,Domino项目开发中写的几个读写数据库和外部邮件的代理,XPages开发中的少量Java Beans和一个流程库.除此之外就只剩下对

老程序员应该记住的 5 件事

如果你甘于现状,并且已经在计划着怎么用退休金了,那么你不是这个帖子的主角.当然还是要恭喜你,已经快熬出头了.但是,如果你同我一样,尽管发现自己在变老,但却依然无法抵挡编码和构建东西的欲望,那么请继续往下看.我曾是一个系统软件工程师,但在我快40岁的时候,我被创业撞了一下腰.我认为创建自己的公司是一件很酷的事情.我建立了风险投资,在一些非常小的饥饿创业公司得到了一些花哨的头衔.我很自信我会成为一个好的CEO,一个不算坏的管理者,而且即便我不再编码,我也可以聘请一些优秀的程序员和管理人员——以求高品