“如果你无法度量,就无法管理。” 这年头,谁都逃不过被KPI支配的恐惧。
KPI,俗称绩效,全称关键绩效指标,也是领导口中常说的“小目标”,往往“领导动动嘴,手下跑断腿”。
程序员自然也是逃不过,但众所周知,程序员的劳动价值,“可以定性,不能定量”。
因为工作性质,程序员的工作很难考核,公司又不得不考核。为了更好地管理员工,某些领导总能想到一些奇葩的管理方式!!!
![](https://i-blog.csdnimg.cn/blog_migrate/d445701bdacde58ebf161c1dfeddacf7.png)
图片来源于网络,如侵删
某程序员爆料,互联网公司以bug数评定绩效。甚至有公司出现“超过3个bug绩效直接为C”的情况。
不谈过程只谈结果实属不科学,于是产生了一个名词:千行代码bug率(缺陷率),即在一个统计周期内,程序员每增加或者修改的代码行数与QA发现的Bug数,如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/de09de45f47328686bee6147038e265f.png)
先来根据这个规则计算下bug率:
1000行代码,1个bug,bug率=100%;
2000行代码,1个bug,bug率=50%;
5000行代码,1个bug,bug率=20%。
emmmm……不用多说了,这漏洞太明显了!!!
程序员的成长和工作有着密切的关系!
程序员的进化之路
NO.1
初级 -> 中级
通常在初级这个阶段,是进步空间最大的阶段,这个阶段是不存在天花板的。
编码
编码是初级阶段最需要经常做的事情,古话说孰能生巧,写代码也是同样的道理。
写什么的样代码
在公司要多做业务,尝试不同的业务,目标是让自己先成为一个熟练工。下班后也可以折腾点小项目做,可以选择自己感兴趣的内容,尝试自己实现一遍。
如何写代码
学会模仿,参考大牛的编码风格,照葫芦画瓢。如果公司有代码规范,跟随着公司的代码规范走,如果没有,参考业界规范,并用工具(如 eslint)约束自己。遇到一些不会写的,哪怕找到可以参考的代码,跟着抄一遍也行。
NO.2
工作
大部分时间都在工作,那么如何合理的利用好 8 小时工作时间呢。
熟悉业务 不要仅仅埋头写代码,也需要对业务了解,认真参与需求评审环节,明确自己所做的任务。
熟悉工作流程
要熟悉从需求-开发-联调-测试-上线的每个工作环节,认真按照规范来执行,对上线要有敬畏心。
提升效率
工作的时候,尽量不要被打断,可以安排一个免打扰时段,比如下午的 2点-4点,只编码而不去处理其它事情。减少在群里 灌水和斗图的时间。
加班
可以接受合理的加班(比如为了赶某一个需求加班一阵子),不接受没有任何补偿和调休的日常加班(996),因为日常 加班会压缩你学习和生活的时间。
NO.3
学习
初级阶段是需要通过大量的学习来提升自己的能力。
明确自己的学习目标 学习是为了提升能力,能让你胜任更复杂和有挑战的工作。
应该学习什么内容 前端基础,JS、CSS、HTML 反复学习。工作中用到的一门前端 MVVM 框架。了解一些广度知识,比如 HTTP、正则表达式、Web安全、性能优化、设计模式,数据结构和算法。
找到合适的学习方式
看书+编码:购买经典的书籍阅读,并作为平时写码的参考工具,看书和编码是一个反复的过程,基本就是看书->编码->看书->编码循环个 3-4 次,这个过程就是在不断修炼内功。
视频:慕课网的入门实战视频,根据自己的需求购买,要充分学习自己购买的每一个视频,认真的跟着老师学习一遍写一遍,遇到不懂的要积极提问,学习在于深入而不在于多。视频比书籍的好处在于更贴合实践,也更贴合公司业务,另外,课程的升级和更新也更加灵活。
官网文档:学习每一个新的技术栈,入门最好的方式是通过它的文档学习,可以系统的过一遍文档,手敲它每一个示例。
社区:慕课网手记、掘金、CSDN、InfoQ 等中文社区,利用碎片化时间看一些高质量文章学习。
GitHub:学会 GitHub 的使用,知道 clone、fork、pull、push 等基本操作。
花更多的学习时间 如果想比别人成长的快,就得花比别人更多的时间用来学习(这也是为什么不鼓励日常加班),尤其是初级这个阶段,成长曲线是非常快的。
知识沉淀 俗话说好记性不如烂笔头,可以养成写博客的习惯,把学习的内容用文字的形式记录下来,整理成文,并按学习的技术方向做归类。