cuiyi's blog(崔毅 crazycy)

记录点滴 鉴往事之得失 以资于发展
数据加载中……

软件职业之路的借鉴(4):程序员的十字路口(转)

*************************一个老程序员的Web之路***************************
来源:http://tech.it168.com/j/n/2006-11-22/200611220927697_2.shtml 作者:IT168 麻地河

不懂Web的老程序员
  如果说Java我至少还写过一个程序的话,那么Web方面我真的是一文不名了。为什么会这样?象我这样一个自诩为老程序员的人,居然会不是Web专家?就算不是Web专家也不要紧啊,难道竟然没有写过若干个大型的Web程序?退一万步吧,大型的Web程序没有写过可以理解,一两个实验性质的网页总编过吧?很不幸,我没有。

 我确实是一个老程序员,程序可以为我作证。我写过很多程序,有些是大多数年轻的程序员甚至不曾听说过的。比如Z80、MCS51、8086、汇编、寄存器、中断等等,恐怕有些读者不知道我在说什么。汇编语言,最接近CPU的编程语言,年轻的程序员也许听说过,但用过的就凤毛麟角了。DOS下的debug,汇编语言的调试软件,曾经是我最爱用的工具,研究病毒和破解加密程序就是靠它。当然,汇编语言离业务逻辑太远了,再加上莫尔定律下飞速发展的硬件能力,现在甚至连操作系统的核心代码都不用汇编来写了。

 之所以提到汇编语言,只是为了说明我是老程序员。汇编语言的经验在现在没有任何用处了,即使是单片机,如今最次的也都C了。从汇编到C到C++,编程语言层出不穷,作为程序员的我,始终追随着编程语言的步伐,边学边用,不敢有丝毫的懈怠。唯独在Web领域,我远远落在了时代的后面。

 程序员是一个活到老学到老的职业,3个月不抬头看路,你的眼前就会冒出许多技术的新面孔。先是OO,我写了很多C++的程序;然后是Client/Server,我又写了很多PowerBuilder的程序;后来到了Browser/Server,我还想写很多Web程序,可是,我已经没有写程序的机会了。原因很简单,当Web渐成程序员们的口头禅时,我做“管理”了。

程序人生的十字路口 
     我走过的路,和很多程序员一样。22岁,学生们带着从老师那里学来的若干理论,投身到程序员的行列,工作稳定,学习的机会又多,他们满怀期待;25岁,程序员变成了高级程序员,虽然辛苦,虽然有压力,但薪水不菲,他们充满感激;28岁,高级程序员晋升到资深程序员,登上作为程序员的职业顶峰,见多识广,在技术领域里呼风唤雨,他们踌躇满志。30岁,资深程序员还是资深程序员,虽然还是那样德高望众,虽然还是那样受人尊敬,但他们来到了程序人生的十字路口,他们开始不知所措了。

 “做管理还是做技术,这是个问题”。一直做管理的人,他们不存在这个问题,管理可以从26岁做到62岁;先做技术后做管理的人,有问题但不严重,虽然他们的技术底子可以让他们更专业,但管理经验的不足,通常会成为他们继续晋升的障碍;一直做技术的人,他们的问题就大了,没有人希望你继续做技术,你自己也知道应该转向管理,可是,如果你偏偏生就了一付不喜欢管理的脾气,你该何去何从?

 继续做技术吧,你的性价比不如年轻程序员,因为你受雇的公司通常没有核心技术,也不需要技术积累,或者,即便有核心技术,即便需要技术积累,你的成本还是高于重新培养一个新人。很低的价钱就能招到一个有潜力的程序员,签个培训协议,就能稳定三五年,随时要求加班而毫无怨言。再说了,炒掉你并不需要付出很高的代价,事实上,根本就没有代价,如果你得到了一笔遣散费,那是因为同情。

 这是我的无奈,也是很多老程序员的无奈,更是中国软件行业的无奈,而归根结底,我不知道到底是谁的无奈。程序员被划入吃青春饭一族,与舞女和模特同类,这多少有些中国特色。所以,当我30岁的时候,我把自己归入了老程序员的行列。为了能够体面地生活,像我这样的老程序员接受面试时,都知道必须为自己争取一个管理职位。我会告诉主考官我喜欢管理,我管理过某某项目,并大谈软件开发的过程、文档、规范和质量。学而优则仕,难道是程序员的唯一出路?

