很多从诚筑说学习完Java就业后几年的同学中,有两人的就业差别很大晋升之路也是一个坎坷一个顺利,而重点是这两个同学当时在诚筑说学习Java时候都是属于学霸级别的人物,那么今天给大家分析分析这背后的原因。这背后的更深层次的本质:工作、学习与绩效的关系。
工作
Java程序员的主要工作是:编程,产出代码,完成需求,交付软件系统。
程序员按其工作技能和经验,大体又分为三个阶段:初、中、高级。但是具体的差距在哪儿,很多创业公司在前期的软件设计基本满足公司需要就可以,虽然这样的系统看不出明显的 bug,但一遇到特殊情况就容易宕机。这样其中欠下了大量的技术债,先活下来,未来再来慢慢还。
因此,现在主流都是先完成一个资产和负债刚好过平衡点的系统,发布上线,接受反馈,再快速迭代,在迭代中不断地提升其资产性。而中高级相比初级程序员,就不仅仅是交付代码,完成工作,还有后续的两条:达成品质、优化效率。从初级向后两级跨越的门槛就在于此,比较容易被卡在不断地在完成工作,但却没有去反思,沉淀,迭代并改进,导致一直停留在了不断的重复中。而相比诚筑说两位Java同学来讲一个比较善于表达自己(再次证明了Java不是只会技术就可以)面试了一家各部门比较齐全的大公司。但是另一位同学的技术过关,虽说两年来没有晋升,但是这蓄积的力量不容小觑。
学习
只有学习才能让Java程序员跳出这个不断重复的过程,Java程序员在攀登职场阶梯的道路上,走过了高级,后面会有好些分叉路线。比如,转到脱离技术的纯管理岗或者技术管理岗。
面对怎么选路的问题,我近年学习的收获是这样的:选择走最适合实现个人价值的路。你的Java的个人价值该怎么实现?该如何最大化?有人很幸运的编写服务于数千万或数亿人的软件服务,这是产品自带的价值放大器。这样同样写一份代码,你的价值就是要比别人大很多。而转管理者、主管或架构师,这些角色无非都是自带杠杆因子的,所以也有价值放大作用。但个人能否适应得了这样的角色转换,又是另一回事了。其实不论什么岗位,都面临这这个问题。而诚筑说想告诉每个学员的是,不能怕犯错就不去做。世界上不存在不犯错误的学习或行事方式,只是我们可以通过学习,比其他人少犯一些错误。更是让我们更快的改正错误,所以这是一个良性循环。
绩效
Java程序员的绩效是什么?KPI?但是有些事是不太能用数据表达的,之前有位大神把KPI的管理套到Java身上
关键指标:
·A:需求难度系数,需求评审时架构师和程序员共同分析确定,达成共识
·B:需求花费时间,越短越好,由程序员自己记录
·C:完成需求提交的代码行数,越少也好
·D:完成需求数,越多越好
·E:E = A x B x C x D 表示有效工作产出
当然,这是一个简化的理想模型,真实的效果一定不是这样。其实为什么业界喜欢三到五年的程序员?按一万小时理论,三到五年接近或满足了这个量的编程训练,这个阶段就是产出代码的黄金时段,量大质优。前面提到诚筑说两位Java同学,两年时间虽说不长不短,但是学习一定会让你今后的路更加顺畅。在此祝福。