搞IT的都是懒鬼

Date:  2012/4/26   Sort:  随笔杂记 4600 Views / 
能够除了哲学家以外,笔者以为顺序员是最懒的一群人。他们的职业看起来又似乎有必然的劳动强度。

  想想看,生物学家要亲身做一切的实行…给数百只小白鼠打针药物不成能主动完成。大夫必需给病人进行身体反省;传授每年都要传授相同的课程;修建师从各个角度制订方案,并手工地将方案一笔一划绘制出来。

  让我们再来看看更为辛劳的一些职业,状况更糟。营销人员要不时反复地进行相同的产物宣传;剃头师日复一日地做着相同的工作;收营员天天都以一样的方法对货品进行结算…工场工人…

  你面前出现出了一幅图片,世界上有良多如许的人,他们每一小时,每一天,每一年,有些甚至一辈子都在反复做着简直一样的工作。 

  来看看顺序员

  每当我们想延续两次做相同的工作时—我们会测验想一个办法来主动完成此进程。每当你写的代码是完成相同的一件事时,你会开端寻觅一个库;每当你启动一个相似的项目时,你会去寻觅一个模板。

  顺序员的生涯就是努力于消弭反复的任务。

  将琐碎地义务从我们的任务流程中剔除,这能让每小我生涯得更轻松。这里有一个经典的笑话,说一个顺序员情愿用一周的工夫来写一个拷贝剧本,也不肯意将一样的文件复制粘贴两次,虽然复制粘贴能够只需求两分钟。

  活该的,我们要遵照DRY(Don’t Repeat Yourself不要反复本人)的准则。这个准则的根本内容是宁肯创立一个令人隐晦的抽象类,也不要将不一样但十分类似的代码写两次。

  这当然会招致良多问题。

  普通的软件项目充溢了在顶层抽象类上构建的抽象类,你渐渐地会不清晰这些顶层抽象类将若何任务。甚至你完全不晓得其代码在做什么。”Dizzying but invisible depth“,触及到这个问题时,你真的应该读读这篇短文。

  另一方面,懒散自身曾经证实了前史上很多科学和工程开展所带来的背面推进力。用有轮子的拖车运器械比人工搬运要轻松;用船在水中前行比游水来得轻易;甚至假如你他妈的想炸失落一座城市,你扔掷一颗原枪弹也比扔掷几千个小炸弹来的轻易。

  所以这也许并不是说顺序员是懒散的。也许真正懒散地是工程师们。只是刚巧在如许一个前史时辰,顺序员作为工程师中最光鲜的一类,老是将世界向更好更黑暗的将来推进。而其它大大都范畴曾经在某种水平上不变下来,或许需求更长的工夫去顺应新的东西。

  这里有一个主要的问题要问:顺序员天然生成就懒吗?伶俐懒散的人轻易被编程任务吸引吗,或许这是一种社会效应?懒散源于最好的编程理论?照样最好的编程理论源于懒散呢?

   

  一个比拟

  比来,我有时机将一个修建专业学生的一天与一个核算机科学专业的学生(就像我本人)的一天进行比拟。

  大大都的修建系学生的生涯充溢了如许或那样劳动密集的义务,这些义务是她任务的一局部。在任何时分,她都有能够要对一些模子进行拼集粘合,在AutoCAD中从50个分歧的角度对统一个物体进行画图,或许在其它3D建模软件中反复一样的工作…然后将这些图片导入到Photoshop中成为真正美观的图。

  这种事会接连不时的发作。我估量她破费在课程功课上的工夫比她实践上课的工夫多一倍还不止(现实上她说花了5倍还多)。更蹩脚的是,更好的完成这些义务并不克不及真正加速完成义务的历程,这只是意味着你多晓得了几个键盘快捷键,意味着下次绘图时你能够会少犯几个错误。

  纯熟和通晓完全无法优化要害的局部。

  比拟之下,当我不上课时,我凡间都在做本人的项目。由于我可以,由于我有足够的工夫。当有功课安插下来时,普通状况下,我都可以在几个小时内完成…即便是最要害最主要的项目,教师也很少给我们超越一周的工夫来集中完成功课,最多两周。

  通晓编码并不料味着你打字更快(与修建专业中同等的才能分歧)。它意味着想出的处理方案更轻易完成,应用东西来到达得不偿失的结果,诸如斯类。最终,经过互联网进行测试评判,而完成进程是最可有可无的局部,由于每小我都邑。假如你有一天的工夫,你可以完成某些器械。假如你有更多的工夫,你可以使这些器械完成得更美丽,模块化更高,可重用性更强,等等。

  根本上你可以疾速地完成面前的义务,你任务中大局部工夫都在努力于使你的义务完成得愈加美丽。但这关于你手头的义务来说其实并不主要,你如许做是由于你可以。

  甚至于当顺序员对本人的优化任务都发生厌倦时,他们会立马转而去创立东西来完成优化任务。

  工作就如许循环往复地反复着。

  接下来的家伙会运用他创立的新东西,使完成进程变得更快,接着优化它直到他最终厌倦,然后创立了一个新的更好的东西。

   所以…是辛劳的任务?

  但回到我开始的观念,辛劳任务对顺序员的出产效率存在多大的影响?关于那些天天辛劳任务13小时以上,以获得竞争优势的创业者来说,这又意味着什么?这是值得思索的一种优势吗?

   

  辛劳的任务能够对顺序员任务效率发生负面的影响。它袒护了背面所做的优化任务“哦,我可以手动把它完成,这将只需求10分钟工夫”(其实这需求20分钟)。下一次,一个类似的义务到来时,你能够需求再次手动把它完成,久而久之…

  最主要的是,辛勤地任务会使你变得很笨。很多研讨标明,继续委靡的形态会使你做犯错误的决议计划,甚至过多的决议计划也会让你会犯错误的决议(称为决议计划委靡)。工作上,这能够是我们喜好创立抽象类并运用它们的缘由—让其它人做大大都的决议计划,如许我就可以只专注于要害的局部。

  然则,我依然没弄懂,究竟是懒散的人更喜好编程,照样编程使他们变得懒散…

更多