什么是“流动型程序员”?看不懂?所谓“流动型程序员”其实指得就是那些在一家公司总是干不长的程序员,并且,这样的程序员数量还挺多 。如果你没听过这个称呼,不要奇怪,因为我总要给这种程序员起个名字好让人能够理解!所以,“流动型程序员”这个形容词是我起的,如果您有更好的称呼,我也愿意改正这个称呼!
【“流动型程序员”指的是什么类型的程序员?】特征
我见过不少这样的程序员,他们身上有一个共同的特征,那就是懂得比较多,参加面试也能面试过去,但是写得代码基本上都是“屎山” 。导致这种结果的原因,就是在刚开始成为程序员的时候没有受到好的编码习惯的培养,因此只要是他们参加的项目,基本上就会出各种各样的问题 。
因此,他们不是不愿意长久地在一家公司呆下去,而是再待下去真没什么好果子吃,留下的只有烂摊子!
为什么这些人懂得比较多,面试也能面过去呢?其实一方面是因为他们经历的项目比较多,久而久之,懂得也就比较多了 。而面试能面过去,无非就是基础知识比较扎实,又因为经历的项目比较多,所以自然面试就不在话下 。
但是,只有丰富的项目经历以及扎实的基本功,写代码的时候却没有良好的编码习惯的话,无疑跟“纸上谈兵”没有区别!
举例个典型例子
我曾经遇到过一个工作十几年的程序员,从他手上接过了一个项目源码 。
看了他的源码,我才知道,程序员并不是工作年限越久,他的编码技术水平就越高,编码习惯就越好!
他的代码里,所有功能基本上都没有封装,基本上代码就是从头写到尾 。你可以在他写的源码中看到各种重复性的逻辑 。
有些逻辑即使是复用性极高的,他也不会选择将这部分逻辑进行封装 。
举个大家都能明白的例子吧!
假设一个网站要做一个接口鉴权的拦截器,一般来说,我们只要在网站访问入口那里定义一个拦截器,如果访问者没有登陆,我们就会要求访问者登陆 。如果访问者已经登陆,那么我们就要验证Token的合法性 。
如果这个功能是他去写,我大概能知道他的实现方式一定是在每个接口上都单独写上登陆判断和Token验证的代码!
这种做法虽然也能实现需求,但是万一比如哪一天Token的验证方式改了,那么所有的接口都得改!如果接口是几十个上百个呢?
不要以为老程序员干不出这种事情,他真能干得出来!
因为我们公司代码都是自审,只要测试那边测试通过就没问题 。所以,他的这套编码习惯一直没被发现,直到我接手他的代码以后,才感觉到什么叫崩溃!
后来,我就把这个情况反映给了我的研发总监,研发总监看了他的代码也是很头疼,只怪自己没有早点发现 。
但是,就这么写代码的一个人,平时给人的感觉就是很沉稳,值得信赖的样子 。
后来,研发总监没事就去审查他的代码,最后发现他写的代码不光重复性极高,而且对于一些外部入参也没有基本的判断,Sql语句也是采用拼接参数的方式等等 。他的这种编码风格和习惯,正常情况下不会出问题,但是一旦出问题是非常棘手的!
最后,因为写代码的时候总是不注意,总是被研发总监约谈,最后他还是自己离职了!
他离职之后,留下了一堆烂摊子给我们,我们花了大把时间对其代码进行重构,才勉强提升了下代码的健壮性 。
后来,我跟这个程序员还有联系,据我了解,基本上后来他在每家公司待得时间都不超过一年!
文章插图
像这种程序员在面试的时候是没有问题的,但是因为编码习惯问题,就会导致越到最后,代码得可维护性越低 。导致当一个项目的变数多的时候,到最后他自己也很难很好地维护自己的代码 。但是,大多数项目的研发过程中,其实需求都是在变得 。因此,当他连自己代码都维护不好的时候,就会导致最后积压的问题越来越多,只有“跑路”这一条路可走 。
如何避免遇到这样的程序员?
想要分辨“流动型程序员”有一种方法,首先就是看其工作经历当中,是否每家公司都呆不长!
当然,待不长并不代表他就是“流动型程序员”,也可能是因为性格,无法融入团队等等,这样的程序员我也遇到不少 。
如果遇到工作经历比较“丰富”的程序员,最好还是让他拿出以前做的项目源码来看看,如果没有的话,他自己总有一两个自己用来练手的项目 。
推荐阅读
- 瑞士|万亿巨头并购生变?“将展开刑事调查!”
- 杨洋|当红顶流又双叒叕“谈恋爱”了?
- 霍建华|“大难临头各自飞”,但抱歉,林心如这次救不了霍建华
- 吴亦凡|疑吴亦凡监狱生活曝光,入狱半年申请出书,不禁怀疑“封杀”意义
- 赵本山|赵本山“出轨”关婷娜?张玉娇的爆料背后,果真没有那么简单!
- 高校|当“三国梗图”照进上班现实,毕业生:太真实,已经对号入座了
- 赵岩昊|赵岩昊:从“顶薪先生”到“高薪低能”,职业生涯充满曲折
- 大学生|“没人脉就别碰”的3个专业,准大学生最好避开,看似热门却很坑
- 一包每日坚果的热量
- 文玩|买回烤焦的“羊腿”,现场切开一看倒乐了