中国程序员,离民工还有多远

vandh 2013-06-28 09:31:55
从70年代C语言横空出世,到80年代的C++,90年代的java,正所谓江山代有语言出,各领风骚几十年。以至一时间,B、C、D、E、F、G等各大语言门派林立,百家争鸣。编程市场列国争霸,狼烟四起。需知天下大势分久必合,合久必分。当人类进入伟大的21世纪,各门各派经过历年混战,或兼并,或消亡,最终由二大门派中分天下,程序员从此进入了.net和j2ee和平共处的年代。
  月儿弯弯照九州,几家欢乐几家愁。原本属于这二大门派的程序员自然皆大欢喜,欲图发扬光大。而其它门派,除了为自己多年的前功尽弃扼腕吧息外,唯有流泪进行选择。有些程序员甚至就此改弦易辙。
  民齐者强,整合后的程序员阵营,体现出来了前所未有的强大生命力,和惊人的创造力。此后短短数年间,B/S架构大行其道,MVC应用无处不在,互联网风驰电掣般进入了web2.0时代。各种软件社区、商业中间件、开源框架、免费工具如雨后春笋般冒出来。程序员面临着比任何时代都难以比拟的丰富资源时,也经受着巨大的选择困惑和海量知识学习的代价。
  此时的技术更新速度比以往任何时侯都要快,程序语言自身版本的完善,新增的API,增强的语法。开源社区也因为人富力强,框架的数量越来越多,组件库越来越丰富,每个新版本几乎对老版本都有颠覆性的认识。企业应用从视图层到web层,从业务层到数据层,应用的框架越来越多,组件越来越庞大。如果说八九十年代程序员面临的是学习深度,技术困扰的话,那么现在程序员很幸运的可以抛弃一些艰深晦涩的底层代码,更多的是面临学习的广度问题。现在需要学习的知识太多了,太快了。正是因为编程API越来越丰富,封装越来越完善,技术难度也越来越浅,于是程序员的命运也开始发生转变。对于一门语言学习的门槛越来越低了,入门的时间越来越短,到达实战阶段所付出的代价也越来越低,各个教育机构、培训学校批量生产的专业人才越来越多。于是乎大量的程序员蜂拥而入,充斥着北大广深各个人才市场,程序员队伍甚嚣尘上,鱼龙混杂。
  大量涌入的程序员,极大的丰富了中国软件市场的应用程序。此时的政府,金融,电子商务,互联网等各类应用软件品种繁多,功能齐全。可遗憾的是,几乎没有任何组织或公司去关心那些支撑应用的底层框架,平台代码,更遑论去组建服务于芸芸众生的开源社区了。主导软件应用的供应商们,恨不得将所有程序员都变成利润单元,软件公司所谓的研发团队基本上都是在项目中去修漏补缺。几个项目下来,优秀的程序员不是转岗再就业,就是开始变得平庸。程序员越不去研究底层代码,就越难透过现象发现这些形形色色的应用框架的本质,其结果是离编程之道越来越远,就越局限于程序的表面应用与功能实现,最终陷入恶性循环。程序员渐渐变成了僵化的编码机器,只需要简单的使用google,然后Ctrl加C和Ctrl加V。程序员素质开始明显下降。
  随着计算机知识的推广,软件应用越来越普及,软件的终端客户,其认识也得到了迅速的提高。从以往注重界面的修修补补,开始渗入到了软件从需求、设计,到编码、测试的方方面面。而技术的成熟也极大的支撑了业务的发展,其结果是客户对软件的依赖也越来越大,业务需求越来越复杂,更新也越来越频繁。培养客户对软件的依赖无疑是好的,但软件商显然忽视了客户对软件的认知度问题。客户对一般电脑知识的了解,正如其对软件编程的不了解一样,让客户对软件产生了过度的依赖。小到鸡毛蒜皮的按钮大小与文字提示,大到工作流的自动处理与千变万化的人工干预,客户一味追求尽善尽美,万无一失。程序员总是在程序的通用性与客户要求的灵活性之间进行权衡,刚刚还在为开发出一个短小精悍的强大组件而洋洋得意,却迅速在客户提出的细枝末节的完善中意尽阑珊。这里,CMMI强烈的阳光照不亮阴沉的天空,PMI十八般武艺都经不起轻轻一击。这里,客户就是业务需求,客户就是行业规范。这里是技术的天堂,是程序员的地狱。这里天地不仁,视程序员如刍狗。
  技术上的浩如烟海,业务上的变幻莫测,足以让一个有良知的程序员痛不欲生。而恰恰在此时,往往能碰上一个“优秀的项目管理者”,于是,就造就了神一样的程序员。有这么一个说法,搞C的看不起搞C++的,搞C++的看不起搞java的,搞java的看不起搞.net的,搞.net的看不起搞js的,搞js的看不起搞html的,搞html的看不起搞美工的,最后美工周末去泡妞,看到一群傻X在那里加班。对了,就是加班。项目要前紧后松啊,所以项目早期要加班;进度明显滞后了,所以项目中期要加班;测试问题越来越多了,所以项目后期要加班。晚上工作效率高啊,所以能晚尽量晚点走;双休日开开会改改bug,所以周末没事最好来加班;人手不够了,辛苦点先顶一顶;上线时间紧啊,争取后面安排调休吧;老员工下班没走,新人也只好积极表现、。于是,加班就成了管理的最高境界,成了管理者应对一切项目的不二法门。加班是程序员的墓志铭,加班是管理者的通行证。
  自古福无双至,祸不单行。如果仅仅是加班的话,凭程序员多年练就的钢丝般的神经倒也能忍辱负重。当管理者一旦祭起“出差”的大旗,程序员就只有丢盔弃甲,唉鸿遍野了。为了响应公司的号召,多快好省的完成重大软件项目,一茬又一茬的程序员们背井离乡,抛妻弃子,纷纷奔赴客户现场,战斗到第一线。他们或进驻美丽富饶的大都市,或流放遥远偏僻的小村庄,进行着一轮又一轮的封闭式开发。多少年轻时的美丽容颜,几宿之间白发渐染。多少人在这里来来去去不停变迁,唯有技术永远陪在身边。技术一入深似海,从此家人成路人。
  出差和加班,彻底绞杀了程序员的灵魂。古人云,出于幽谷,迁于乔木。既然环境如此恶劣,怎么解释程序员队伍越来越庞大呢?是不是一定有些东西是程序员一直坚持而不肯放弃的呢?你说薪筹待遇也好,机遇挑战也罢,我想说的是这一切都是浮云,程序员从来只是为了----生存。
  从来没有这样一个行业,被冠以朝阳、绿色、知识的标签,却在暴得大名后,逐渐显露出它狰狞恐怖的一面。从来没有这样一个职业,当它正要走向欣欣向荣的时刻,却迅速的枯萎凋零。社会的浮躁,行业的苛刻,雇主的贪婪,都加速了这个产业和职业的滑落。一个幸福的程序员,必须上升到哲学的高度对自己说,苦逼与加班无关,与内心相连。相当有讽刺意味的是,另外一个长期被忽视的农民工群体,地位却随着经济的发展而水涨船高,短缺的劳动力市场使其在家门口就可以实现就业,繁重的体力劳动大多已被现代化的机器替代,曾经的血汗钱屡屡招来白领羡慕的目光。而随着社会人口的老龄化、教育普及化,农民工作为一支新型的劳动大军将扮演着越来越重要的角色。物类之起,必有所始;荣辱之来,必象其德。二个曾经风马牛不相及的职业,一个是阳春白雪,一个是下里巴人,却在社会前进的滚滚车轮中发生了逆转。用不了多久,程序员和农民工就会在时空的某个点相遇,二个同病相怜的劳苦大众是时侯互道一声珍重了。

