好程序员 + 烂技术 = 痛苦

by admin on 2020年5月2日

我所说的“关于程序员的痛苦的一种悖论”描述如下:

悲催的程序员悖论

小编今天看到一个帖子,楼主看到一位程序员上班时间却在公然的偷看比赛,其实小编工作时间是很认真的,并没有出现上班时间看电影,比赛,玩手机的情况,也有可能是因为我们公司比较严格吧吗,看到这位程序员的举动小编表示很是羡慕,你们有这样觉得吗?

“好的程序员大部分的时间都在干他们厌恶的事情、使用他们厌恶的技术和工具。”

优秀的程序员常常会花大部分的时间去做他厌恶的工作,使用他同样厌恶的工具和技术。

有网友表示,说不会偷懒的程序员不是好程序员,那么我们也来看看为什么这么说!

这是反常理的,看上去就是悖论;你会认为程序员才会把时间都花在烂技术上,优秀的程序员会把时间花在那些尖端的技术上。不是吗?

这从某种意义上来说是个悖论。通常我们的直觉是,差劲的程序员才会把时间花在蹩脚的技术上,而优秀的程序员的时间是用在高新技术上的。没错吧?我在实践中发现了这个悖论,而直到后来我才明白原因。且听我一一道来。

澳门新葡亰网址下载 1

我在自己的体验中发现了这个悖论,直到后来我才明白为什么会是这样。

程序员鄙视什么样的工作?

为什么呢!我们可以举些简单的例子:

什么样的工作会让程序员们厌恶不已?

这对一些有经验的程序员来说并不是什么新闻,但我要把这向那些非编程人员解释一下:

澳门新葡亰网址下载 ,好程序员厌恶做那些本来可以自动完成的事情。如果一个程序员被指使去做一个机器(通常是电脑)能自动完成的事情,他会非常的懊恼。程序员的志向是让机器尽可能多的替他们完成任务,只有剩下的一些机器不能完成的工作才会自己出手。

这是一个程序员应该具有的一种非常有益的本能。

一个简单的需要自动完成的工作的例子:
想象一个程序员浏览一个有1000行代码的文件。他想找到第791行,因为这一行被认为有问题需要修改。但编辑器现在显示到第30行。大多数人都会简单的
拖动滚动条一直到自己想要的那一行。但一个好程序员是不会去干这样的事情的。他们会使用一个能够使他们直接跳到特定行的编辑器。例如,在我使用的编辑器
里,“Ctrl-L -> 791 -> Enter”就能做这样的事情。

这个例子很简单;更复杂的例子有很多。

好的程序员厌恶做重复性的工作的原因是,这些小事情会打断程序员的思绪。思绪是一个脆弱的东西;一旦思绪被打断,需要花很久才能再接起来。如果你每5分钟就被这种体力工作打搅一次,你的思绪就无影无踪了。

在日常工作中,程序员需要处理各种各样的技术工作、使用各种各样的工具。程序员喜欢那种含“体力劳动”相对较少的工作。程序员喜欢那些只需要很少的
体力劳动的技术和工具(Python,Django,git等都属于这一类),讨厌那些需要大量体力劳动的技术和工具。(这个我就不举例了:)

但程序员必须即要处理那些有趣的自动化的技术,同时也要做那些讨厌的,需要体力劳动的工作。好的程序员会尽可能的使他们的生活远离那些烂技术,但总
有一些很糟糕的技术他不能简单的抛弃。有时是因为他们开发的产品需要这种技术;例如,所有的web开发程序员都必须要跟HTML打交道,但HTML里有很
多很讨厌的属性。有时一些很烂的技术不能抛弃只是因为有大量的人在使用他们,程序员必须去使用它们。

对于那些有网站开发经验的程序员而言,简直就是明知故问,不过在这里我主要是给非编程人士解释一下。

1.只有懒惰的程序员才会去编写那些可以最终代替自己工作的自动化工具,好的程序员都会有一套自己的代码自动生成工具,有的是用模板语言,有的是用shell.在开发一个新的系统时,系统基础框架设计好后,很多业务层代码基本上都是一个模子出来的,要想让这些代码都是从一个模子里出来,那么就需要在底层下很大的功夫才能做到.所以,每个程序员够应该有,或者会写代码自动生成工具,当然,这个工具并不是一个成功工具!它的前提是你必须在底层有足够的抽象.

大部分的时间都是花费在了烂技术上

从这个角度看,你就能很清醒的理解这个悖论为什么会出现了。烂技术会用掉大量的时间和精力。好的技术只需要很少的时间和精力。程序员每天的时间和精
力是有限的。这有限的资源中很多一部分被投入到烂技术上,正是因为烂技术需要你付出更多。换句话说就是,他们主要的日常工作都是在跟他们讨厌的技术和工具
打交道。因此,好程序员很痛苦。

