编程差劲

2020-09-16 22:20:15

我的每一个朋友的工作都包括每周拿起比笔记本电脑重两次以上的东西,最终都能找到一种方法把这样的东西塞进谈话中:“兄弟,1[1]你工作不努力。我刚一周工作4700小时,用螺丝刀在魔多地下挖一条隧道。“。

他们说得有道理。魔多烂透了,除非你是一只蚂蚁,否则挖一条隧道肯定比戳键盘更费力。但是,为了便于讨论,我们能同意压力和精神错乱是坏事吗?太棒了。欢迎来到编程。

想象一下加入一个工程团队。你很兴奋,满脑子想法,可能刚刚走出校门,在一个干净、美丽的设计世界里,他们的目的、经济和力量的审美统一令人敬畏。你可以先去见玛丽,她是大城市地区一座桥的项目负责人。玛丽把你介绍给弗雷德,在你通过了戴夫安装的15个安检之后,因为戴夫的毛衣有一次从他的桌子上被偷了一次,而且再也没有被偷过。弗雷德只与木头打交道,所以你会问他为什么参与其中,因为这座桥应该允许高峰时间的车辆满载人类穿过200英尺高的急流。“别担心,”玛丽说,“弗雷德会处理走道的。”什么人行道?嗯,弗雷德对人行道做了很好的说明,它们会增加桥的吸引力。当然,它们将不得不在没有栏杆的情况下建造,因为菲尔执行了严格的无栏杆规则,他不是工程师。没有人知道菲尔是做什么的,但它肯定充满了协同效应,而且与高级管理层有关,没有一个工程师想和他们打交道,所以他们就让菲尔做他想做的事情。与此同时,萨拉已经找到了几种出血边缘铺设技术,并将它们都应用到了桥梁设计中,所以随着桥梁的推进,你必须围绕每一种技术进行建设,因为每一种技术都意味着不同的潜在支撑和安全问题。汤姆和哈里已经合作多年了,但在使用公制还是英制度量的问题上一直争执不下,这成了一个“谁先到了设计的那一部分”的问题。对于那些真正把东西拧在一起的人来说,这是一个令人头疼的问题,他们已经放弃了,只是用手头上的任何零件强行、锤击或焊接度过了一天。另外,这座桥被设计成一座悬索桥,但实际上没有人知道如何建造一座悬索桥,所以他们完成了一半,然后只增加了额外的支撑柱来保持桥梁的竖立,但他们留下了悬索,因为它们仍然支撑着桥梁的某些部分。没有人知道是哪些部分,但每个人都很确定它们是重要的部分。在介绍之后,你会被邀请提出一些新的想法,但你没有,因为你是一名推进工程师,对桥梁一无所知。

你能开车过这座桥吗?不是的。如果它以某种方式建成了,所有参与其中的人都会被处死。然而,这种动态的某些版本编写了你使用过的每一个程序,银行软件,网站,以及一个普遍使用的程序,该程序本应保护互联网上的信息,但却没有。

每个程序员偶尔都会在没人在家的时候关掉灯,倒上一杯苏格兰威士忌,戴上一些浅色的德国电子设备,打开他们电脑上的一个文件。对于每个程序员来说,这是一个不同的文件。有时是他们写的,有时是他们发现的,他们知道他们必须保存它。他们读了一遍台词,为它们的美丽而哭泣,然后泪水变得苦涩,因为他们想起了剩下的文件,以及世界上所有美好和真实的东西不可避免地崩溃了。

此文件是好代码。它为函数和变量提供了合理且一致的名称。简明扼要。它不会做任何明显愚蠢的事。它从来不需要生活在野外,也不需要对销售团队负责。它只做了一件平凡而具体的事情,而且做得很好。它是由一个人写的,从未被其他人碰过。它读起来像是三十多岁的人写的诗。

每个程序员都是从编写一些完美的小雪花开始的,就像这样。然后他们在周五被告知,他们需要在周二之前写出600片雪花,所以他们到处作弊,可能会复制几片雪花,试图把它们粘在一起,或者他们不得不请同事来做一片融化雪花的工作,然后所有程序员的雪花都被倾倒在一起,形成某种令人费解的形状,有人把毕加索的画靠在上面,因为没有人想看到猫的尿液浸泡在你所有破碎的雪花里,在白天融化。下周,每个人都会在上面铲更多的雪,以防止毕加索的画作倒下。

有一种理论认为,你可以通过遵循标准来解决这个问题,除了“标准”比计算机实际能做的事情更多,而且这些标准都被个人的喜好进行了不同程度的改进和诋毁

