正文

(转)VC程序员的命运2007-01-16 13:29:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yuqiexing/22628.html

分享到:

从小狼上转的,因为我也是学习VC的,自认为前途一片光明,看了这篇文章,有所感触,感觉写的很好,我现在还有1年时间就要毕业了,这篇文章为我敲响了警钟。

 

文章:VC程序员之无法选择的命运

http://community.csdn.net/Expert/topic/5286/5286537.xml?temp=.5930445

许多人选择做程序员,因为觉得程序员做的是创造性的工作。
   许多人选择做VC程序员,因为想感受掌握一切,君临天下的感觉。
   后来,程序员们都明白了:自己所做的,只是最机械、最重复的劳动。我们并未创造着世界,而是让世界死死地牵着鼻子走。我们一步也不敢停留,害怕着会因此与世界失去联系。
   再后来,程序员知道了除了写程序之外,还要吃饭。许多程序员找到了工作,唯唯诺诺地写公司规定的代码,过上了任人鱼肉的生活。VC程序员却由于一直找不到工作,流浪街头。
   其实,选择做程序员,就意味着比别人受更多的苦。选择做VC程序员,就意味着比别人走更多的弯路。因为我们没有好的书籍参考,没有好的老师指导,没有好的环境实践……我们孤独地在眩目的显示器前或在漆黑的夜里苦苦摸索,寻求出路。然而,蓦然回首,离自己的目标已渐行渐远……
   数百个VC程序员联系上我,说找不到工作,有的说要到我公司来。我要求他们设计一个最简单的项目,但他们都似乎有心无力,屡屡犯错。我知道,这并不是因为我们的VC程序员不认真,不努力。而是在这盲目的大潮中,程序员们找不到方向。举个例子,当今的VC书籍可不能不谓浩如烟海,但真正有用的没有几本。写书的人欺骗着一批又一批的莘莘学子,让一大班程序员跟着他的屁股去啃那些枯燥无味并大多无用的东西。当程序员们探索得有点眉目的时候那技术早已经不流行。如MFC,来不及让程序员们真正理解,却显江河日下。
   我知道,真正让你有进步的行为是进一家软件公司做一个项目。那时,你会真正感受到一日千里是怎么一回事。但是VC朋友说要到我公司来,我总是拒于千里,理由是不能给公司带来效益。公司不是慈善机构,要培养一个VC程序员也不是一朝一夕的事情。朋友说,我们可以合作,这样总可以帮上公司一点忙吧。其实,合作写程序并不象书上所写的那样简单,相反它更是一个漫长的过程。每个人的经历不同,思维不同,要融合在一起是很难的。即使大家同一样的大脑,初次合作时也要不断地交流。最重要的是,新手写程序,总会犯些“不可原谅”的错误,会给公司带来难以预计和损失。
   难道,要我们VC程序员把自己为此逝去的青春和未圆的梦想、未酬谢的壮志一齐作深深的掩埋吗?
   绝对不是!我也是一个VC程序员,深深知道我们走每一步是多么的不容易,我们的付出远远大于收获。VC象一个海洋,很多必要的知识我们没有精力完全去触及。记忆中,我们从满怀信心开始,到艰难地啃着一本本的“天书”,最后,却背着VC这个沉重的包袱迷失了自我。
   大家是否想过,我们本身也有责任。换句话说,如果我们真的“够强”,软件公司绝对欢迎。VC程序员总有着英雄主义,想掌控一切,涉及编程的范围太大,而真正懂得的甚少,给人志大才疏的感觉。还有,我们是否想起过“帮助别人实际上就是帮助了自己”这句话?大家互相学习,让社会上有一大班精通VC编程的人才,VC在“招聘界”流行,我们会惧怕找不到工作?
   前几天,我在市郊的见到一批出租的大楼。干净整洁,功能齐全,价纸却超低。那一刻,让我想起了我们穷VC的朋友。我们可以在此聚在一起,做一回学生或老师,互相学习,共同进步,也可分时分批出去联系编程业务。有这庞大的队伍,我们就不会在联系业务时有底气不足的现象,我们可以大声说“绝对有把握完成这个任务”。
   当然,我们更可以在闲暇的时候,驱车到附近的海边。我们手拉手,穿着拖鞋踏踏浪,看看夕阳……追忆作别的梦想,寻找往昔的壮志豪情。
    但愿这不仅仅是个梦。

回复一:

在我的早期职业生涯中,也曾是个VC程序员,也曾以为驾驭了VC就是驾驭了自己的技术生涯。但渐渐地,我发现无论我潜心研究多深,付出多少精力,在大多数问题上,我无法给自己满意的答案。似乎自己在金字塔大大小小、宽宽窄窄的隧道里踯躅前行,但每走了一大段路后,你总能碰到一扇门,一扇单靠自己很难逾越的门。后来发现,很多VC程序员也有同感:在做过若干年后,总会感觉面前立起一个槛,没办法逾越。这不是平台期之类的阶段,平台期之后通常会有一个大的提升阶段,但在那扇门前,很少有人窥得到门后的景观。没错,很多人成熟起来后明白了这扇门来自何方,为甚所立,所挡为何,这扇门就是:Microsoft。