...全文
4428 67 打赏 收藏 转发到动态 举报
写回复
用AI写文章
67 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuan.ye 2013-11-07
  • 打赏
  • 举报
回复
不知道说什么,有能力就搞出名堂,其实发发牢骚帖子,也解决不了任何问题。
bee_fc 2013-11-07
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
朗晴 2013-11-07
  • 打赏
  • 举报
回复
很经典的一篇文章
sca4441479 2013-11-07
  • 打赏
  • 举报
回复
挖坟贴啊~~
别闹腰不好 2013-11-07
  • 打赏
  • 举报
回复
引用 65 楼 q445697127 的回复:
你赚的有民工多么?
楼上一群大水B
android_Y 2013-11-07
  • 打赏
  • 举报
回复
你赚的有民工多么?
无聊找乐 2013-11-06
  • 打赏
  • 举报
回复
早就被民工超越了~
n27741 2013-11-06
  • 打赏
  • 举报
回复
引用 58 楼 yqstrive 的回复:
[quote=引用 27 楼 N27741 的回复:] [quote=引用 14 楼 qp7711 的回复:] [quote=引用 8 楼 N27741 的回复:] 说白啦,做民工是可耻的,读了这么多年的书,父母这么辛苦供读书,不是让你来当民工的,或者与民工沾边的;
鄙视你这种说法! 那怕是民工,他们都是在用自己的血汗在努力!也都是光荣的! [/quote] 你别急着鄙视我,先想想自己愿不愿意当民工。[/quote] 傻了吧唧的,谁天生愿意做民工吗?富二代,官二代也不过是命好,人家做民工就意味着比你低等吗? [/quote] 别一个口一个傻了吧唧,一个一个吃屎,动不动就傻不拉几吃粑粑这也是你爹妈教你吧?或者你很爱这口? 我之所以说做民工是可耻的,任何有心奋发的人就不要叫自己叫“民工”。民工都成了自我解嘲的词,现实无奈、承认软弱才自称民工。读了那么多书,受这么多教育就必须有为,如若不为是为可耻。 你们口口声声说尊重民工,你们自己都不知道用更有职业性的称呼:建筑工人,清洁工人,IT工人,搬运工人..., 用一个词“民工” 一而概之,这就是你们的尊重? 再说回来,你们还真以为你们眼里的“工人”收入比你们低,待遇比你们差? 那你们可真的错了。我认识不少建筑工人、水电师傅,他们收入可能大多都在你之上。你要认为他们是“民工”,那你已经很落后了。
zhaogang 2013-09-13
  • 打赏
  • 举报
