面试经验总结 一

坐在图书馆,下面一个作业是,拿C语言,实现 malloc 和 free 函数。尽可能的高效,必须安全。
突然觉得有点恶心,现在不想写。
于是开始做一件重要的事,总结面试经验。
的确,一路走来,跪了这么多家,我自己有很多没做好,而这,都是财富。

我下面说的,都是我碰到的实在问题,各个方面。
从Google 说起。

Google: 谷歌前,买了杯咖啡。喝完了。呆了半个小时后去面试地点开始面。
还是小房间。
题目是, 设计题目
建立一个王朝。
王朝只有一个皇帝,
皇帝有很多儿子,每个儿子又可以有很多儿子。
这样,我就想起了一棵多叉树。
然后,每个人都会死去的。

下面实现三个函数。

1. 让这个string代表的人,死去。
die(String curr) {}
2. 让string 代表的parent生下一个孩子。
born(String parent) {}
3. 打印整个皇朝,dfs 的方式。
print(Node root) {}

题意差不多就这个意思。
然后让我从头到尾写出来,实现这个系统。

我记得当时我用了两个hashmap + 一个多叉树
一个hashmap, 存 <name, Node> // 这个名字对应的结点
一个hashmap, 存 <Node, boolean> // 这个结点的人死没死
然后多叉树就是
Node {
String name;
LinkedList<Node> children;
}

然后上面三个操作都可以很简单的做出来。
打印的话就用dfs
死亡的话就把对应结点找出来,标记为true
生的话,就找到parent结点,给他加一个孩子。

于是 follow up来了。才是重点。
这棵树有多深?
depth = logD(N),
那么大概有多少个结点?
D ^ depth
如果有100个朝代,大概N在什么数量级?
D ^ depth
那么print的时间复杂度?
O(D ^ depth)
那应该很大吧?
恩。
优化一下?
然后我发现,其实一个人最多能活个两三个朝代。
对于死去的人,我还是简单地存在树里,只是标记为死亡。这样,他们其实浪费了空间时间,而没有任何意义。

所以不能这么做。要把他们从树里面删除。那他们的孩子呢?
在把他们的孩子,一个个移动到 parent 的 children list里面的前面。
这里,一定是插在这个链表的前面,才能保证dfs的时候顺序不变。
这样100代以后,其实活下来的人,也就只有三层这样,会大大减少复杂度。

这道题目不难,但是要完全的写出来,还是有一定难度。还有许多corner case 需要考虑。比如,老皇帝,root死了,怎么办?所以要有一个虚root结点。

当时感觉发挥的还不错,但是还是没有一下子就考虑清楚,然后就开始动笔。真的不好!
**
所以,当你看到一道题目,觉得自己有把握做出来的话,一定要考虑点时间,想清楚了,任何细节,不想没想清楚就开始写,一边写一边想,往往会出现问题。
**

还有,当时喝了咖啡,面试的时候,特别想上厕所。
这真的也得注意。面试前不要喝太多水。面试一般持续一个半小时到两个小时,期间,如果因为这个而分神,就太可惜了。

然后就是第二面。做了两题。
题目就不具体说了。很难。
我觉得有一些经验。
第一题,应该说是这次面试中的最难题吧。我当时没思路,就开始瞎讲。本来想糊弄过去。但我发现,谷歌的程序员,真的不是傻逼。都很聪明。他们不懂的,都是我逻辑思维里面,自己也不懂的,我含糊其辞的。
所以,我越说越乱。
所以。下次碰到不会的题目,先好好想想,不要2分钟觉得不会就放弃了,就开始瞎讲。
想想,应该用什么数据结构,用最暴力的解法,该怎么做。
然后把 brute force的解法说出来。讨论这个解法,为什么复杂度这么高。他这么慢,肯定有原因的。找出这个原因。
然后,优化他。 dp, hashmap, 等等。
数据结构就是我的刀剑,我要用好他们。
然后第三题目,他给了我很多提示,真的就差那么一点,没想出来。
出来后就想到了。面试的时候,人还是有点蒙。这个很难调整,还是经验不够。


下面讲讲昨天的面试。我觉得有很多可以总结。
这是一家 startup。
上来是问简历,问了我JPA,这些。我答的还不错。
然后问我在做的一个project,是不是用xml传送信息的。我说是的。
然后看我简历写过json,就开始让我现场写json
其实这个真不难。放在上学期,我肯定写出来了。
但这学期都在忙着写,php, 普通的java,aws等等,json具体的细节我忘记了。
我只记得,他是一个个的键值对。
{"key", "value"} 结果我忘记了,中间不是逗号,是冒号。



{
  "firstName": "John",
  "lastName": "Smith",
  "isAlive": true,
  "age": 25,
  "address": {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": "10021-3100"
  },
  "phoneNumbers": [
    {
      "type": "home",
      "number": "212 555-1234"
    },
    {
      "type": "office",
      "number": "646 555-4567"
    }
  ],
  "children": [],
  "spouse": null
}

https://en.wikipedia.org/wiki/JSON

我当时心里很冤枉。再重说下过程。
他问我写过json吗?我说我简历第二个project就是写json的,我
很熟悉!
然后他就开始让我写了。当时我整个人就慌了。。。
后来写出来,细节错了。
说实话,心里很委屈。
我真的写过。真的写过,写了也很多很多。
但是最近这几个月,我没有再碰json,所以具体的语法结构,我忘记了,但这个,真的这么重要吗?你给我2分钟,看下格式,我就立马可以记起来,给你写出来。
but, 还是,我的错。对简历,没有百分百的熟悉。
所以,还有好好看看github自己写的代码,真的,会有人问,让你重写的。
下面的问题,我已经慌了。
然后接着问了一个MVC,恰恰也是我第二个project采用的思想。
我也说,我用过。

给我一个string
"Dehua Liu, 101 Guandong Road, 12034, Coke"
firstname, lastname, address, postcode, favouriate drink
然后扫描这个字符串,形成这样一个结构。
这很简单,我就写了这么一个类,然后在构造函数里面,实现这些。

当时他就接着问了,
先问我 MVC的基本概念。
https://en.wikipedia.org/wiki/Model–view–controller
https://developer.chrome.com/apps/app_frameworks
(记住, controller 同时还需要负责将用户数据写入db)
问我这个是 model 还是 controller
我当时还没有从json的余波里解放出来,人很失落,脑子短路,想错了,说是 controller
哎,怎么可能是controller 呢。。。
他问我确定吗,我说确定。
然后他跟我说,你在controller里面检查输入输出吧。
我说是的。
然后后来我想了下,改成了model。这的确是model啊。一个人的model。
controller 从view拿来数据,string,传给model
为什么我会答错。
然后我改了。
他说你又觉得他是model了啊。
估计觉得我是傻逼吧。。。水比。
然后问我,为什么在model里面要检查输入。

不想再回忆了。整个过程,我太痛苦了。对面主要是一个阿三在提问,虽然题目没有太难。但真的,细节东西我忘了。我最近写的占据了我的大脑。那些json细节,都记不清了。
还是我,不够了解自己的简历吧。
还有,MVC,我的理解还不够深刻。
这次要好好补习下。
再好好面对下次。

最近找实习,真的感觉跟找全职差不多了。。。

总结先到此为止。
加油。

Anyway, Good luck, Richardo!

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

推荐阅读更多精彩内容