一名程序员的自白

作者: 易小加 | 来源:发表于2017-10-25 18:35 被阅读331次

    文/小加

    程序员节,图片来自网络.JPG

    昨天是1024程序员节,在这个“全猿不加班,快乐嗨翻天”的节日里,我竟然忘记了自己也是一名程序员。

    科普一下,所谓程序员节的来源,是因为1G=1024M,1M=1024Kb,1kb=1024bit,1024是二进制计数的基本计量单位之一。程序员们就把1024作为了一种表示自己身份的符号。从2015年起,每年10月24日定义为程序员节。

    1.甲方的程序员也能称得上是程序员么?

    之所以常常忘记自己的身份,是因为我属于程序员中比较独特的一个群体:甲方程序员。也就是那些产业不是软件相关而仅仅是依靠软件提高管理水平的传统企业的程序员。

    在乙方程序员眼里,甲方程序员顶多就算一个修电脑的。他们啥都不懂,就知道每天找找茬,挑挑刺,还不用一年到头的出差和没日没夜的加班。与乙方程序员与比起来,他们简直就是养尊处优的大爷。

    在企业同仁眼里,信息部门的那帮人也算是程序员么?开发的系统难用不说,出了问题半天都喊不来人,每天就知道把他们的需求传递给乙方,代码都是别人家的程序员写的,简直就像一个传声筒。

    更让人纠结的是,若是项目成功了,待到邀功请赏的时候,还会有人质疑:“听说这个系统是某某公司开发的,跟你们又有什么关系呢?”

    甲方程序员是常常会被边缘化的一帮人。很多时候我们在那里自嗨,说我们的软件如何如何先进,给用户带来多少便利和好处,但用户部门却总是不买账。

    2.程序员的进阶之路

    普通人眼中的程序员,带着厚厚的眼镜,目不转睛的盯着电脑屏幕,专心的敲打着代码。他们常常会有化腐朽为神奇的力量,一堆杂乱的代码,运行之后就可以生成精美的画面。

    这其实仅仅是狭义的程序员,属于编码人员,俗称码农。在一个软件项目的组织中,码农通常位于组织的中下端,可以参照下图理解一下。

    一名程序员的自白

    这里有必要再科普一下,在一个软件项目里,会有很多种角色,比较重要的有项目经理,业务咨询顾问,系统架构师,编码人员,测试人员,数据库管理人员,基础平台架构师以及美工等等。

    当然做一名合格的码农并不那么轻松,首先从路线上来讲,就会面临很多的选择需要去确定。仅从编程语言上讲,就有JAVA,.NET,PHP,Python等等等等,并且不同语系的程序员会有点文人相轻的感觉,如果是前些年你在专业程序员论坛中抛出一篇标题类似“论JAVA语言优于.NET语言10大铁证”的帖子,基本上都能引发一场程序员之间的大战。

    另外还有前端页面开发、后端逻辑处理以及数据库层面的开发等更进一步的细分。总得来说,程序员只要定位明确,然后再用点心,几个项目下来,基本都能练成一把好手。让客户觉得专业、放心!

    代码写到一定的水平和名气,可以继续往上走。善于沟通和组织的就往项目经理和多项目总监的管理方向发展;对技术情有独钟的也可以去做系统架构师和技术总监;再厉害的就可以单独拉出一只队伍自己做老板接单子;更更厉害的可以自己拉团队做一个产品,比如说Windows操作系统之类的……那就有点说的太远了!

    3.进阶之道并不适合甲方程序员

    就拿开发语言的选择来说,每个企业的确都会有自己主流的架构平台,但是总会对一些其他半成品级的软件要求放低。就拿我曾经供职的单位来说,就混杂了JAVA、PHP、ABAP等多种语系,这就逼得自己东一锤西一棒子的都要懂一些。另外数据库及其操作语言是一定要掌握的。

    就算你会死磕,就能把这些都学精么?且慢,作为一名合格的甲方程序员,你还需要具备如下技能。

    首先你需要是一名合格的项目经理,因为作为甲方程序员的代表,你需要对项目的最终成败负责,项目成功了不一定算是你的功劳,但失败了板子一定会打在你的身上。最多的时候我曾经同时负责过三四个不同乙方不同技术平台不同用户的软件项目,光是开小组会议都能让你崩溃。

    另外你还需要具备测试人员的能力,知道如何有效的验证乙方程序员交付的软件成果。测试工作在软件开发团队中常常被忽视,其实它也有自己完整的知识体系。

    你还需要是一名合格的系统架构师,知道如何进行系统设计才能更适合现有的情况,对已有的软件不产生影响,并且让新的软件也符合统一的规划。

    咨询顾问通常是一个项目组中身价最高的人员,薪水有可能是码农的四五倍。如果你在企业已经工作了很多年,就应该具备业务咨询顾问应该有的能力了,否则就会被别人牵着鼻子走。事实上很多乙方的业务咨询顾问就是甲方的用户或者程序员跳槽过去的。

    乙方做完项目就走人了,接下来就是无穷无尽的维护和修改。如何建立更好的服务和运维体系,这同样是一门非常复杂的学科。

    要掌握的其实还有很多……

    4.协作与博弈

    企业的每个软件开发项目都存在一场甲乙双方程序员的不断协作和博弈。

    协作是团队取得成功的基础。项目刚开始时,甲方想借助乙方的力量完成工作指标,乙方对甲方的情况不太了解,想通过甲方程序员掌握情况。常常遇到这样的情况,用户对乙方的程序员口干舌燥的讲了半天,乙方程序员却仍旧一脸茫然不知所云,这时候我们登场,三言两语就可以让其恍然大悟。因为甲方程序员是同时掌握了业务和IT之间的“沟通密码”的那一群人。

    协作固然很多,博弈也必不可少,最常见的就是乙方程序员会对用户夸大工作的难度和复杂度:这个技术上无法实现,这个需要再派多少多少人加多少钱。这时候就需要甲方程序员站出来从技术上来进行谈判,每当此时很是有种“本是同根生,相煎何太急”戚戚然的感觉。

    当然在具体合作过程中,甲方程序员虽然在业务上相对见多识广,但又难免眼高手低,总把事情想得很简单;而乙方程序员虽然精准专业,却又常陷入业务处理的牛角尖而固执己见,各种冲突在所难免。

    但通常项目结束后,双方都会建立良好的私人关系。毕竟工作是单位的,资源是个人的,项目的成败自有合同等其他去约束,作为做事层面的程序员,没有了这种工作上的对弈,交交朋友,多些对外面世界和行业的沟通也是蛮好的。

    5.各有千秋

    很多乙方的程序员是很让人尊重的,他们很敬业,能吃苦,专业水平高,总能在关键时刻挺身而出,克服技术上的难关,让项目顺利上线。而作为一名负责任的甲方程序员,也要接触更多的技术知识,满足企业不同部门和发展阶段的需要。

    乙方的程序员虽然工作辛苦,但在事业上的通道常常也很顺畅,在一个领域混上八九十来之后,年薪几十万总是没有问题的。甲方的程序员却要跟着企业内部的薪资水平走,并且通常会低于主要业务的工作人员,很容易就看到事业上的天花板。

    在甲方做久的程序员会想着是否有机会跳槽到乙方,拿更高的薪水见识不同的客户;在乙方漂泊久了的程序员也会想着有机会也可以跳槽到甲方,工作稳定收入也可以接受。但通常大家还是会在各自的轨道上走下去。

    6
    不管怎么说,我们都有一个共同的名字:程序员。
    多年之后,我们仍然会为能在这个独特的信息时代作为一名程序员而感到骄傲。
    写在程序员节的第二天!

    『无戒365天极限挑战营 打卡第3天』

    相关文章

      网友评论

      • S傻蛋S:其实不管甲方乙方,只要遇到严谨、认真做事、对技术有追求的程序员大家互相之间还是会惺惺相惜的
        易小加:@傻不拉几的蛋 的确如此,实际上双方大多数的合作都非常愉快。
      • 线偶师:听起来好高大上啊
        易小加: @线偶师 没有,也就是普通程序员
      • sidney_c:前端开发人员(react)踩过,目前是向全栈工程师前进。目前是做本公司自己的项目,会运用到不同的技术,主要是老大也特别愿意去教,虽然工资不高,但是感觉挺好的
        sidney_c:@易小加 的确
        易小加: @EpicTroll 跟对一个正确的人,会少走很多的弯路
      • 209b99b07b8e:本来不清楚程序员是什么,现在终于明白了,你可以写写程序员的故事,让更多人了解
        209b99b07b8e: @易小加 把它收集起来就是好故事了,真实又感人,还能让人学到知识
        易小加: @慢慢走的蜗牛 这倒也是一个方向。很多时候就是愁着找不到写作素材。其实程序员中的故事也很多的。
      • 木土_wangzi:学习了
        易小加: @木土_wangzi 互相学习
      • 季见:一直都感觉技术员都是很牛的存在😀😀
        易小加: @季见 1G=1024M应该知道吧😀
        季见: @季见 表示现在只知道计算机采用的是二进制😀但那个1024还是不怎么清楚😀😀
      • 一个文字狗:这个……我还真没听过甲方程序员这个职业。毕竟有自己专业的程序员为什么要找乙方程序员?能做维护为什么不能自主开发?是人手不足外包?如果是企业对接,一般不都是产品经理跟乙方程序员对接吗?难道产品经理不懂代码和程序?
        认知不足,见笑哈~
        易小加: @一个文字狗 人手不足是关键😀传统企业不会招募那么多的IT人员,外包看上去多花了好多钱,其实折合到长远的养人成本,还是很划算的
      • 我是七书:也做过甲方,专改广告公司的稿子,但在乙方看来,我们即没他们有创、更没他们会设计!
        易小加: @我是七书 嗯,情况也是差不多
      • 西门吹饼:兄弟,你的这篇文章写出了你的心声,我确实能体会到你内心的一些声音。不过,简书的大多数用户,尤其是咱们班的读者,可能对有些词语可能不是太懂,你不妨说的更直白一些。比如,甲方可以换成业主方。乙方写成承揽方,更直白,等等,验收写成交货,等等。,这样的话相信没参加过工作的小白们,门外汉,都能看的懂,☺
        易小加: @西门吹饼 多谢兄台指教。这的确是个问题,我改了好几遍想去挑出哪些词汇太专业,结果还是有很多。这就是总站在自己立场考虑问题的结果。
      • 九空:专业语多,不甚了解
        西门吹饼: @九空透过作者的文字,看的出来是个技术男。
        易小加: @九空 是那一堆JAVA, js之类的单词么?我已经想尽可能的写的通俗易懂了😀
      • 欣畅:通过你的文字,了解了不同的行业。学习了
        易小加: @欣畅 互相学习促进
      • 生活就是咚咚锵:好专业哦😄
      • 已申请销号:偶表示看不懂哦
        易小加: @涅阳三水 好吧,后续多交流😀
        已申请销号:@易小加 我对程序白痴,啥也说不来呢
        易小加: @涅阳三水 具体有哪些?举一两个例子,让我也能找到改正的点😀
      • e5d494e66969:很有条理~加油~

      本文标题:一名程序员的自白

      本文链接:https://www.haomeiwen.com/subject/rnccpxtx.html