YangFan.net

February 27, 2007

马寅初像

马寅初像
拍摄日期: 2007年2月26日
拍摄地点: 30º 15' 39.16" N , 120º9'40.95"E

00:05 | Album : HangZhou, China | Category : Photo | Add Comment

马寅初旧居

马寅初旧居
拍摄日期: 2007年2月26日
拍摄地点: 30º 15' 40.45" N , 120º9'41.11"E

  马寅初旧居位于杭州市庆春路210号,主楼建于清末,建筑面积486平方米,共三层,为中西式砖木结构花园别墅;三楼阳台正南墙上方镌刻着“竹屋”二字,故此幢小楼亦称“竹屋”。竹屋是马寅初于1936年购买的住宅。1936年至1937年夏,曾在此屋居住。1945年抗战胜利后的一段时间,和1949年8月至1951年任浙江大学校长期间也曾在竹屋居住。马寅初的部分经济学论著和演讲稿在竹屋撰写。马寅初旧居于2000年7月列为杭州市文物保护单位,2005年3月列为浙江省文物保护单位。

00:02 | Album : HangZhou, China | Category : Photo | Add Comment

February 24, 2007

相机坏了

  症状:调焦的时候会突然自动跳电。多测试几次后,电池就报没电了。轻轻摇动相机可以听到镜头拉伸的地方有响声。
  诊断:里面某个零件松了或者掉了,调焦的时候镜头拉伸导致瞬间短路。
 
  不知道这个简单的问题要修多少大洋。
  
  UPDATE:出问题的原因是,买了四节带不动镜头马达的劣质电池……修理费为0。
Tag:
12:51 | Category : Blog | Comment (1)

February 18, 2007

天上人间尽和谐

  本年度春节晚会,其实不如改名叫和谐晚会更加切题。本来狗年遛狗猴年耍猴,到了猪年,大猪小猪也该出来落一下玉盘的,但是为了与穆斯林同胞们和谐,愣是整台晚会没出现一个猪的形象,也没一个和猪主题相关的节目,连贺电都是祝的新年快乐而不是猪年快乐,等到了猴年马月,炒冷饭都不用再做修改。
  把猪赶回高老庄算是暗地里和谐,那明里的就更多了。先是所有歌曲节目大标题都叫欢乐和谐,然后是四副对联以和谐收场,最后是一干老一辈戏曲艺术家用南腔北调分别高唱天上人间尽和谐,将一台和谐晚会送上了高潮。
  当然也有不和谐的。零点报时的时候,主持人们纷纷抢词竞相出丑。可惜的是如此精彩的场景只有直播的时候才能看到,重播的时候就已经被和谐掉了。
Tag:
16:32 | Category : Blog | Comments (3)

半个小品

  一台春晚下来,基本看不到好的语言类节目,能看的小品也就半个——赵本山《策划》的前半部分。从不务正业的公鸡暗讽牛群开始,又讽刺了一圈成名后就变样的名人,以及无孔不入的狗仔队,包袱一个接一个,而后半部分,则回到了卖拐的老味道上。当然,一个虎头蛇尾的赵本山也强过了黄宏郭达一干人等,也难怪CCTV一台大戏最后还是要让老赵来压台。
  一台春晚精心挑选的相声小品,能引人真心发笑的笑料,还比不过一集《武林外传》。
Tag: ,
00:01 | Category : Blog | Comment (1)

February 15, 2007

Google Offer

  下午收到了hr的电话和email通知,正式offer要到年后,不过总算可以安心过年了。
Tag:
23:27 | Category : Blog | Comments (10)

February 12, 2007

米兰的队歌

  今天AC米兰2:1战胜利沃诺之后,全场三万多铁杆的套票球迷一起高唱米兰队歌。他们唱的,是上世纪末经典的米兰队歌,而不是后来的新版队歌,可见队歌是否官方并非最主要的,好不好唱好不好听才更重要。
  另外,肥罗已经不会过人了,不如学习因扎吉,做个机会主义者更有前途一些。
