面试官毁掉技术面试的三大法宝
在伴鱼的三年,我作为面试官参与超过 100 场面试,遇到许多风格各异的候选人;最近的两个月里,我也作为候选人参与将近 30 轮面试,见过不少形形色色的面试官。在参与这些面试的过程中,我心中逐渐累积了一些对面试的看法,本文我想站在面试官的角度,谈一谈面试官毁掉技术面试的三大法宝。
在伴鱼的三年,我作为面试官参与超过 100 场面试,遇到许多风格各异的候选人;最近的两个月里,我也作为候选人参与将近 30 轮面试,见过不少形形色色的面试官。在参与这些面试的过程中,我心中逐渐累积了一些对面试的看法,本文我想站在面试官的角度,谈一谈面试官毁掉技术面试的三大法宝。
在最近的工作中,为了做数据分析,我开始写一些复杂的 HiveSQL。每次执行 HiveSQL 时,都会看到 Map/Reduce jobs 被调度、执行,直到最后展示出数据。渐渐地我心中多了两个疑问:
MapReduce 引擎如何工作?
SQL 是如何被翻译成 MapReduce job 的?
为了解决这两个疑问,我用比较熟悉的 Go 语言实现了一个玩具版本的 MapReduce 引擎,然后基于此实现基本的 select,join。
本文相关的源码放在仓库 ZhengHe-MD/pset · GitHub 中,欢迎查阅。
最近,我们在公司内部做了一些 Hacking Growth 方向的探索,我们团队俨然成了增长团队,从用户增长、转化的各个环节上尝试不同的策略,拉新、激活、留存、促活、商业化,整个核心流程是一个大漏斗,不同的阶段和渠道又可以拆分成不同的小漏斗,哪个环节损失大就优化哪个。但无论做何种尝试,都绕不开 A/B 测试。
Accuracy 和 Precision 是在科学技术领域中经常出现的两个概念,本文将通过一张图来捋一捋二者之间的区别与联系。
在和不同地区的人聊天时,我们常常会有疑惑:为什么有些人说话时分不清 x 和 y?这里的 x 和 y 可能是拼音中的 f 和 h,l 和 n,l 和 r,z 和 zh,ang 和 an。比如,我明明是福建人,为什么别人以为我是胡建人?在最近刚刚读完的一本书《Fluent Forever》中,有两张图片正好能解释这个问题。
每个工程师来到新环境,大概率需要从维护老项目开始切入,逐渐熟悉公司的技术栈和效率工具。这时候,老项目的一些习惯,如命名、布局、错误处理等等,不论好坏,都会不自觉地影响新人,形成路径依赖。在这个过程中,如果没有人主动去思考为什么,这些习惯也将被无理由地继承下去。
💡 人们常常高估自己一年能成就之事,而低估自己十年能成就之事
尽管我的博客中绝大多数内容都与计算机相关,但实际上我还有另一个身份:经济学学士。在对外经贸大学度过的四年,是我对人生的认识井喷的四年。毕业之后选择计算机,并不是因为我厌恶经济学。相反,在学习经济学的过程中建立起的心智模式,一直对我的学习和实践产生着指导性作用。
在货币银行学中,有一个与金钱的时间价值紧密相关的概念:复利,即本金产生的利息会在下一个计息周期成为本金的一部分,用大白话来描述就是「利滚利」。用经济学的概念去解释生活现象,是我很喜欢做的一种心理实验,甚至有时候我会相信任何一个经济学的概念都对应生活中的某个隐喻。在我看来,复利的隐喻就是坚持。在过去的经历中,坚持在许多层面给到了我奖励,而且这些奖励会随着时间的推移自我增强,就像利息追加进入本金。
What I cannot create, I do not understand. – Richard Feynman
Andrej Karpathy 在 2015 年发表了题为 The Unreasonable Effectiveness of Recurrent Neural Networks 的博客,并配套开源了其中实验所用的 char-rnn 代码仓库,以及用 numpy 手写的 gist: min-char-rnn,阅读过后受益良多。于是最近花了一些时间做了下面这些事情:
逐行理解 min-char-rnn,即 vanilla RNN
实现 N 层 vanilla RNN
实现 LSTM (Long Short-Term Memory) RNN
探索 RNN 的可能性
整个探索过程对我而言充满了趣味和挑战,并且在实践中令人激动地首次使用微积分的知识。尽管这只是深度学习的冰山一角,但足以让一名主营业务为服务端开发的软件工程师感到激动不已,于是便有了这篇博客,将这个过程记录下来。
因为平时需要阅读大量的英文资料,翻译对我来说是一个高频需求,但我一直没能找到一个足够趁手的工具。对于一个理想的翻译工具,我有三点期望:
前阵子无意中发现了一个系列教程:「Let’s Build A Simple Interpreter 」,简称 lsbasi。本来只是随便翻翻,但刚看完 Part-1 就发现作者 Ruslan Spivak 不仅是一个出色的软件工程师,文笔也相当不错,更难得的是他对学习这件事本身有着很深入的理解,这些见解甚至反馈到了这套教程的设计上。