我希望我的这篇文章最终能给解决这个问题带来一些启示,但估计不会很多。我们能做的事情就是尽量的抛弃那些烂技术,使它们远离我们的生活,而那些暂时抛弃不了的,我们只能忍受。

英文地址:

转自:    

 

澳门新葡亰网址下载 2

如果一件事完全可以自动化完成,那么那些优秀的程序员通常是对此不屑一顾的。如果强迫程序员去做完全可以让机器(通常是计算机)就可以办到的事,他会气得想揍你一顿。程序员的愿望是能让机器来干完所有的活,是所有哦,哈哈。而只有那些机器办不到的事,程序员才会有兴趣去捣鼓一下。

2.只有懒惰的程序员才不会去去写大段的冗余重复的代码,他们会想出各种方法来避免这种冗余代码的情况,做的好的,就是在系统的基础架构层来解决大部分这样的问题,通过精致的设计模式,高度抽象的模块,易用的接口,高度可配置的基础平台等等来实现,做的一般的会利用各种开源工具来代替自己想要的代码,做的差些的就是不断利用refactor重构出那些重复代码.

这是任何一个身心健康的程序员的本能想法。

澳门新葡亰网址下载 3

下面给一个需要自动化完成的事例。假如程序员在浏览代码文档的时候,需要修正791行的bug。文件总共有1000行,但是他的文件编辑器只能显示30行。大多数人会直接选择向下滚动——滚动——滚动,然后一直到791行。但是作为优秀的程序员,能干这么愚蠢的事吗?他会写一个能自动跳转到具体行数的编辑器。例如,“Ctrl-L -> 791 -> Enter” 就是我所用的编辑器。

也有网友表示,这简直就是和我一样的行为,看来程序员们上班还是挺有趣的,为了能偷懒,想尽一切办法完成工作,然后再偷懒去做自己喜欢的事情,看到这些网友的评论不知道为什么,给小编的感觉就是程序员并没有那么辛苦,反而挺有意思的,你觉得呢?

这个例子很简单,复杂的也有。

澳门新葡亰网址下载 4

究其原因就是,一个优秀的程序员讨厌去做这种机械的、重复的事情,因为这些繁琐的小事会打断他们的思维过程。思维是那么的脆弱,一旦被打断,就像火车一样,需要整理一段时间之后才能再次启动。如果每隔5分钟就需要做点手动的工作,那么你的思维火车恐怕到不了任何地方。在日复一日的工作中,程序员需要使用各种工具各种技术来完成各种项目。所以无怪乎他们会喜欢那些“体力劳动”相对较小的工作,并且特别厌恶需要大量手动操作的项目工作。他们喜欢几乎都不需要手动的技术和工具(比如Python,Django 和git),讨厌需要大量手动的技术(这个我就不给例子了,大家自由发挥)。

“身为前端老司机,还是得分享些干货精品学习资料的,从最基础的HTML+CSS+JS到移动端HTML5到各种框架都有整理,送给每一位前端小伙伴,这里是小白聚集地,每天还会直播和大家交流分享经验哦,欢迎初学和进阶中的小伙伴。”web前端学习交流,“550389714”~~~

但是因为工作需要,程序员在使用可爱迷人的自动技术的同时,也不得不使用面目可憎的需要手动操作的技术。这时候区别就来了,优秀的那些程序员会试着不去运用这些恼人的技术,但是也有他根本无法避免的时候。有时是因为他正写着的软件的需要,比如,所有程序员在做WEB程序时,无法避免的要使用令人头大的HTML语言。有时候这些落伍的技术不能被淘汰的原因仅仅只是因为大家都在用,而程序员需要和大家协作这么简单。

澳门新葡亰网址下载 5

时间都被浪费在这些落伍的技术上

从这个角度来看文章开头提出的悖论就容易理解了。这种差劲的技术占用了程序员大部分的时间和精力,而那些好的技术则不是。每个程序员每天的时间和精力都是有限的,就因为软件本身的问题,使得他们把大部分的时间精力致力于那些让他们讨厌的技术和工作上。就是这个原因,那些优秀的程序员苦不堪言!

我特别希望能在文章的最后提出解决这个问题的方法什么的,但是很遗憾没有。我们能做的就是尽量减少不好的技术,让它们滚出我们的生活,而对于那些不能避免的,牢记一个字——忍吧。

免费领取LAMP兄弟连原创PHP视频教程光盘/《细说PHP》精要版,详情咨询官网客服:

http://www.lampbrother.net

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图