优异的程序员常常会花大有些的时刻去做他厌烦的作业,运用他同样厌烦的东西和技能。
这从某种意义上来说是个悖论。一般咱们的直觉是,差劲的程序员才会把时刻花在糟糕的技能上,而优异的程序员的时刻是用在高新技能上的。没错吧?我在实践中发现了这个悖论,而直到后来我才理解缘由。且听我一一道来。
程序员轻视什么样的作业?
关于那些有经验的程序员而言,几乎即是明知故问,不过在这里我主要是给非编程人士解释一下。
假设一件事完全可以主动化完结,那么那些优异的程序员一般是对此嗤之以鼻的。假设逼迫程序员去做完全可以让机器(一般是计算机)就可以办到的事,他会气得想揍你一顿。程序员的期望是能让机器来干完一切的活,是一切哦,哈哈。而只要那些机器办不到的事,程序员才会有爱好去捣鼓一下。
这是任何一个身心健康的程序员的天性主意。
下面给一个需求主动化完结的事例。假设程序员在阅读代码文档的时分,需求修正791行的bug。文件总共有1000行,可是他的文件编辑器只能显现30行。大多数人会直接挑选向下翻滚——翻滚——翻滚,然后一直到791行。可是作为优异的程序员,精干这么愚笨的事吗?他会写一个能主动跳转到详细行数的编辑器。例如,“Ctrl-L -> 791 -> Enter” 即是我所用的编辑器。
这个比方很简略,杂乱的也有。
究其缘由即是,一个优异的程序员厌烦去做这种机械的、重复的作业,由于这些繁琐的小事会打断他们的思想过程。思想是那么的软弱,一旦被打断,就像火车相同,需求收拾一段时刻以后才干再次发动。假设每隔5分钟就需求做点手动的作业,那么你的思想火车恐怕到不了任何地方。在日复一日的作业中,程序员需求运用各种东西各种技能来完结各种项目。所以无怪乎他们会喜爱那些“体力劳动”相对较小的作业,而且格外厌烦需求很多手动操作的项目作业。他们喜爱几乎都不需求手动的技能和东西(比方Python,Django 和git),厌烦需求很多手动的技能(这个我就不给比方了,咱们自由发挥)。
可是由于作业需求,程序员在运用心爱诱人的主动技能的一起,也不得不运用面目可憎的需求手动操作的技能。这时分区别就来了,优异的那些程序员会试着不去运用这些恼人的技能,可是也有他底子无法防止的时分。有时是由于他正写着的软件的需求,比方,一切程序员在做WEB程序时,无法防止的要运用令人头大的HTML言语。有时分这些掉队的技能不能被筛选的缘由仅仅只是由于咱们都在用,而程序员需求和咱们协作这么简略。
时刻都被浪费在这些掉队的技能上
从这个视点来看文章开头提出的悖论就简单理解了。这种差劲的技能占用了程序员大有些的时刻和精力,而那些好的技能则不是。每个程序员天天的时刻和精力都是有限的,就由于软件自身的疑问,使得他们把大有些的时刻精力致力于那些让他们厌烦的技能和作业上。即是这个缘由,那些优异的程序员苦不堪言!
我格外期望能在文章的最终提出处理这个疑问的办法什么的,可是很惋惜没有。咱们能做的即是尽量削减欠好的技能,让它们滚出咱们的日子,而关于那些不能防止的,牢记一个字——忍吧。(文章来自南京欣才PHP培训课程)