鱼与熊掌,不可得兼

  我见过很老的美国程序员,也和很老的印度程序员一起工作过,他们的程序就像他们的年龄一样,让人放心。当你向他们要一个程序时,他们会谨慎地告诉你,他们需要一些时间考虑一下,然后,他们会给你一个清单,列出他们认为可能存在的问题。你接过来一看,很多问题确实是你没有考虑到的。他们开始动手写代码的时间总是不如年轻程序员那么早,但他们的代码经历的回归测试的次数也比年轻程序员少,最终你会发现他们的效率是最高的。他们慢,但他们验证了那句名言:越早开始,越晚结束。 
    
     关于老程序员的讨论,是个忧伤的话题,就此打住吧。我想说的是,在我想写程序,而且能写程序的时候,我成了某某经理,成了某某主管,成了某某总。整天说一些言不由衷的话,做一些枯燥乏味的事,想一些没有结论的问题。我的薪水增加了,超过了身边最优秀的程序员,但我觉得很累,没有成就感,而且最伤心的是,我错过了Web。

 好在当C/S逐步向B/S过渡,Web渐成燎原之势时,网上关于Web的技术讨论风起云涌。多亏了那些评论文章,让我用有限的时间了解了关于Web的技术动态。ASP、PHP、JSP这些字眼不时在眼前出现,多少给了我一些Web编程的基本概念。我没有写过一行Web代码,不过,凭着一个程序员的职业敏感,我还是找到了正确的方向,所以,若干年后,当我着手开发我的第一个Web程序时,我决定用JSP。






***************************一个老程序员的心里话(真情流露啊)***************************
来源:间接转载CSDN论坛   作者:

     我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉得特别想对那些初学JAVA/DOT。NET技术的朋友说点心里话,希望你们能从我们的体会中,多少受点启发(也许我说的不好,你不赞同但看在我真心的份上别扔砖头啊). 
 
     一。 在中国你千万不要因为学习技术就可以换来稳定的生活和高的薪水待遇,你千万更不要认为哪些从事市场开发,跑腿的人,没有前途。

