搞定技术面试

by zkback


如果你想找到一份软件开发者的工作,那么你不得不通过一个白板面试。我们像个勤奋的工程师一样把这些作为清晨仪式的一部分,与遍及精神星空的未知地的美丽网格一起,情不自禁地跑一遍旁边的目录以防我们存放“旧拖拉机、螺丝刀”的厨房在晚上有什么东西移动了,还有那些特定的垃圾数据:附属品、那些内向的让人感到陌生的家庭(器具)成员,他们现在已经忘记了初心,可能从来都不知道,但却是我们多关心的。我像让你搞明白一个面试中的普遍问题:反转链表。

首先,我们需要一个链表。清空你的不需要的工作空间,在受保护的表格里用两条递归和插入语填一些数据。

(defn cons [h t] #(if % h t))

“那不是个链表,”面试官说,“那是个‘if’的条件声明。”
“还有什么是链表,”你回答,你的眼睛开始发光,“或者可替代的?”

user=> (def x (cons 1 (cons 2 nil))) 
#'user/x user=> (x true) 
1 
user=> ((x false) true) 
2 

“x 的值到底是多少呢?”面试官变得友好以来。在 REPL 回答,但不能被立刻欺骗。他们不是朋友。你的协议书禁止了这么做。

user=> x
#object[user$cons$cell__4431 0x3b89cc1c "user$cons$cell__4431@3b89cc1c"] 

“认识一件事物的最好方式是去命名它,”你提议道。真实的命名有它自身的力量。K语言被勒恩坡发明,是一种最经典和简洁的一种。用你名字的一部分去灌输一种语言就是放弃你自身的某种元素。你记忆中的自身的最初的疼痛。

“嗯,OK,所以你怎么从这个表里获取一个元素?”

你头脑中的表达式如此美丽,就像在你脚踝边展开的一个红色地毯,就像昨晚的奥斯卡,你渴望着众多明星的亲吻;就像你在山峰漫步,呼唤你的爱人——月亮。

(defn nth [l n] 
    (when l (if (= 0 n) 
        (l true) 
        (recur (l false) (dec n))))) 

“你能展示一个规则的列表吗?就想用 Python?”

你把自己的牙齿咬得嘎嘎响,双足在地板上跳舞,搞通了一台印刷机。现在你的双手布满了老茧,你的眼睑全是眼屎、黑眼圈和昏昏欲睡的困倦。每个行为都有代价,当然,对于功能函数而言,只会有单方面的影响。

(defn prn-list [l]
  (print "(")
  (loop [l l]
    (if (nil? l)
      (print ")\n")
      (do (print (l true))
          (when (l false)
            (print " "))
          (recur (l false))))))

没时间在这里描述变量、示例、文档字符串。在白板面试中,时间是核心。假设你是一个Haskell程序员, 像你的外祖母一样,继续她的工作。

user=> (prn-list (cons 1 (cons 2 (cons 3 nil))))
(1 2 3)

这时,面试官笑了,开始重新评价。我们之间至少很熟悉了,“因此,为了撤销掉,你可以……”

你抓住他的手,他的头脑像一个慌乱的松开的机械装置,轻柔地解开股票绦虫,四处瞥的心不适得其所,用古老的口音朗诵一首短诗。

(defn reverse [l]
  (loop [r nil, l l]
    (if l
      (recur (cons (l true) r) (l false))
      r)))

user=> (prn-list (reverse (cons 1 (cons 2 (cons 3 nil)))))
(3 2 1)

当你松开你的手时,他口吃却又礼貌地说起一些事情,紧接着拉紧风衣帽的拉链来保护冰霜的侵害。那里有另外的会面,但你不需要参与,以自己的名义发送一个十分金币。

他们当然会拒绝,从没有这样羞耻过,把缺少适合的文化作为原因。你消瘦的脸庞重新焕发出新机,随后消逝于窗户。这片地方从来不能限制你。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • 内容简介 其中包括20个最常用的对员工能力素质要求的具体行为描述,以及全方位、多角度的求职面试攻略;收录了宝洁、汇...
    少穻阅读 4,636评论 1 67
  • (一) 这是公主被恶龙囚禁的第九天了。恶龙还是照例一日三餐亲自送来佳...
    姚伊益阅读 1,929评论 0 3
  • 我疑心有这样一种精英主义病症,人物符号化。但是现在突然总结不出了,以后想到再写吧。
    waitbutwhy阅读 142评论 0 1
  • 买家:彩墨小妞 卖家:剽悍一只猫 产品名称:22天的大礼包(行动营干货集) 状态:已全部查收 评价:好吃,货真价实...
    彩墨_007阅读 773评论 28 43
  • ofo(小黄车):芝麻分650及以上免押金(99元)。收费1元1小时,充值最高100得200。全区域,数量较多。有...
    春少邪阅读 1,350评论 0 0