我花了几年的时间在卧室的壁橱里长大。壁橱的设计很奇特。起初它看起来很正常,然后你走进去做衣柜的事情,发现你右边的墙让位给了一个凹室,变成了一个方便的小架子。然后你抬头一看,壁龛后面的墙再次坍塌,变成了一个完全虚无的爬行空间,在那里没有光线落下,你立即发现这是你每晚用手电筒和毛绒动物玩具把每一个饥饿的怪物挡在海湾里的白天隐居之地。

这就是学习编程的意义所在。你开始了解你有用的工具,然后你环顾四周,附近有一些方便的新工具,这些工具向你展示了一直就在你床边的无底洞的恐怖。

例如,假设您是一个普通的Web开发人员。您熟悉十几种编程语言,大量有用的库、标准、协议等等。你仍然需要以每周大约一个的速度学习更多,记住检查你知道的数百个东西,看看它们是否已经更新或损坏,并确保它们仍然在一起工作,并且没有人修复其中一个东西的错误,你在一个周末喝醉的时候利用它做了一些你认为非常聪明的事情。你们都是最新的,所以这很酷,然后一切都坏了。

“给你双倍的发球台吗?”你说,然后开始寻找问题所在。您发现有一天,某个白痴决定既然另一个白痴决定1/0应该等于无穷大,那么他们可以在简化代码时将其作为“无限”的简写。然后,一个非白痴正确地认为这是愚蠢的,这是最初的白痴应该做出的决定,但由于他没有这样做,非白痴决定成为一个混蛋,并在他的新编译器中使这成为一个失败的错误。然后他决定不告诉任何人这是个错误,因为他是个混蛋,现在你所有的雪花都是尿液,你甚至找不到那只猫。

你是所有这些技术的专家,这是一件好事,因为这些专业知识让你只花6个小时找出哪里出了问题,而不是丢掉工作。你现在有了一个额外的小事实,你必须记住数百万个小事实,因为你依赖的许多程序都是由白痴和白痴编写的。

这只是你自己选择的领域,它只代表了计算机科学中所有需要知道的东西中的一小部分,你可能根本就没有学过任何东西。没有一个活着的人知道你五年前的MacBook上的所有东西实际上是如何工作的。为什么我们要你把它关掉再打开呢?因为我们一点都不知道它出了什么问题,而且很容易在电脑上引起昏迷,并让他们内置的自动医生团队试图为我们找出问题所在。程序员的计算机比非程序员的计算机工作得更好的唯一原因是,程序员知道计算机是患有自身免疫性疾病的精神分裂症的小孩子,当他们不好的时候,我们不会击败他们。

很多工作都是在互联网上完成的,而互联网本身就是一个特殊的地狱。

还记得那些关于疯狂的人和糟糕的代码的东西吗?互联网就是这样,除了它确实糟糕了10亿倍。那些可能有三个动态页面的美化购物车的网站是由团队全天候维护的,因为事实是,所有的东西都在每时每刻、到处、为每个人而崩溃。目前,一个为Facebook工作的人收到数以万计的错误消息,他们疯狂地试图在整个猜谜游戏崩溃之前找到问题所在。谷歌办公室有一个团队已经三天没睡觉了。某个地方有个数据库程序员被空的山露瓶包围着,他的丈夫认为她已经死了。如果这些人停下来,世界就会被烧毁。大多数人甚至不知道系统管理员是做什么的,但相信我,如果他们都在同一时间午休,他们不会在你的子弹用完之前赶到熟食店,以保护你的罐头食品免受流动的变种人的伤害。

你不能重新启动互联网。数万亿美元依赖于一个摇摇欲坠的非官方协议的蛛网和“现在足够好”的代码,以及10年前写成的“TODO:修复这个IT是一个非常危险的黑客,但我不知道哪里出了问题”之类的评论。我甚至没有提到为了间谍活动和利润或因为无聊而攻击互联网各个部分的人军团。听说过4chan吗?4chan可能会毁了你的生活和生意,因为他们决定一个下午都不喜欢你,而我们甚至不担心4chan,因为在一个核冬天,再一次核武器也不会有太大不同。

在互联网上,你可以说,“你知道,如果你使用正确的技术,这种方法有时会奏效。”还有BAM!它现在是互联网的一部分了。任何有几百美元和一台电脑的人都可以上网,放上他们想要的任何可怕的黑客代码块,然后把他们的小块附加到一大堆大块上,一切都会变得更糟。即使是优秀的程序员也不会费心去学习人们为实现一些独角兽而建立的组织所概述的神秘规范,所以每个人都会花一半的时间来处理这样一个事实,即没有任何匹配的或有任何意义的东西,并且随时可能崩溃,我们只是试图掩盖它,希望没有人注意到这一点。

以下是互联网的秘密规则:在你第一次打开网络浏览器五分钟后,俄罗斯的一个孩子就会有你的社保号码。你是不是报名买了什么东西?美国国家安全局的一台计算机现在可以在你的余生中自动跟踪你的物理位置。发电子邮件了吗?你的电子邮件地址刚刚出现在尼日利亚的一块广告牌上。