不知道你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开发团队都小的可怜,甚至只有1-3个人,连一个项目小组都算不上,而这样的团队却要承担一个软件公司所有的软件开发任务,在软件上线和开发的关键阶段需要团队的成员没日没夜的加班,还需要为测试出的BUG和不能按时提交的软件模块功能而心怀忐忑,有的时候如果你不幸加入现场开发的团队你则需要背井离乡告别你的女友,进行封闭开发,你平时除了编码之外就是吃饭和睡觉(有钱的公司甚至请个保姆为你做饭,以让你节省出更多的时
间来投入到工作中,让你一直在那种累了就休息,不累就立即工作的状态)更可怕的是,会让你接触的人际关系非常单一,除了有限的技术人员之外你几乎见不到做其他行业工作和职位的人,你的朋友圈子小且单一,甚至破坏你原有的爱情(想象一下,你在外地做现场开发2个月以上,却从没跟女友见过一面的话,你的女友是不是会对你呲牙裂嘴)。

     也许你拿到了所谓的白领的工资,但你却从此失去享受生活的自由,如果你想做技术人员尤其是开发人员,我想你很快就会理解,你多么想在一个地方长期待一段时间,认识一些朋友,多一些生活时间的愿望。
 
     比之于我们的生活和人际关系及工作,那些从事售前和市场开发的朋友,却有比我们多的多的工作之外的时间,甚至他们工作的时间有的时候是和生活的时间是可以兼顾的,他们可以通过市场开发,认识各个行业的人士,可以认识各种各样的朋友,他们比我们坦率说更有发财和发展的机会,只要他们跟我们一样勤奋。(有一种勤奋的普通人,如果给他换个地方,他马上会成为一个勤奋且出众的人。)

   二。在学习技术的时候千万不要认为如果做到技术最强,就可以成为100%受尊重的人。

 有一次一个人在面试项目经理的时候说了这么一段话:我只用最听话的人,按照我的要求做只要是听话就要,如果不听话不管他技术再好也不要。随后这个人得到了试用机会,如果没意外的话,他一定会是下一个项目经理的继任者。 
     
     朋友们你知道吗?不管你技术有多强,你也不可能自由的腾出时间象别人那样研究一下LINUX源码,甚至写一个LINUX样的杰作来表现你的才能。你需要做的就是按照要求写代码,写代码的含义就是都规定好,你按照规定写,你很快就会发现你昨天写的代码,跟今天写的代码有很多类似,等你写过一段时间的代码,你将领略:复制,拷贝,粘贴那样的技术对你来说是何等重要。(如果你没有做过1年以上的真正意义上的开发不要反驳我)。 如果你幸运的能够听到市场人员的谈话,或是领导们的谈话,你会隐约觉得他们都在把技术人员当作编码的机器来看,你的价值并没有你想象的那么重要。而在你所在的团队内部,你可能正在为一个技术问题的讨论再跟同事搞内耗,因为他不服你,你也不服他,你们都认为自己的对,其实你们两个都对,而争论的目的就是为了在关键场合证明一下自己比对方技术好,比对方强。(在一个项目开发中,没有人愿意长期听别人的,总想换个位置领导别人。) 

   三。你更不要认为,如果我技术够好,我就自己创业,自己有创业的资本,因为自己是搞技术的。

   如果你那样认为,真的是大错特错了,你可以做个调查在非技术人群中,没有几个人知道C#与JAVA的,更谈不上来欣赏你的技术是好还是不好。 

     一句话,技术仅仅是一个工具,善于运用这个工具为别人干活的人,却往往不太擅长用这个工具来为自己创业,因为这是两个概念,训练的技能也是完全不同的。

   创业最开始的时候,你的人际关系,你处理人际关系的能力,你对社会潜规则的认识,还有你明白不明白别人的心,你会不会说让人喜欢的话,还有你对自己所提供的服务的策划和推销等等,也许有一万,一百万个值得我们重视的问题,但你会发现技术却很少有可能包含在这一万或一百万之内,如果你创业到了一个快成功的阶段,你会这样告诉自己:我干吗要亲自做技术,我聘一个人不就行了,这时候你才真正会理解技术的作用,和你以前做技术人员的作用。

   [小结]

 基于上面的讨论,我奉劝那些学习技术的朋友,千万不要拿科举考试样的心态去学习技术,对技术的学习几近的痴迷,想掌握所有所有的技术,以让自己成为技术领域的权威和专家,以在必要的时候或是心里不畅快的时候到网上对着菜鸟说自己是前辈。 

      技术仅仅是一个工具,是你在人生一个阶段生存的工具,你可以一辈子喜欢他,但最好不要一辈子靠它生存。

  掌握技术的唯一目的就是拿它找工作(如果你不想把技术当作你第二生命的话),就是干活。所以你在学习的时候千万不要去做那些所谓的技术习题或是研究那些帽泡算法,最大数算法了,什么叫干活? 

      就是做一个东西让别人用,别人用了,可以提高他们的工作效率,想象吧,你做1万道技术习题有什么用?只会让人觉得酸腐,还是在学习的时候,多培养些自己务实的态度吧,比如研究一下当地市场目前有哪些软件公司用人,自己离他们的要求到底有多远,自己具体应该怎么做才可以达到他们的要求。等你分析完这些,你就会发现,找工作成功,技术的贡献率其实并没有你原来想象的那么高。

 不管你是学习技术为了找工作还是创业,你都要对技术本身有个清醒的认识,在中国不会出现BILL GATES,因为,中国目前还不是十分的尊重技术人才,还仅仅的停留在把软件技术人才当作人才机器来用的尴尬境地。(如果你不理解,一种可能是你目前仅仅从事过技术工作,你的朋友圈子里技术类的朋友占了大多数,一种可能是你还没有工作,但喜欢读比尔。盖茨的传记)。

反驳1:
我们公司有个IBM的老工程师一直给我们提供技术资源,算是做技术的,知道他薪水多少钱吗? 50k美元。折算下来,每天收入1万人民币左右。以这个人为例子,做技术的各位,如何感想?

我是03届的,我第一批同事(抱歉,我跳槽比较多,无奈的事情)中,认真做事的,现在有收入13k的了,工程师身份。这是我身边的例子。

当然,做市场的也有自己奔头,我认识一个人,做市场,3年时间,薪水从4.5k做到15k。

所以,任何行业都有奔头,前提是好好做好你手边的事情。

反驳2
中国不缺普通编码人员。缺的是真正的高手。
如果各个都想楼主那样,那过不了几年就真的呗淘汰了,被应届毕业生淘汰了。
就按照人家的设计去做,为啥用你啊,用新人多便宜啊。
我始终认为程序设计是们艺术,需要花费大量的时间去专研

posted on 2007-03-03 17:46 crazycy 阅读(641) 评论(0)  编辑  收藏 所属分类: 其它


只有注册用户登录后才能发表评论。


网站导航: