做游戏的人说话做事很直接,组内主程直接把我实习的title从手游研发实习生改成了程序,同样有很多黑话,很朴素的描述程序技术点。

大佬们喜欢把工作内容分为业务模块和技术。什么是业务什么是技术我和他们聊了一阵却很难给出一个准确的答案,不过思考业务和技术的区别对于一个程序员是很有意义的。

我认为,业务是使用广泛的,基础的知识完成策划的日常任务,而技术是探索新的知识,尝试新的技术来实现创新;对于具体项目来说,业务是项目组里面每个人都会的东西,而技术是独特有效的解决问题的方法。

那么看起来“技术”比“业务”有大很多的吸引力,尤其是对于技术宅们而言。这也就是很多同学读研深造的原因–想混一个算法岗位。但是对于程序而言,日常的主要任务肯定是做无数的业务模块来改变世界。

那么问题来了,就像面试是考察同学的功底,公司评级往往是依靠技术分享。然而每日做的业务对于升职的帮助在哪呢。做游戏的程序无异于赌博似乎已经成为共识–一个程序的工资大概率与实力无关,而是与所在项目组的运气有关,运气好天天加班,年底几十个月工资发下来,运气不好进了项目组可能还是天天加班,三年只能做单机游戏。那么技术和职业发展无关,可能是程序的悲哀–一个优秀项目的程序在一般项目的程序之间不一样,而决定这个的也就是程序对于自己的业务模块的负责,可能是越职的责任感,产品心里。

然后做出一个爆款之后,就可以通过业务模块的展示升职了?其实并不完全如此,业务流程的总结和架构的学习能力是普罗大众的程序升职的答辩点。不像面试校招生,一般在公司呆上半年业务模块大家的开发效率就不同了,然而一个优秀的公司不应该拼加班时长来算绩效,那么工程能力的衡量就很需要量化了。

那么什么是工程能力呢,我觉得同行评审是一个很好的流程。code review可以有效的控制代码质量和工程的匹配程度,项目组的主程对于模块代码的控制力可以通过code review的方式传承下去,而实现具体模块的同学不能好高骛远,需要战战兢兢的完成模块–毕竟还有服务百万用户量的梦想。但凡留下了造成损失的大bug之后就会有升职门槛了。

虽然技术可以吹逼,受人尊重,但业务能力是一个程序员的安家立命的本事。就像在宽德听程序培训有一句话是这样的:“此生无悔入软件,软件需要匠心来实现”。虽然很像吹水,但是程序在做业务时候自身的责任感是很重要的,不然容易出事–像手Q大佬表情彩蛋事故。

或许这也是大企业技术发展较慢,但是业务稳定性一流要求的原因。