大话-程序员“性能”价值

程序员经常痴迷于优化程序的性能,我们始终会围绕一些让人绞尽脑汁的优化建议,比如:如何简化代码、如何提升软件运行速度、如何提高软件稳定性等等。本文来讨论一下程序员优化自身“性能”的一些建议。

1、提高文档编写能力

缺乏文档,对软件开发是致命的,一方面是软件无追溯能力,无法找到软件开发的起源,思想;另一方面,则是为后续软件查错,软件升级带来麻烦。作为早期的程序员,技术文档占用的工作时间应该为30%,而高级程序员、系统架构师等则需更多的时间。一般的软件文档要求,本篇不多说,可以回顾入职前手头上的软件文档要求和样式。

2、广泛阅读

大部分程序员都缺乏阅读,也许是平时工作没时间,但这不是借口,在程序员自我提高的历程中,阅读时必不可少的。我们可以阅读大量的书籍、期刊以及优秀的源代码,甚至可以是微博。

3、养成好的编码规范和编码习惯

作为一些国外知名软件公司,如微软、IBM、甲骨文等,都会对程序员开发的程序进行代码要求,代码的变量名要规范,关键代码段需要注释,注释格式统一,甚至嵌套中行缩进的长度和函数间的空行数字有明确的要求。

中国程序员,一般常会出现,全局变量滥用,注释语言表达不到位,变量名采用拼音等,虽不影响开发,但却影响了后续代码交接和分享工资。

4、提高对软件需求的理解

误区:入门的程序员一般不会对项目的需求进行刨根问底的分析和询问需求人员,拿到文档,即开始进行开发;在B/S架构中,更经常出现前台需求与后台衔接的问题;

因此,在做需求的时候,我们应该做到,了解需求的详细要求,力争到位;加强沟通,了解需求深层次内容,特别是功能点要达到什么要求,怎么使用系统才觉得舒服。对需求的把握不能从感性角度理解,必须多和工作伙伴进行碰撞,才算是真正把握需求——经验。真正的需求把握得恰到好处,所需的是2-3年的时间。

5、复用性和模块化思想

每个程序员在开发一个功能模块或函数的时候,应该多思考,不要局限在完成当前任务的简单思路上,思考一下,该设计的模块能否脱离这个系统存在,是否能够通过最简单的修改方式在其他系统或应用环境直接引用。

通过这两年中的实践与观察,发现我们团队一些同事在起步阶段,经常经历代码重写的事情,是很没有必要的,一方面自己思想需重新确立,另一方面是浪费了提升代码质量的时间去做重构的事情。

6、锻炼自己的测试能力

软件研发一直以来有个好传统,软件开发过程中问题发现的越早,解决的代价就越低。测试工作实际上也不麻烦,一是做正常调用的测试,看软件的基本功能能否实现,这也是许多公司常见的,也是唯一的测试,但强调,这是错误的!二是异常调用的测试,例如在B/S体系下常用的压力测试、破坏性测试、频发异常请求处理测试等,只有全方位的掌握好测试办法,才能提高软件开发的质量。

7、问题是最好的学习机会

日本经营之神松下幸之助曾说过:“工作就是不断发现问题、分析问题、最终解决问题的过程,晋升之门将永远为那些随时解决问题的人敞开着。”可见,工作过程中有问题是正常,没有问题才是真正的问题。在发生问题时,能勇于面对问题、解决问题的人,才是公司真正的骨干。

8、程序员工资高低判断

工资的高低给我们的感觉似乎和技能、经验呈正比关系。面试的时候,面试官重点考虑的也是技能、经验相关水平,然后给予一个相应的级别,最后确定一个工资范围。而且一般有正规工资体系的公司,都会按照专业水平划分能力级别,以此对应不同的工资等级。

所以,我们都会很自然的把工资高低和技能水平、经验值关联起来。但是,当工作了两三年后,技能水平迅猛提升、经验值飞速增长,而工资的增长呢,但工资似乎还在原地或者就涨了 20%。

所以,工资和技能经验的直观关系只是一个表象,那么它的实质是什么呢?微软(中国)有限公司战略合作总监刘润在一篇文章中写道:

工资不是用来支付给技能的,不要以为技能越高、工资自然应该越高。

工资是用来支付给责任的,责任越大,工资越高。

涨工资,是因为承担了更大的责任。

9、程序员的价值与价格

程序员提供的是软件开发这种技术服务,而为了提供这种服务需要相当长时间的知识、技能和经验的积累。获得具备提供这类服务所需的学习和实践的时间构成了我们的「技能成本」,这形成了价值的一部分。

而公司支付给程序员的工资就是提供技术服务的市场零售价。在程序员提供技术服务的市场上也存在类似情况,技能经验水平差不多,但工资差别巨大的个体。

程序员也有两个成本:

技能成本:专注于提供技术和服务本身所占用的时间和注意力。

传递成本:让你潜在的“客户”知道你所能提供的技术和服务的价值占用的时间和注意力。

所以,有人总是感觉自己被低估,因为他正巧知道了另一个和自己技术差不多的人,似乎只是人际关系更好反而获得的零售价更高。而程序员这类技术人员倾向于高估自身的价值,而认为市场低估了自己的价格,往往是因为对传递价值部分的成本没有足够的认识。

搞清楚了价值的两个成本,就能很好的理解其价值了。思考下,为什么程序员在一线城市的人力和生活成本高居不下,企业还是要在一线城市最贵的写字楼扎堆?

我的理解就是这两个成本的原因。程序员的技能成本大量依赖一线城市的高校教育资源。而程序员群体的普遍特性是忽视传递成本,那么企业只好在其扎堆的地方以最小化传递成本。因为考虑市场的时间和机会成本足以覆盖一线城市相对二三线城市的人力成本差价的。

程序员提供的技术服务因为无法卖的更多,所以只有一种选择,像奢侈品一样卖的更贵,前提是学会像奢侈品牌一样思想和能力。

10、废话几句

关于工资,我们从表象到本质,从价格到价值,从当下到未来逐步看清了其中的真实。那么就只需客观面对这个真实,按照经济规律行事,理解市场定价原则。再积极一些,尽可能高效率的提高个人价值产出率,但也要认识到工资的“玻璃天花板”。

不幸的是工资增长符合对数曲线,但价值增长是可以有办法走指数曲线的,跨过了指数增长的拐点再兑现价值,收入就会突破工资增长的天花板。

至于如何做?还没有清晰的思考认知,倒是觉得这句话很有道理:

因为只有真正认识你价值的人,最终才会成为你价值的一部分。

当然,如果你还在对数增长的陡峭期,那么就简单了,先让工资增长到天花板附近吧。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190822A0C81A00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券