一定要看,谈判薪水的技巧,同样的职位多拿20%

Cash counting stock equity refreshment for google

最近骑驴找马,面经一般般,但是要钱颇有一些心得。据说同样的职位印度人平均比中国人高20%,这20%就是人家要来的。因此把经验和大家分享分享,赚几个包子。

如果你不讨价还价,HM搞不好认为你不qualify,又或者会很快跳槽。:P

首先大原则是要遵守游戏规矩。讨价还价是正常的,答应又反悔是最不好的,还不如先去工作半年再说。有些国人拿到offer不敢讲价,生怕触怒对方,然后有了更好的offer又想反悔之前的诺言,这最要不得,根本是吃了亏还要挨骂。

然后要知己知彼,求职者自己是一边,另一边是HR,HM,有时候还有第三方的猎头。猎头的commission机制最近似乎有些改变,不再有动力帮我们讨要更高的薪水,而是更加愿意低价成交,速度第一。有一点一定要注意,如果通过猎头找工作,一定不要跳过猎头,否则公司也会认为你不懂规矩。HR会从HM那里要个薪水范围,然后尽量以最低的价钱,最快的速度雇HM要的人。至于这个人是否合格,不是HR考虑的事情。所以无论如何,多要个20%左右是可以的。如果自己感觉面试结果很好,可以要更多。这时HR就会去询问HM,而对于HM来说,钱反正不是自己出,找到能干活的人最重要。所以大家尽管要。

如果一开始对方问你现在的薪水或者期待的薪水,就说市场平均,然后反问,这个职位的薪水范围。尽量避免这个问题,实在不行,给个范围,不要给确定的数字。对了,玻璃门上的薪水似乎都是偏低的,所以只能当成下限。

薪水谈判最好能有多个offer,这样可以leverage,但是这样做也是有技巧的。最重要的仍然是一旦答应,就必须去。注意如果你说个数,然后人家match了,这样也默认你应该去了。所以要说:我从另一家拿到了多少多少,而且这是negotiable的。这样就仍然有余地。

谈判最好不要超过两轮,避免给人贪婪无信的印象。这里的关键就是拖,跟对方说,我现在还在等待更多的信息,无法决定。如果对方威胁要收回offer,而你觉得后面的offer更好,那也就表示理解好了。他们多半不会真的收回的,就算收回了,这公司可能并不是很器重你,那不去也好。

如果你说了个数,人家答应了,但是你又反悔了,也还是有办法的。我自己这里就犯了个错误,把A家offer的数字告诉B家了,其实告诉存在这个offer就好了。
然后B家比A家多出1万,这时他们就认为我会去了。但是我告诉他们,这个数字还是太低,他们有些生气了。

这时我就告诉他们,我说的A家的数字没有包括20%的bonus,所以如果他们beat这个还不够。如果他们出xxx这么多,我就happily accept。

这样base就定下来了,一般情况下,接着谈bonus,PTO,绿卡,等等。随着对方答应你的更多,他们就更希望你去了。

简单说一下我自己的实例吧:

第一个offer是公司A,给了9万。我说我的底线是12万。于是改为12万。我说我会认真考虑,但是还有两个面试结果没有出来,请给我几天。对方威胁说还有好多人在我后面等着。我说知道了,很感谢他们把我作为No1,但是现在无法做决定。之后对方反复催,但是坚决不肯再提高。我自己也没有提要更多钱。因为一旦说了个钱数,对方match了就应该去了。

两天后第二个offerB,工资未明,10万以下,猎头说需要我的commitment才能给。我说现在无法commit。猎头说对方可能会收回offer,我说我很理解。
再两天后最后一个offerC,已经比其他两个base高,我说给的有点低,请容我和爱人商议。由于我的失误,对方已经知道offerA数字,于是质问为什么。(因为他们觉得beat了我的数字之后,我就应该去了。)我说我给的数字A没有包括20%的bonus,因此如果你们给14万,我就很乐意接受。