回复
中国程序员,除了名字好听外,其他的都不如民工。再加上学这行业的人特多,很多公司就算每个月换一批开发人员都没问题。 之前在一家房地产公司干,工地里的木工、铁工,日薪280~360。当时我都不好意思说自己是搞IT的。 洋气点的叫法叫:IT,土鳖点的叫法叫:挨踢
duck166 2013-09-13
  • 打赏
  • 举报
回复
搞编程真心没有出路啊... 钱还没赚到 人就死了
流星陨落 2013-09-12
  • 打赏
  • 举报
回复
zzzxxv 2013-09-12
  • 打赏
  • 举报
回复
LZ好文采,d
浮缈 2013-09-12
  • 打赏
  • 举报
回复
引用 27 楼 N27741 的回复:
[quote=引用 14 楼 qp7711 的回复:] [quote=引用 8 楼 N27741 的回复:] 说白啦,做民工是可耻的,读了这么多年的书,父母这么辛苦供读书,不是让你来当民工的,或者与民工沾边的;
鄙视你这种说法! 那怕是民工,他们都是在用自己的血汗在努力!也都是光荣的! [/quote] 你别急着鄙视我,先想想自己愿不愿意当民工。[/quote] 傻了吧唧的,谁天生愿意做民工吗?富二代,官二代也不过是命好,人家做民工就意味着比你低等吗?
浮缈 2013-09-12
  • 打赏
  • 举报
回复
引用 8 楼 N27741 的回复:
说白啦,做民工是可耻的,读了这么多年的书,父母这么辛苦供读书,不是让你来当民工的,或者与民工沾边的;
什么玩意儿。没有民工 你住的猪圈,吃的屎啊 。回娘胎重新学学教养 。
gggggame 2013-09-11
  • 打赏
  • 举报
回复
除了门槛比民工高点 好像待遇还不如民工呢;再说光荣,你管你什么身份你感觉光荣了也就光荣了,很主观的;
江南小冯 2013-09-11
  • 打赏
  • 举报
