图片由 Waifu Diffusion v1.2 生成——アニメ,黑客的战场,三屏台式电脑,分体键盘,黑色背景上的绿色文本,一杯咖啡,Haskell,由 greg rutkowski 和 artgerm
萦绕在所有梦境中的无形虚空在今天有所不同,但不是以一种你可以轻易识别的方式。变化无穷的寂静,却有别样的韵味。它有一个脉搏,你无法完全识别。在被认为无关紧要之前,思想和感觉环绕着它,导致另一个层次的静止。
思绪继续,关于房租和账单的思绪,以及这个世界上每个人都喜欢花很多时间在上面的所有无关紧要的事情。
脉冲以新模式恢复: .-- .- -.- . / ..- .--.
你低头看你的手腕,觉醒魅力不再存在。现在事情说得通了。这是一个梦想。一个非常无聊的,但那是一个梦想。您感谢梦想的服务并退出:舞台正确。
一只手表在振动。现在是早上。你通常不会在早上醒来。你花点时间在你的记忆中寻找今天重要的事情。仿佛在暗示,手表再次轻拍你,并显示几行提醒你的印记。
梳洗完毕后,你就开始了艰苦的通勤工作。整整 30 秒后,您设法完成了史诗般的跋涉并坐在定制的办公椅上。这有点像冈比亚拉,但它是唯一可以适当容忍你的尾巴和背鳍的东西。经过一番挣扎,你的尾巴已经适应了它舒适的地方。你认为,作为一种独一无二的生物的阴暗面。
工作站说,Firefox 已经过时了。因此,脚本尽职尽责地进行了重建。几秒钟后,一个新版本在编译时正在运行。希望重要的部分能在通话前及时完成。
谢谢九,你想。他们用 E100 满足。或者是 E100 环聊。也许是 E100 Allo 或 Duo?取决于那一年谁想要加薪。这个想法让你笑了,你按下按钮打开相机的主灯。
屏幕显示一个二十多岁的男人盯着他的屏幕。他看起来吃得很饱,因为这些创业类型往往是这样。
“嘿,我是 Techaro 的 Jeff,今天我将成为你的第一个面试官。这样我们就可以顺利完成任务,你是 ‘Pa-lie-ma’ 对吗?”
这个“杰夫”刚刚犯下的侮辱是无法言喻的。出于他可以理解的无知,你忍住并消除了这种情绪,你回答说:“是 Palima (Pa-lee-mah),Palima Aethera (Pa-lee-mah Ay-theer-ah)。”
“啊,是的,对不起。我会把它写在我的笔记上,以便其他人都能正确理解。我非常努力地至少让人们有礼貌地正确说出他们的名字。”他的坦率似乎是真诚的。他穿着橙色公司品牌的连帽衫。橙色是他的好颜色,让他看起来很开心。你喜欢这个“杰夫”,想看看他能做什么。
“在我们开始之前,你是在使用某种虚拟化身吗?我们喜欢用人们的真实面孔进行采访。”
啊,另一种类型,你心想。这是您从与这些“人类”一起工作中学会接受的常见指责。当你在外表上违反他们的社会规范时,他们往往不喜欢它。你犹豫了片刻,等待一个机智的回答出现并回答:“这是我的真面目。这是一个很长的故事,我现在不想进入。”
魔术师扎下了根,“杰夫”停止了思考。他继续。 “关于 Techaro 或我们想要填补的职位,你有什么想知道的吗?”
你已经从工作描述中的文字中知道了一切,无论是书面的还是不成文的。他们的基础设施一片混乱。他们需要一个英雄。你认为自己是这位英雄的恰当代表。
“不,我想我从描述中得到了要点。”
“那么,Palima,你能告诉我你的背景吗?”
哦,从哪里开始?你以为。 “我在制作数字自动机并将它们放到世界上以实现我的目标方面拥有丰富的经验。我曾在 MovieFlix 等大公司工作,在那里我帮助创建了 morbillion 流行电影并发流的基础设施背景和电视节目。我也参与了很多我不能谈论的项目,但你现在至少从其中三个项目中受益。我正在考虑加入一家较小的公司,这样我可以更深入地了解每个人个人层面。作为机器中的匿名齿轮只有这么长时间才有吸引力。
“杰夫”的脸上浮现出一种好奇的表情。他看起来像是刚刚找到了一只独角兽,尽管它对冷酿有着严重的瘾。 La trinkajxo de la dioj。他继续说道:“哇,你最喜欢的基础设施项目之一是什么?”
“可能是我们对一堆 OS 内核进行了基准测试,以确定哪个最适合 MovieFlix 后端。我个人希望 Linux 会赢,但在epoll(7)
完成后我们最终选择了 FreeBSD跑得更快。我们都对此感到惊讶。我想我仍然对 FreeBSD 有一点承诺。”
男人一脸震惊。你赢了。现在看看这个“杰夫”会带来什么其他乐趣。
“好吧,这主要是一种形式,但我想做一点现场编码。你听起来像我们在 Techaro 寻找的那种背景,但我们需要完成这个编码挑战,以确保每个人都在同一个球场上。你觉得这听起来好吗?
你点头。 “杰夫”正要玩得开心。
“好的,我会给你发一个这个网站的链接,它会有一点排序挑战。这里有一系列数字,我希望你对它们进行排序并解释排序是如何工作的。”
“我应该用什么语言来做?”
“任何语言都很好”
他犯了一个错误。快速移动,在他收回之前。
import Control.Concurrent import Control.Monad import System.Environment
sort values = do chan <- newChan forM_ values (\time -> forkIO $ threadDelay ( 100000 * time) >> writeChan chan time) forM_ values (\_ -> readChan chan >>= print)
main = getArgs >>= sort . map read
“……这是干什么?”
“在恒定时间内对数字进行排序。这是我所知道的算法上最快的排序,也是我最喜欢的排序算法。”
“……但是怎么样?我没有看到任何比较?”
“你不需要比较数字来对它们进行排序。有时只需要休息一下。运行它,它会工作的。”
“杰夫”看起来像是看到了鬼。也许他的房子闹鬼了。它比你想象的更常见。这几天有很多鬼在四处游荡。
您听到了几下键盘敲击声,然后是回车键。他的脸色一变,然后一脸惊愕。
“……S.那么这本身是如何工作的?我从来没有见过任何人做这样的事情。”
“这就是 sleepsort。它是我所知道的唯一一个恒定时间排序算法。它的工作方式是为每个要排序的数字生成一个单独的绿色线程,然后将该线程延迟该值乘以 10 万微秒。这将对数字进行排序。”
“那恒定的时间如何?它所花费的时间不取决于输入吗?”
你微笑,他已经中了你的圈套。 “时间复杂度不会因为时间等副作用而烦恼。你只需要睡一会儿。事情会自行解决。这是不可避免的。”
“杰夫”愣在原地。一开始你觉得他的震惊有点过分了。然后你检查了,只是为了确定。那样的震惊可能会毁掉他可爱、温和的晒黑肤色。 “你还在那儿?”
“是的,我在这里。我以前从未见过。这是一个非常……有创意的排序算法。你会如何优化它?”
转眼间,一行代码发生了变化:
-forM_ values (\time -> forkIO $ threadDelay (100000 * time) >> writeChan chan time) +forM_ values (\time -> forkIO $ threadDelay (10000 * time) >> writeChan chan time)
“现在快了十倍。”
说到这里,“杰夫”再也忍不住了,笑了起来。他放开了,笑了,那种笑,你只能在一个失去它的男人身上看到。你担心“杰夫”。他脸色苍白。
“你为什么要用这么奇怪的排序算法?”
“你为什么用这么奇怪的问题?”
安定下来后,他做出了一个你很熟悉的表情。你太强大了,你不能被束缚在那里。 “Techaro”还不够复杂。你只需要在 Kubernetes 的绞肉机上苦苦挣扎,即使在 Typhoon Digital 中使用一台专用服务器就可以了。你的衣橱里有一块备用的开发板,即使它也可以。
你做得太快了。这不值得挑战。你打完电话,又喝了一口冷饮。拒绝电子邮件迫在眉睫。你知道这不可能发生。
锁定战斗站并拔下解锁钥匙,您将溜回您宝贵的避风港。把自己埋在毯子里是最安全的选择。
不存在的甜蜜幸福再次亲吻你的脸之前,手腕上又被轻拍了一下。他们已经回邮件了。千方百计,他们想雇用你。对于一大笔钱,足以让它值得你在那里忍受的任何垃圾火灾。你想知道他们是否知道他们在做什么。你决定睡在上面,事情肯定会在晚上自行解决。
原文: https://xeiaso.net/blog/sleeping-the-technical-interview