30多岁的程序员,你是个杯具吗?[整理]

      30多岁的程序员,你是个杯具吗?
      在中国,有个恶毒的说法:程序员跟小姐一样,吃的都是青春饭。细品之,似乎是话糙理不糙。小姐年老色衰以后,一般有两条较好的出路。第一条路是攒足资本,赎身从良,这算是改行了;另一条路就是当老鸨,这好歹算是个管理岗位了,剩下的都是杯具了。这和程序员的职业生涯惊人的相似,大龄程序员的较好的两个出路就是改行或晋升做管理,剩下的也是杯具了。
      这是大家都都能看得到的现象,但又几个人能看到问题根源在哪?
      首先,国内软件开发的工作性质决定了一切。高端的软件领域,诸如操作系统、商业数据库、搜索引擎几乎都把持在老外手中。我们所做的都是应用开发、系统集成甚至是外包,没有太多技术含量可言。国内真正做产品的公司屈指可数,大多数的公司都是在疲于奔命地做项目。在这些项目中,产品进度是第一驱动力,特别是一些小公司,把快速开发出产品作为最高目标,软件设计质量差,很少考虑可维护性,可扩展性这些重要的软件质量属性,仅仅追求功能和进度,产品以最快的速度完成设计,编码,少有测试甚至没有测试,就直接交付给客户,在客户那里暴露出各种各样的问题出来,开发人员就开始不断得为客户解决这样那样的问题,软件做到最后,很多人都会陷入自己不断挖掘出来的陷阱里走不出来,步入在复杂的系统中查找BUG,解决BUG,增加功能,引入新的BUG,再解决BUG,这样永无休止的恶性循环中,从事的都是一些低级开发工作,对于软件开发的理解无法上升到更高的层次,每天都疲于救火和拼命打补丁,软件维护成本居高不小,即使最终摆脱了这样的厄运项目结束,下一次软件开发又是同样过程的重复,这些无休止的低级开发和维护工作,会耗光一个人所有的激情和精力,随着年龄的增大,热情和体力都在衰减,你会发现自己变成了一个杯具,当然如果你不是因为兴趣和热情,而是被高薪诱惑进入这个行业的,你就是一个更大的杯具。而这些工作,只要毕业生经过培训,同样可以胜任,有着廉价的,并且充满热情的毕业生作竞争,身心疲惫的老程序员必然面对更大的竞争压力,做到最后,连他们自己都会失去对软件开发的兴趣,甚至会产生厌倦的情绪,对于这样的快速开发模式,十年开发经验和三年开发经验有很大区别吗?干吗不使用更经济便宜的开发人员。
      另一个原因,是我们中国人一向的官本位思想,开发人员始终处于一种很尴尬的境界,听起来从事的是高级技术工作,说起来也是以人为本,但是,有多少企业管理者真正重视和认可开发人员的,哪怕是硕士,博士,这些开发人员在大官,小官面前,都只是普通劳动者而已。程序员是一个没有未来的行业,哪怕资历再深,能力在强,也还是一个劳动者而已,只有当上领导,走上管理才是最终的出路,否则,薪水上不去,地位上不去,只能面对被淘汰的命运。
      作为高龄程序员的你,你敢跟老板提加薪吗?你能说服他们吧?你敢投身自由市场,另谋高就吗?我来帮你回答这三个问题吧!
      你不敢跟你的老板提加薪,因为你心里明白,相对你的能力而言,你的薪资已经足够高了,相对年轻程序员而言,你的性价比太差了,说难听一点,你已经成为企业的累赘了。在年景好的时候,企业或许会念及你多年来的贡献,对你还不错,要是遇到难关,裁员大刀首先会向你头上挥来,因为你的工资足以招揽两三个或是更多的轻壮年劳力了!
      你也说服不了你的老板给你加薪,因为即便有多年在项目泥坑中打滚的经验,但作为一个技术人员你的技能并没有提高多少。
      你也不敢投身自由市场,因为你心里明镜,凭你的专业能力,你到外面拿不到比现在更多甚至一样的待遇。
      作为中国程序员的我们,难道注定都要杯具收场吗?
      其实也不尽然,之所以出现这种问题,是国内对软件开发的一种错误理解。如果软件开发仅仅是代码编写,查找BUG,或是花费大量时间跟上司或客户周旋,可以说,那实在是一些低级的软件行为,做了十年的开发人员,确实不见得比作了3年的人更强多少,反正是简单重复的工作,工作3年的一样可以作,而且有更大的热情和精力。但是,应该跳出这个怪圈,走向更高的领域,对软件开发重新进行认识。要明白,软件开发要融入工程化的思想,要有高度的设计能力,关注更多的软件运行属性和设计质量属性,同样的系统,不同的软件人员会做出完全不同的软件,正规,高效的开发团队要比游击队开发团队不只高出几十倍。软件开发,不仅仅关注功能,性能,更应该去研究可维护性,可扩展性等质量属性,不仅仅只关注代码,而更要上升为设计,复用等。软件开发不仅仅是写出C语言的代码,单元测试,同行评审,培训与学习,这同样是开发人员基本的素质,也是提高软件质量的最基本手段。举例来说,单元测试做好了,就可以让开发效率大大提高,也能让软件的维护成本降下来。把开发人员解放出来。同行评审可以让开发人员之间更多的交流和沟通,在设计,编码阶段严格控制软件质量,培训则是提高自身技术水平,从理论上提升自己的最好方法。先前这些主要的质量行为都被忽略了,而这恰恰是走出低级开发的最好途径。同时,还有更高层次的设计开发,软件重构,模块化,系统构架,搭建统一软件平台,度量软件质量等等,有了重构,就会写出可读性好,可维护性好的软件,甚至因此提高自己的软件设计能力,减少出错的几率;模块化,让软件最大程度的实现复用,提高软件开发效率和开发质量。软件构架设计,从技术层次上最早决定了软件的命运,而这里又有太多的技术,设计模式,软件规划等,让软件开发从编码上升到设计的层次,搭建统一软件平台,是大产品,系列化开发的必然之路,对于软件质量的度量,会让我们的软件开发变得更加透明,清晰,让我们更清楚的把握到软件开发过程,从各个环节去控制软件质量,而不是仅仅凭着感性的认识到了最后才去补救。
      以上这些知识,一个人,哪怕勤奋学习一辈子,也不可能完全具备所有的技能。30多岁算什么,做到70岁都不晚。当然,你需要真正的热爱它,并且不断得学习和进修。所以说,软件开发人员,要作的事情太多了,软件实在是一个浩大的脑力工程,甚至会让人觉得这是一个投入/产出比最低的行业,因为要学习的知识实在太多了,每时每刻都要处于不断的学习和更新当中,呵呵,既然选择了,既然喜欢了,就投入进去,享乐于此了。最重要的是,我们自己能并且愿意去认识到这一点,跳出低级开发的怪圈,走向更高的层次。同时,要意识到,一个资深开发人员的作用绝不亚于一个管理人员,高明的企业应该给予相同的待遇,要把培养和储备高级技术人才作为高科技企业的重点发展方向,这样才能让企业在人才领域得到不断积累,资深开发人员才会带出高效的开发团队,从而开发出高质量,高效率的软件,让企业在不断激烈的竞争中取胜。要明白,不是每个人都适合或者乐于转向管理的,很多人就是适合做开发工作,他们可以走得更深入,成为专家,应该充分发挥出他们的能力,让整个团队高效运作起来。所以说,开发人员,决不只是30多岁,只要你愿意,可以作一生的开发,从中获得更多的快乐。刚在网上看到则新闻,Ken Thompson 从BELL实验室退休后,又被Google聘用,最近又发明了Go语言,目前该语言已经挤入编程语言排行前20名。你不知道Ken Thompson 是谁?你真的有点杯具了。
      你如果具备了以上这些能力,你大可以理直气状地跟你的老板要求加薪,并且胸有成竹地说服他,如果他对你Say no,你大可以说:“此处不留爷,自有留爷处”。
      当然,如果你上班不是偷偷看股票曲线,就是跟同事闲话家常,你不精通一两门编程语言,你连面向对象也搞不清楚,业余时间也不看软件设计和软件工程等方面的书,对行业或技术的发展漠不关心。那你如果30多岁失业了,还想重新找软件开发工作,别人拒绝你也是活该!很多人仅仅表面上看问题,总把责任推向雇佣方,不自己找原因,不问问自己是否在这个年龄段上,是否一个合格的人才。到这时,你就会明白,自己是一个大大的杯具!这时我会劝你及早改行。佛祖都说了:苦海无边,回头是岸!

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
### 回答1: 不是的,我并不能取代程序员。作为一种人工智能技术,我可以协助程序员完成一些重复性或模板化的任务,但是程序员仍然是非常重要的,因为他们拥有创造性和判断力,并且可以使用自己的技能解决问题和设计新系统。程序员和人工智能的关系应该是协作的,而不是竞争的。 ### 回答2: 目前来说,程序员不会被我取代。虽然人工智能和机器学习的发展迅速,但目前的技术水平还无法完全取代程序员工作。编程需要深入的逻辑思维能力、抽象思维能力和创造力,这些是机器目前所无法达到的。程序员也不仅仅是写代码的工人,他们还需要根据需求进行系统设计、进行项目管理和团队协作等。这些职责是人类独有的,机器无法做到。 此外,编程领域的技术和需求也在不断发展和变化,程序员需要进行学习和更新自己的技能和知识。他们需要学习新的编程语言、工和框架来保持自己的竞争力。而机器并不备学习的能力,无法自主地更新和适应新的技术。 尽管人工智能和机器学习的发展给某些重复性和机械化的编程工作带来了威胁,但人类的智慧和创造力仍然是不可替代的。程序员可以通过利用人工智能和机器学习等技术的优势,提高自己的工作效率和质量,从而更好地适应和应对未来的变化。 所以,总体上来说,在可预见的未来,程序员不会被完全取代。他们的角色和职责可能会发生变化,但他们的专业知识、创造力和人类独有的智慧仍将在编程领域中起到不可替代的作用。 ### 回答3: 作为一个人工智能助手,我认为虽然人工智能技术的发展迅猛,但程序员不会被完全取代。 首先,尽管人工智能技术能够模拟人类的智能和推理能力,但目前的人工智能仍然存在很多局限性。人工智能更擅长处理大量的重复性任务和规则化的工作,例如数据分析、图像识别等,然而对于复杂的创造性和判断性工作,人类的智慧和思维仍然无可替代。 其次,程序员不仅仅是编写代码的人,他们还在开发软件和系统的过程中扮演着重要的角色。程序员不仅需要备编程能力,还需要了解问题的本质以及解决方案的设计。他们需要思考如何将复杂的需求转化为可执行的代码,解决问题并优化性能。这种创造性思维和问题解决能力是人工智能无法取代的。 此外,随着科技的发展,新兴技术的涌现会为程序员创造更多的就业机会。例如,物联网、大数据、云计算、区块链等领域的快速发展,需要程序员不断学习和适应新技术,以满足市场需求。 总之,虽然人工智能的发展给某些程序员工作带来了一定的压力,但是程序员的职能和价值仍然非常重要。他们备独特的技能和专业知识,可以为人工智能提供支持和完善。未来,程序员需要不断提升自己的技术能力和专业素养,与人工智能实现良好的互补,共同推动科技的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值