同时我把数字C告诉了公司A和B。公司B果断决定无法beat,收回了offer,我表示理解和感谢。公司A说要考虑,我跟他澄清这只是C给的数字,是negotiable的,意思就是即使A给这么多我也要考虑。后来A表示无法beat,但是如果我改变主意,仍然欢迎我。我表示感谢。(没有指望A和B能够beat C,否则我会先和AB说,leverage一下,即使我最想去的是C。)

最后,C同意14万,我接受了。跟之前面过的所有公司发一轮感谢信,并且跟所有正在面试的公司说明我已经接受别家的offer了。

最后皆大欢喜。:)

Due Diligence: Where to Avoid When Investing In Indianapolis

When you invest in Indy, be sure to avoid these 6 area because:
these areas account for 4.7 percent of the Indianapolis population, but for 27 percent of the homicides and 30 percent of non-fatal shootings.

Six areas around Indianapolis that produce a disproportionate amount of the city’s violent crime will get extra attention from police over the next year. These areas have overall higher rates of homicide, shootings, police runs and drug overdoses.

According to public safety director Troy Riggs, these six areas account for 4.7 percent of the Indianapolis population, but for 27 percent of the homicides and 30 percent of non-fatal shootings.

The city’s goal, announced Thursday, is to reduce crime and enhance the quality of life in what they describe as the city’s most challenging areas.

“We believe they deserve better,” Riggs said.

Rather than more police, Mayor Greg Ballard says the approach is about finding ways to provide more mental health resources and more food for needy kids in the targeted areas. He says it’s a “more holistic” way to address crime.

2015的两个数据点,facebook,google的Offer和面经

Cash counting stock equity refreshment for google

以下是赤裸裸的转载:
Offer:
=====
背景:非cs PhD+两年半经验
申请了Amazon,FB 和 G。
A家Rejected:1st 电面遇三哥,被黑
f家Offer:        ~24w/year + 5w sign on
g家Offer:       ~25w/year + 3.5w sign on
两个Offer都很好,很难选择,最后去了狗。

FB 是板上的大哥帮我内推的,人非常非常好,很热心,很可惜最后没去,特别特别的
感谢他。
G家是哥们内推的,帮忙收集了很多准备材料,有问必答。
最感谢的是,老婆,岳父,岳母,提供充足的后期保障,说实话,照顾宝宝比什么写码
刷题,累得多。

面经:
====
A家电面:
———–
三哥,出了5道题,30分钟全部搞定,还是被黑了。当时没有经验,应该面试完后
立刻投诉。出结果后才向HR投诉,未果。
1 given 2 strings,can you construct str1 using chars in str2?
2 binary tree inorder traversal,both recursively and iteratively
3 erase given value item in linked list
4 how to debug memory leak in c++?
5 design a parking lot.

F家:
——-
电面:
华人大哥: 一个数组里有多个最大值,等概率随机返回其中一个最大值的index,
要求one pass。LC 的 permutations

Onsite:
1 国人大哥(人很好,放我的水): merge k sorted lists, best time to buy
and sell stock。
2 印度经理: 背景+behavior+一个编程:code base在某个版本开始有bug,找到
这个版本。
3 老美: LC 的 minimum window substring, decode ways。
4 中东人: LC的valid palindrome。 给1, 2, 5面值的纸币,有多少种组合凑
出100 块钱。
5 三哥:设计题,传输10G的data到5个data center,每个data center 有1000的
节点。三哥从问背景就开始找茬,面试过程中要求解gossip protocol的微分方程, 被
黑。
面试完,立刻投诉三哥,因为所有其他面试官都给了strong recommend,于是加
面设计题
6. 老美(高级别,大牛人):设计iPhone Find Friends 的后端。Geohashing +
DHT解之