作为一个盈利组织,微软设立层层技术壁垒,使自己的产品立于不败之地,争取盈利最大化,为大大小小的投资人负责,这无可厚非。但作为一个靠技术生存的人,除非你进入微软视窗系统开发部门,否则很难打开那扇门。所以,大部分的VC程序员,无论付出多少,最终沦为平庸,也就不奇怪了:你只能知道这些,这是游戏规则的一条,只是你自己没仔细看清楚而已。

像大多数理想主义者在发现自己最终是在为最不理想主义的手牵着鼻子走之后,很多VC程序员开始沦为最现实的技术人员,自甘平庸,宁愿囚在windows囚室中,但只要拥有一份过得去的薪水,一个技术高手的光环,就像《matrix》里描述的一类人,宁愿生活在虚幻中,但只要过得体面,那也成。在这间囚室中,我发现自己只是在复制别人的工作,甚至都无法理解别人是怎么做的。我根本不会设计软件!

但也有一部分更为坚定的理想主义者,不但没有沦丧,反而升华,研究VC,只是他们追求乌托邦理想链条中的一环而已,在进行充分研究后,他们继续前行,只是少了更多的羁伴。他们中的很多人甚至放弃了windows平台,开始宽泛地、深入地理解计算机科学的精髓及其外围。既然要透彻地领悟一样知识,那就不该有不可逾越的门。自然而然地,这些真正的理想主义者开始投入开放源代码世界。在这个世界里,只要你愿意,你可以打开任何一扇门,贪婪地汲取任何你需要的养料,你所需要接受的游戏规格却非常简单:与别人无偿地分享你的知识,并把这个游戏规则教给别人。在这个开放的世界里,不再有壁垒,你会明确地知道自己在干什么,只要你愿意。因而,你也能够做出一些真正original的工作。这不正是在那个午后,填报志愿时,我们曾立志奉献一生的理想吗?

最后,送出一句忠告:不要固步自封,尽量放open;如果做不到的话,那就尽量承认自己尽管不过20岁,却已经老去了罢。

回复二:

呵呵,还是那句老话,什么项目就用什么工具,你一天到晚在做Add,Query,Edit,Update,Delete之类的数据库,用VC当然不适合,但是你能用.NET给我写个工控程序吗?用Java给我写个编/解码器吗?
反正这个行业还有需要,对应的技术就还可以用,汇编也开发效率更低,现在没有它行吗?老实说,我在写一些便携式盘点机程序时,还在用Turbo C2.0呢,因为那个系统是DOS的,你用Java快,你写给你看呀.
前段时间我有个朋友到香港G2000公司去做系统维护,那里用的还是VFP呢,现在没多少人用了吧?一样还是有人用,不要以为新技术一出,旧的技术就没地方站,程序员要精通的不是一个语方,一种技术,而是一种思想,你精通了操作系统,还怕VC写不好?只是时间和项目实践问题;精通了面向对象,学怕Java .NET写不好?还只是项目实践问题.
我现在会用的工具和语言:TC2, VC++6, VB6, .NET(C#, VB),Java.
把这些东西都分帮分派来看的,那只能说明他们只会那程程序语言,远远还没会做软件,软件的核心是什么?难道就是实现它的技术?需求和设计才是最重要的,什么时候你听说过一个项目里的程序员工资比设计人员还高?当然设计人员也要有深厚的程序开发经验,但是这些经验绝对不是只从一种语言里体会到的.没用到VC,不知道,当你设计到Windows底层的服务程序的时候,你会想到自杀;没试过做大型的MIS,当你去设计ERP的时候,等着收解雇信吧.

回复三:

回复二 的观点是不错的,有一点不苟同。vs.net 2003/2005中提供了MFC的ODBC Consumer,这个玩意可以让VC非常方便访问数据库,而且比较稳定。我用这个东西(加上自己写了一个连接池)写了一个服务器应用大约一天10万次数据库访问,跑了4个月7x24没任何故障。

我更赞同的观点是根据应用来选择构架和工具。目前大多数的应用系统(我们不讨论嵌入式的代码)的使用了分层的模型,从硬件到应用有非常多的层次,如hw->os->application platform->app。每一个层次上的关注的内容不同,使用的构架和工具也不一样。我把VC看成是一个在Windows下最靠近操作系统的开发工具,应该所VC是Windows功能效率最高最强的工具,MFC+ATL基本上在Windows上无所不能。.Net框架的东西更像是J2EE的玩意。这个是比VC面对的Windows高半层的的东西。他提供了一个应用平台,可以在利用这个平台降低开发难度,提高效率,降低错误率。但是层次之间。基本上是不可以取代的,至少对于目前的dotnet和vc是这样的。

前段时间公司招聘,给人的感觉是一个成熟的VC开发人员非常难求。而对于dotnet/j2ee构架的初级开发人员却非常容易找。因为只要有一个成熟的标准构架,一个初级开发人员很快就能融入开发团队。而VC在构架上往往缺乏一个标准构架/设计,这就导致无法让一个初级开发人员快速上手。我认为这不是语言的问题,而是设计/构架的问题。

我的整体思维是一个好的构架者+好的PM能够带领一个烂队伍出色的完成工程,一个出色的设计师能够让一个初级人员良好的完成模块。VC本质上是软件开发层面上最简单的工作使用的工具。所以我觉得对于一个使用VC的软件开发公司,追求一个属于自己的VC开发/设计/构架标准模板才是正道

阅读(3739) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册