Tag: , ,
00:07 | Category : Blog | Comment (1)

February 11, 2007

小狗闹闹近照两张

  和国庆那次回来相比,变化还是很大的,毛都长开了,从短毛狗变成了长毛狗。
  naonao naonao
15:49 | Category : Blog | Comments (2)

February 10, 2007

第一次见到iPod死机

  今天上飞机前,iPod突然就罢工了,歌不播了,屏幕也死住了,按任何键没反应。这时候才发现,没有开关,没有reset在这种情况下并非什么好事。幸好长按menu+select可以重启。
Tag: ,
21:56 | Category : Blog | Add Comment

February 1, 2007

2007.1.31 Google on-site interview

  去年国庆期间让赵总内荐投的Google APM(Associate Product Manager)。投了也就把这事扔一边了,因为一直不知道APM是否招非应届的,所以几个月没消息也挺正常。
  元旦之后接到Google HR电话,问我是不是投了Mobile Wireless Application Engineer,我一愣,然后明白是APM不要我,又看我背景有Mobile开发经验,就给我扔这里了。于是HR和我约了笔试时间。尽管不是想去的APM,但是至少Google本身就足够有吸引力了,Mobile也是我熟悉的方面,既然能去试试,当然是不去白不去,能弄个offer就更好了。
  Google对我来说,吸引力在于:一,今年上海分舵就要开张了,去了Google之后就完全不用担心将来回杭州/上海之后的失业问题。二,做久了小团队小项目,也想去丰富一下大团队做大项目的经验。三,Google的工作环境可以让我吃喝不愁,同时也有不错的薪水。四,想离开技术,做些其他事情,不过这条没有实现,Google把我的应聘职位换回了技术职位,使得我还得继续和代码打交道。

  笔试还是很让我伤脑筋的,好歹三年多没有参加过笔头的测试了,会不会写字都是问题,于是问熟悉的Googler笔试都考些啥,他们都告诉我不用紧张不用准备,去了就是,肯定会。笔试的时候拿到卷子一看,就知道他们说的肯定会是什么意思了,基本上大学学的东西只要没有全部还给老师,这个卷子就能答得八九不离十,可惜的是我还是有一门课还给了老师,导致有一道选择题不会做——当然我怀疑更大的可能是当时没有学这方面的内容,否则题目和四个选项我也不至于完全看不懂。只能蒙了个看上去更像答案的选项,然后在边上大书了“猜的”两字。其他题目都没有什么大问题,差不多20分钟就全部搞定了,然后又磨磨蹭蹭检查了20分钟,什么都检查不出来,于是交卷走人。
  笔试后大约两周多接到的面试通知,1月31日上午10点,on site。我原以为还有一个电面,还担心这么多年没怎么说英文,听力和口语能不能过关,后来知道技术职位笔试和电面两个有其一就可以了,而且就算是电面,多半也是中文的。面试前还是很紧张的,又探听一把面试是啥样的,结果得到的答案和笔试前差不多:翻翻数据结构图论组合数学算法什么的书,忘记的记一下,就可以了,没什么可准备的。

  前一天晚上睡觉前半小时把数据结构和算法书又复习了一遍。上午8点半起床后——这半年来第一次这么早起床——开机,然后发现赵总居然在线,于是赶紧最后打听一下,希望他帮人帮到底。先问有几道题,他说一般是每人三道,做得快就多问点,我说那我还是控制节奏慢慢做吧。又问他有什么要注意的没有,他居然说:拽一点就行了……也只有赵总这么拽的人才能说出这么拽的话来。我要是面试这么表现,肯定被踢出来了。又问题目不会做怎么办,他说:不会做就承认,赶紧让他换题。这句有点信息量,想想也是,一道题不会,本来就三题,1/3答不出,如果卡住好久,少问一道,就变1/2了,更惨,直接说不会,多问几道,那就是1/4,1/5,好歹好看点。
  9点40到,填了表填了NDA,被领上8楼关进小屋子,今天面Mobile Wireless Application Engineer的至少我看到的连我在内有5个人,有应届也有非应届,应该是攒一块了,其中有的和我同一天笔试的。

  10点到了,别人的小屋子里都进了面试官,我的面试官却还没来,又等了10来分钟,终于来了一个,一看就是做技术的。他说,原来安排第一个面我的人拒绝前来,临时找他来代替,所以晚了。看了他手上的名单,原来安排的第一个是Xuhui……估计是为了避嫌,就主动换人了。这个面试官感觉也是被赶鸭子上架,我紧张,他也紧张。上来就先来了个写程序的题,当时估计双方都处于混乱状态,他题目只说了一遍,我也就听了个大概,没细想就开始做了,程序迅速写完,他一看,说,咦,我要你做的是这个吗?我说是啊,难道不是吗,他说难道不是啥啥吗?我还是没缓过来,说,我这不是吗?他说,你这不是那啥啥吗,于是我恍然大悟,忙说是我太紧张,脑子没转过来。然后拿笔划掉了四五行程序说ok了,看上去他对我的改动还比较满意,这时候我开始有点进入状态了,他加了个小改动,我想都没想就在程序里插入一句话解决了。由于第一题出师不利,我就想后面干脆答快点,让他多问几题,弥补下损失,加上当时忽然状态不错,后来他连出了四题都被我哗啦哗啦解决了。我的策略是他报完题之后直接抛一个可行算法给他,然后给他复杂度,然后立刻说这个算法肯定不好,让我想个更好的,然后想一下,给个我认为的最优解。我觉得这样的好处一是不会陷入死局,好歹我有个可行解了,二是这样做的话面试官不太会主动给出提醒,可以显得我是在无提醒下做出来的。第二,三,四题都很顺利,最后一题遇到些麻烦,我给的是时间O(nlogn)空间O(n)的算法,自己觉得已经不错了,没继续想下去,然后面试官说这不错,但是有没有更好的。我故意随口说一句难道有数学方法,他也随口说了一句不需要数学方法。在这句话的提醒下我直接杀向时间复杂度,那个n是逃不掉的,再一看,logn完全没必要,常数时间就解决了,于是变成了O(n)搞定。我的这道题最终算法,以及前面某智力题最终算法可能都和面试官的标准算法不一样,因为我都讲了两遍他才承认我的算法是对的。
  第一个结束之后等了40分钟,才等来了第二个面试官(安排如此,不是迟到)。期间我研究了一下椅子,调整到了一个比较舒服的状态,同时又把空调从30度调到了20度,免得上火。
  第二个面试官从年龄,身材和进门的气势一看就是个老手了,坐下之后先对我的信息学竞赛经历和研究生阶段的研究项目表示了兴趣,问了一下之后进入正题。他给的是一个有趣的应用题,抛开故事情节来看,和搜索较为相关,而且是个比较开放性的问题,和前一个人的小算法题完全是两种风格。既然是开放性问题,我也给个开放性的解答,直接给他设计了两三种解决方法,然后边想边说这种哪里好那种哪里不好,这种喜欢什么样的数据,那种在最坏情况可能很坏,等等,因为其实我也不知道整体上说哪种好哪种不好,哪种是他想要的方法,所以只能全抛出来想到哪里说哪里。这时候他对我的某一个方法产生了兴趣,让我写程序,我问他能不能直接用某函数还是要实现一个,他说这东西看着你应该会写,就不浪费时间了,直接用吧。于是我又得寸进尺说能不能做个假定。他问我假如假定不成立,标准做法是什么,我就给他说了两种常见的处理方法,他说ok那就假定成立吧。这时候这个东西已经没什么可写了,总共就六七行代码。然后他继续讲他的故事,把题目变难了,提出了新要求,我说了想法之后他又提出了个新要求,这样麻烦就大了,新的这个问题一看就不容易,赶紧继续第一场的策略,先胡乱说一个可行算法再说。面试官看了我的算法说这东西复杂度不是一般的高啊,我说是啊,这个确实麻烦,于是他提醒我换个角度看看,这句话起了作用,我立刻又想了个算法出来,结果说完之后自己愣了,看上去没啥差别。他说你这俩是不是差不多啊,我想我可不能说差不多,就说新的这个好,肯定比刚才那个复杂度低,他说为什么啊,我说靠直觉,他又问,你的直觉哪里来的啊,我说,新的这个求出来的就是解了,无非是不是最好,老的这个求个东西出来还得先验证是不是正确解。后来想想这个回答很汗,因为这根本不是算法好不好的理由。不过他没追问,让我用新的这个思路继续做下去。我又想了下,给了他一个比较详细而且复杂度不是很高的实现,事实上我也不知道这个实现对不对,不过运气很好,他没有让我证明,没有让我优化,也没有给我找反例,而是让我算复杂度,有了刚才详细实现的分析,这个复杂度就很显然了。答完之后这一面就结束了,从头到尾就是一个问题不断地扩散和变难。后来想想也许我给的算法和标准答案差不多,因为假如我的复杂度高了,他肯定会引导我优化,如果复杂度低了就是错了,肯定会被找反例,如果复杂度一样实现不一样,也许会让我证明。既然什么都没要我做,那么要么是对了,要么是错到无可救药了。
  第三个面试官上来就抛题,没有让我自我介绍也没让我讲简历,我只能立刻调整状态接镖。第一个题理论上说是个经典问题,但是我没看过也没做过,于是只能瞎说,结果不小心把面试官搅进去了,很显然,又是因为我的算法和这个问题的经典解不一样,没办法,要是这样就能想到经典解,那也太不容易了。期间他让我程序实现这个算法,在实现期间他继续想我的算法,最后我写完了讲了一遍,他终于说觉得我这个也是可行的,然后我问他经典解是什么,他说了一下,于是我和他讨论了下我的做法和经典做法的区别,并试图让他确信我的是对的。随后又就代码中某个极其细小功能的实现方式进行了讨论,因为他觉得我的实现多了三次运算,而我说我这样可以省一个变量空间(就算你可以立刻想到是什么功能,那也别说……),当然,这些都是细节,无关大局,不过后来我发现这个程序我写了个小bug,当时我和他都没注意到。接着他又让我写程序,一个非常非常简单但是各种细节非常多很容易写错的题目,面试官也说了,这个题目不难,就是繁到家了。于是我就开工,期间瞟了他几眼发觉他在仔仔细细看我的简历,估计是最后要对简历提问。因为代码繁琐,所以我写完之后反复看了两遍,才敢告诉他我写完了。然后对着代码仔细讲了一次,相信他也没找出什么错来。果然之后关于简历内容提了一些。最后他让我提问,可惜的是,前三个面试官都不是做Mobile的(本来第一个是,可是换人了),于是我关心的问题也答不出多少来。
  又等了一会等到了最后一个面试官,正如我所猜的,前三个是男的,最后一个想必是女的。这时候快一点了,我已经饿得不行了,估计她都能听到我肚子的叫声。这个面试官上来先就我简历里的Mobile方面的背景进行了询问,让我说说我做过的项目,接着问了几个非常开放的问题,都是实际问题,和无线产品,无线搜索相关度很大,有的甚至是产品方面的问题而不是技术方面的,于是我猜她来头不小(事后知道是这块的tech leader)。问完这些,照常规还是做题。她问我是想写程序还是想算法,我说还是想算法吧,今天写了不少程序了。而且当时饿了懒得动笔——当然这个不能和她说。于是她就给了我一个小算法题。题本身不是老题,但是这类题基本变不出什么新花样了。在她说完题的时候我已经有了想法,而且坚信是最优的。当然我没直接说,而是仔仔细细又推敲了一下,大约一分钟左右,把算法告诉了她。结果她说:这么快就想出来了,看来只能让你把程序实现一下了……我倒,早知道多拖一会。这个算法很简单,但是实现起来并不容易,还是有很多繁琐的细节的(比如一个多路归并败者法,说出来就几个字,但是让你手写完整的就很容易错,这个题也是这样)。我先把笔放在一边,大约想了两分钟确定了实现思路,然后开始写函数,程序基本是一气呵成的,写完之后又自己做了个数据走了一遍,确定没有错误。幸好的是讲程序的时候她也没找到什么问题。这之后是提问时间,好不容易遇到一个做Mobile的,自然我要问问Google China的Mobile到底做什么。也许是最初我讲做的东西的时候她发觉我对这块技术包括市场和政策什么的都挺熟的,于是最后讲得也相对深入,我也能偶尔插上几句表达一下自己的看法。
  出来之后,hr说可能要两三周有消息,不过让我先准备成绩单给她送去。这个节骨眼上说两三周,那应该就是年后了出结果了。

  最后提几个前面没说到我觉得相对又有用的:
  1. 面试官的节奏掌握得都很好,即使不断出题,也让人没有什么压迫感,所以除了第一个人第一题我紧张犯晕了之外,别的感觉都正常发挥了,没有什么出门就觉得遗憾的地方。
  2. 在我想题的时候,面试官都在不断敲键盘记录着,应该是记录我前一题的答题情况,边问边记,都是这样。每轮最后我写的所有程序和草稿都被拿走,程序应该是会被原样敲进去,而草稿可能是看出你思考过程的一个方法。所以,写程序的时候字好看点比较好,像我这样草书连笔的字写程序,面试官回头看不清楚,我损失就大了。
  3. 程序最好用一种不容易出错的语言来写。我今天都用的python,并不是因为我对python熟悉,而是python简单,不容易写错,当然java也成。我绝对不敢用C++,弄堆指针弄个数组就算在电脑里写,就能把我弄晕,更别说纸上了,与其让面试官在这里挑毛病,不如挑个简单的语言,数组,字符串都直接拿来就用,多好。
  4. 总的来说题目比我想象的简单很多,不少算法或者数据结构的小题,科班出身的人靠直觉都应该能答得比较靠谱。我觉得唯一一道有挑战性的题目是第二个面试官那个系列问题的最后一问,另外第一个面试官有一个智力题也有点意思。据说Google有一些面试官会问一些变态题,没有遇到这样的题,觉得有点遗憾。
  5. 早上去面试的,一定要吃饱早饭,否则面到下午2点,没被问死,先把自己饿死了。后来想想中间有一次休息的时候hr问我饿不饿,当时应该说饿,弄点东西吃的。不过吃一半面试官进来就很狼狈,所以还是早上多吃点好。

  整体来说,我对自己的这次面试发挥还是比较满意的,觉得答得都还可以——当然,可能面试官会有相反意见。尽管很久没有碰算法了,但是竞赛时候留下的底子还在,没有忘光,这点比较值得欣慰。另外感到不足的一点就是没有一门非常精通的开发语言,基本什么都能写,但是没有能写得特别熟练的,这就使得手写程序的时候感到有些不适,如果还继续做技术的话,就要想办法弥补。还有就是Google会向社招的人要成绩单,所以学校里的成绩也得掂量掂量,我研究生期间成绩还凑合,本科的就有点难看了,所以看来得只开研究生成绩单给他了。最后,鉴于Google发Offer除了面试之外其他随机因素占的比例很大(当然,对我来说是随机因素,对Google来说不是,只不过是我不知道的判断条件罢了),所以面试只是个开始,还很难说会有什么结果。

  这篇文章同时在水木社区求职Google版面发表,文字内容略有区别,不过相同的是,由于签了NDA,我不能透露任何题目相关的内容也不会回答任何相关问题,只能讲讲流程,体会,以及自己的思路而已。另外,本文未经许可请勿转载。
Tag: ,
20:16 | Category : Blog | Comments (10)
Subscribe Atom
  • Subscribe to google
  • Subscribe to bloglines
  • Subscribe to zhuaxia
Search
License
  • Creative Commons Lisence
Copyright © 2011 Yang Fan. Powered by Fomalhaut 1.0b.