F家的面试官水平都很高, 都很乐意和你讨论他们的project, 当然如果你很恰当的给
出comment,会给你加分不少。
设计题问得很细,比如DHT如何实现,单机的Hash table如何实现能节省内存, 如何做
concurrency control,如何实现mutex之类的。
三哥中有好人也有坏人,坏人不少,好人也很多,不用遇到三哥就紧张。万一被坏三哥
黑了,不要影响心情,继续完成好接下来的面试,你很有可能拿到加面的机会。

G家:
——–
因为签了NDA就不细说了。感谢一个浙大的国人大哥,面试的时候给了很多引导。

面试准备:
========
F家的算法:
—————-
1. F家的题基本上都是Leetcode 的原题和变种。把leetcode的题研究透就OK了。
2. 跟F家的HR 聊过, 如果你想拿到面试官的strong recommendation, 需要在一
轮面试中做完两道题。每题15-17分钟完成,包括和面试官讨论,写代码,以及写test
case 的时间, 同时尽量bug free, 不一定要optimal solution。
3. 时间很紧,所以要多练习白板码,多练习在白板上跑test case。写多了就会发
现,白板码上写出bug的概率比用电脑写低很多, 因为白板上可以通过图表的形式很直
观的跑test case, 很容易发现bug。
4. 面试的时候,自己带fine tip marker, 比粗的笔写代码快很多。

G家的算法:
————–
1. G家的题库很大,而且经常换新题,我面试的时候一道都没有见过,所以刷题用
处不大。
G家的题基本上都是经典算法的变种。如果对经典算法很熟练,面试的时候很快
就可以想到解法。
2. 复习经典算法,推荐看一下Sedgewick 教授的算法书。http://algs4.cs.princeton.edu/home/
相比算法导论,我更推荐这本书,因为这本书的算法是用Java而不是伪代码实
现的,而且代码写的非常简洁而优雅。
Sedgewick教授的书里没有 DP专门的章节,看看算法导论作为补充。
3. G家喜欢考各种tree:prefix tree,augmented binary search tree (with
rank and select APIs), segment tree,binary index tree (1D and 2D),
interval tree, kd tree, quad tree.
4. G家喜欢考几何题,推荐:
topcoder的教程:http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/
Sedgwick的介绍几何算法(sweep line之类)的video:https://www.
youtube.com/watch?v=Igr6yONkpIQ
5. G家关于设计棋类游戏的AI的题,基本上都可以用MinMax 算法解决: http://neverstopbuilding.com/minimax
6. G家和F家都会考 Thread-Safe data structure和 Threading Pool,推荐阅读C
++ concurrency in action的第六章和第九章 http://www.manning.com/williams/

系统设计:
1. 我基本没有web development的经验。和我一样0经验的同学可以先上一门课,
推荐Reddit Cofounder 开的web development
的课( 讲义和课程project都非常好):https://www.udacity.com/course/viewer#!/c
-cs253/
2. 对于distributed system不了解的同学,推荐coursera上的Cloud Computing
Concept:https://www.coursera.org/course/cloudcomputing
3. 系统设计里边,最重要的部分是Data Storage和Data processing。
Data storage包含:
a. Distributed File System: 推荐看一下GFS的paper和FB Haystack
Photo storage的paper
b. NoSQL Data storage: 推荐看一下Big Table的paper,了解一下
Cassandra 的架构:Cloud Computing Concept的课有讲
c. Memcache
Data processing:
看一下Map-Reduce的paper。了解一下Map-Reduce能解决什么问题。如
何做job scheduling等等。

4. 板上大牛收集的题库:https://www.evernote.com/shard/s21/sh/c2035c38-
1a80-4fd4-8c93-8ca0ad9ffb48/35079ac1bf5ae3ea
大多数题,解题的时候,按三步走:
a. 如果数据量小,如何在单机上实现。
b. 如果数据量大,如何sharding data,如何实现scalability
c. Fault tolerance,考虑有node failure和message loss的时候这
么处理。

最后,祝大家都有好offer。