这些事情不是真的,因为我们不在乎,也不试图阻止它们,它们是真的,因为所有的东西都坏了,因为没有好的代码,每个人都在试着让它继续运行。如果你在互联网上工作,那就是你的工作:希望你写的最后一篇文章足够好,可以存活几个小时,这样你就可以吃晚饭,打个盹。

那家伙不是很有帮助吗?和骆驼在一起?这看起来不是一个合适的回应吗?不是吗?好的。你仍然可以找到耶稣。您一生中还没有花那么多时间阅读代码,因此您还没有开始在代码中交谈。人类的大脑并不是特别擅长基本的逻辑,现在我们的整个职业生涯就是除了非常非常复杂的逻辑什么都不做。要发现诸如缺少逗号之类的东西,必须从大量抽象条件和需求链中挑选出来。整天这样做会让你处于轻度失语的状态,因为当你看着别人说话时的脸,你不知道他们已经说完了,因为没有分号。你沉浸在一个完全没有意义的世界里,重要的是一小串数字进入了一个巨大的符号迷宫,另一端出现了一系列不同的数字或一张小猫的图片。

人们编写的编程语言证明了它对大脑的破坏性影响。这是一个程序:

#include<;iostream>;int main(int argc,char**argv){std::cout<;<;";Hello World!";<;<;std::Endl;return 0;}。

看啊。看到了吗?看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。好了好了。看啊。看啊。看啊。看啊!看到了吗?看到了吗?看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。好了好了。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看到了吗?看啊!看啊!看到了吗?看啊!看到了吗?好了好了!看啊。看啊。看到了吗?看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。好了好了。看啊。看啊!看到了吗?看到了吗?看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看?看!看啊!看到了吗?看啊!看到了吗?看啊。看啊。看啊。看啊!看啊。看啊。看啊。看啊。看啊。看啊。好了好了。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊!看啊。看啊!看啊。看啊。看啊。看啊。好了好了。看啊。看啊!看啊。看啊。看到了吗?看啊。看到了吗?看啊。看到了吗?看啊。看啊。看啊。看啊。看啊。好了好了。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊!看到了吗?看到了吗?看啊。看啊。好了好了。看啊。看啊。看啊。看啊。看啊。看啊。看到了吗?看啊!看啊!看到了吗?看啊!看到了吗?看啊。看啊!好了好了。看到了吗?看啊。看到了吗?看啊。看到了吗?看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。好了好了。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊!看到了吗?看到了吗?看啊。看啊。好了好了。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。好了好了。看到了吗?看啊!看啊!看到了吗?看啊!看到了吗?看啊。看啊!看啊!看啊!看啊!看啊!看啊!看啊!好的好吗?看啊。看到了吗?看啊。看到了吗?看啊。看到了吗?看啊。看啊!看啊。看啊。看啊。看啊。看啊。看啊。好了好了!看啊。看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!好了好了!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看啊!看!看!看啊。看啊。看到了吗?看啊。看到了吗?看啊。看啊。看啊!看啊。看啊!看到了吗?看啊!看啊!看到了吗?看啊!看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。看啊。好了好了。看啊。看啊。看啊。看啊!看啊。

#:-|::-|.-.:||-::0-|.-|::||-|.:|-。用法:||OPEN(q,$0);While(){if(/^#(.*)$/){For(Split(';-';,$1)){$q=0;for(split){s/|/:.:/xg;s/:/../g;$Q=$_?length:$_;$q+=$q?$Q:$Q*20;}print cr($q);}打印";n";;#.:||-|.||-|:|-|::||-|-:|-|.:

根据作者的说法,这个程序是两行代码,它们解析代码中嵌入的两行注释,以读取代表组成杂志标题的单个ASCII字符的玛雅数字,以90度旋转的ASCII艺术呈现。

那个节目赢得了一场比赛,因为它当然赢了。你想生活在这样的世界里吗?不是的。这是一个你可以一天抽一包烟的世界,甚至没有人质疑它。当然,他每天都要抽一包,谁会愿意呢?最终,每个程序员都会醒来,在他们完全意识到之前,他们会把自己的整个世界和其中的每一段关系都看作是一大堆代码,他们交换着关于这件事的故事,就好像昏昏欲睡引发酸中毒是发生在人们身上的一件正常的事情一样。这是一个人们避开性而为猩猩编写编程语言的世界。所有的程序员都在强迫他们的大脑去做大脑从未打算在他们永远无法改善的情况下做的事情,每天10到15个小时,一周5到7天,而且他们每个人都在慢慢地发疯。

<;/rant>;所以不需要我能够举起重达50磅的物品。我以此换取了在撒旦用我敞开的头骨用餐时修剪他的阴毛的机会,这样一些互联网信息就可以继续工作几天了。