为什么老程序员编程速度快,Bug数量少?
之前看到一位程序员讲到:2个月前公司有一个35+的老程序员入职,和项目主管一个年纪,但是还是干技术,基本没话,就是干自己的。公司暂时还没有让他挑大梁,观察了他2个月,发现那个老程序员手速不快,鼠标不快,码字不快,看他的代码,中规中矩也没有什么特别的地方,但是工作进度就是快很多。。。
我想说的是,老程序员不是APM比你高,也不是思维比你快(纯指反应速度)...
只是经验比你多...基本不埋雷而已...
这里以一个小故事向大家讲一下这种情况:
三个程序员被要求穿过一片田地,到达另一侧的房子。
菜鸟程序员目测了一下之间很短的距离,说:“不远!我只要十分钟。”
资深程序员看了一眼田地,想了一会,说:“我应该能在一天内过去。”菜鸟程序员很惊讶。
大神程序员看了一眼田地,说:“看起来要十分钟,但我觉得十五分钟应该够了。” 资深程序员冷笑了一声。
菜鸟程序员出发了,但只过了一会,地雷爆炸了,炸出了巨大的洞。这下他必须偏移预定的路线,原路返回,反复尝试穿过田地。最后他花了两天到达目的地,到的时候颤颤发抖,还受了伤。
资深程序员一出发就匍匐前进,仔细地拍打地面,寻找地雷,只有在安全的时候才前进。他在一天的时间内小心谨慎地缓慢爬过了这片地,只触发了几个地雷。
大神程序员出发之后径直穿过了田地,十分果断。他只用了十分钟就到了另一边。
“你是怎么做到的?”另外两个人问道,“那些地雷怎么没有伤到你?”
“很简单,”他回答道,“我最初就没有埋地雷。”
不过其实踩坑是一方面,还有编码能力和意识:
注意代码分层、结构
新手写程序,都喜欢把代码全部写在一起,我个人认为这个是属于意识层面的,并需要太强的编程能力,通过看别人写的代码,还是能够明白如何去组织代码,拆分代码的。核心思想就是“尽量每一个变量名有意义,每一个函数名有意义,每一个函数只干一件事情”。
以早上起床上班为例子,新手版本喜欢这样:
import 7788的能力
function getUpAndGotoWork(){
let i = 我;
i闹钟醒了,去关掉闹钟;
i赖床一下;
i起床了;
....
i去厕所,挤牙膏;
i刷牙;
i上厕所;
i洗脸;
....
i做早餐;
i终于出门了..
i上公车...
}
getUpAndGotoWork();
如果是老手,做法就是
function getup(i){
...
}
function fuckWC(i){
...
}
function fuckTheJob(i){
...
}
function Todo_Morning(){
let i = 我;
getup(i);//起床
fuckWC(i);//上厕所
fuckTheJob(i);//去上班
}
Todo_Morning();
这一手漂亮的代码,是之后维护代码,写单元测试,定位Bug的关键!这很大程度取决了你的代码速度。
其实呢,归结起来可以用一句话概括“用正确的方法做正确的事”。
除了这些,还有就是学习心态。。。
学习心态
- 遇到新的东西或者问题,要去探一下究竟,搞明白原因;
- 不要忽略基础知识,往往大的项目都离不开基础知识的铺垫,而每位老程序员都是掌握了非常扎实的基础知识的;
- 找到适合自己的学习方法:关于学习方法的探讨很多很多,只是我们貌似从来没有在意过,另外,切记只有适合自己的才是最好的,成功的人有很多,但是他们的路你不一定走得了,去寻找属于自己的学习方法论吧!
- 将知识体系化,做一个属于自己的体系化知识库;这样我们不仅会对我们学习的知识有个全面的了解,而且非常方便我们的复习巩固等!还可以让我们看到哪地方是自己的弱势,方便弥补!
这里以我自己举个例子,方便大家理解!
我在学习Android的时候会将自己学到知识都分类别的进行整理,将自己学到的知识体系化,例如我会分成如下类别:
小编开发八年有余,这里是我自己收集并整理出来的一些学习方法,学习笔记文档还有一些大厂的面试专题,有兴趣的伙伴们可以来看一看~
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞,以后还会更新技术干货,谢谢您的支持!