回复
我完成的看的一边 ,很符合当今的程序猿
Seven丨 2013-09-11
  • 打赏
  • 举报
回复
没耐心看完,不过意思明白···程序员就是民工····
gearss00 2013-09-10
  • 打赏
  • 举报
回复
楼主文采不错。 如果仅仅依靠调用API就能够解决的问题,应该都不算什么困难的问题,有很多稍微复杂的问题是不可能有现成的API可以调用的,如一个能够与人对弈的象棋程序,就不可能找到现成的API。如果有现成的API使用,由于这些API需要有相当宽的适用性,它的内部编码的效率一定是不高的。一个高质量的程序,通常应该少用现成的API,除非他对程序的效率影响很少,或者程序对运行速度没有高的要求。
st_victory 2013-09-10
  • 打赏
  • 举报
回复
引用 8 楼 N27741 的回复:
说白啦,做民工是可耻的,读了这么多年的书,父母这么辛苦供读书,不是让你来当民工的,或者与民工沾边的;
民工不是什么可耻的,只是人家命运没有你那么好,不是人家不读书,是人家民工生下来就失去了受教育的机会.民工是光荣的,提供着其廉价的劳动力换来城市的繁华,换做你去试试?/???
xiangqilai 2013-09-09
  • 打赏
  • 举报
回复
怎样才算是个好的程序员呢,程序员的出路是什么,未来是什么?
加载更多回复(47)
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。   作一个真正合格的程序员,应该具有的素质。   1:团队精神和协作能力   团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。   2:文档习惯   文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。   3:规范化的代码编写习惯   知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。 一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。   4:需求理解能力   程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。   5:模块化思维能力   作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。   6:测试习惯   测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。   7:学习和总结的能力   程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员。   作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质:   1、 需求分析能力   2、 整体框架能力   3、 流程处理能力   4、 模块分解能力   5、 整体项目评估能力   6、 团队组织管理能力   1,激情   我曾经遇到许多“职业程序员”,他们从事IT是因为觉得这是一种职业,他们只在工作时间编程,除非送去培训否则他们不会学习新东西,这不是好的程序员。我认为一个好的程序员总是对编程充满激情,而且好的开发者会做一些编程工作即使这没有报酬。激情是一个优秀程序员的重要指标。   2,自学好学   编程领域始终发展变化着,不出一年有些新技术就变成了老技术,这并不是说好的程序员要对所有新技术跟进,但有些却对学习任何新技术都没有兴趣。他们通常在学校学习了编程,然后工作后单位安排学什么就学什么。如果在招聘中你听到“让我培训一个星期我就会胜任这个工作”那不要雇佣他。实际上,真正优秀的程序员始终谈论着你所不知道的新技术,向人们解释为什么你必须用这个技术,哪怕没有听众听得明白,哪怕他自己也不明白。   3,聪明   聪明包括很多因素,情绪和社会交际只是其中之一。好的程序员绝不木讷,他们是最聪明的人,他们中的许多善于交际,健谈、兴趣广泛。   4,隐性的经验   —好的程序员通常有自己的私人的一些研究、爱好、项目,而这些是他们不写在简历上 (通常觉得不值得写),但表现出来却可能恰恰是他的潜能、深度和后劲所在。   5,技术多样性   由于好的程序员喜欢学习和涉猎新技术,所以一般来说超过22岁的都熟知很多新技术,而且对多种技术的长短有 “强烈”的个人意见/见解,喜好尝试新鲜技术。   6,资格证书   资格证书并不是识别真正程序员的方法,MCSE、SCJP说明不了什么,它们只是让别人认识和获取的,顶多代表这个人在某个技术有一定的知识。   原文作者在文末写道:以上所说的标准并不是绝对的,因为有些优秀的程序员确实不符合上述,而有些bad程序员却符合了。但相信这些对大多数真正的程序员都适用。   总结而言,优秀的程序员通常有一下特点:   对技术充满激情   将编程作为一种爱好   如果你允许会滔滔不绝地跟你谈论技术   有过个人的开发经历(与4意思相同)   坚持认为某种技术最好   如果让他用他认为不好的技术他会非常别扭   聪明、健谈、兴趣广泛   在大学和工作前就开始接触程序

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