出国留学之匹兹堡大学——实习篇(上)

  出国留学最重要的就是留下来,留下来最重要的就是找工作。(当然纯粹出来镀金的那种就无所谓了……)

  目前的政策还是STEM专业的可以OPT3年,非STEM的可以OPT1年,关键就是在OPT的期间抽出H1B,不然就白搭。

  而找工作的伊始,就是实习。实习篇(上)我准备主要写一些关于找实习的经验,等我明年夏天实习结束之后再写一篇(下)来补实习过程中的事。

  首先是背景介绍,垃圾学校(PITT)垃圾专业(IS)(不是CS,但是是类似方向,不过确实是垃圾方向无误),因为刚入学所以没有GPA,有较为丰富的竞赛经验,但是也只局限于省级市级。(市队级是远远不到的)

  美国这边找工作是一个非常紧促又非常不科学的时间段,也就是大部分人秋季入学,9月开学就已经是秋招了,career fair大概就开在9,10月。而在美国这边找工作最好就是在秋招找到明年暑假(其实就是将近提前一年了)的工作,春招也有一批人头,但是会比秋招少得多。而且大部分人刚入学还没缓过神,到春天了就醒悟了,然后一窝蜂……

  先说一下CF这个东西,计算机方向的同学最好不要太指望local的小公司,眼神还是放着FLAG反而会容易一点,startup也是不错的选择但是难度会很高很高。大部分学校的CF的大部分公司一般都是local小公司,所以CF其实用处确实不大,如果有FLAG级别或者硅谷的startup来了CF也可以考虑聊一聊。local这边可能更需要指向性的技能,而且networking会更重要一些,不像大公司因为面试的人太多了,所以只能用算法题来筛人了,复习起来会方便很多。

  女同学们有个东西叫GHC(Grace Hopper Celebration),具体我不是很清楚,但是听说找工作挺好的。

  至于刷题,就靠leetcode,会员是值得买的,黑五的时候通常会减不少钱。特别是Facebook基本面的题都不怎么换,新题出的也没什么创意,刷遍tag面实习基本没问题,谷歌就要想一想了……但是只要是面算法的公司,刷的总是越多越好。这方面搞计算机竞赛的会占不少优势,毕竟再烂对时间复杂度和空间复杂度的敏感程度都是比较高的(骗分都靠它……)。

  面经我就直接quote我发在地里的了:

emmm……运气比较好,两轮都特别水……
第一轮:
应该是美国人,就一道题,柒妖,要求原地,不让开栈
所以就变成了纯纯的字符串处理……带他跑case数了半小时下标……感觉把他数晕了就过了……
看的出来他其实想变一下题的,一开始在路径前面加了一堆http fb网址。。然后我问他是不是每个case都以这个为开头,他想了想就又变回原题了,当中我问他输入输出第一位是否有/他也说不清,估计没想清……面完之后跟我说回头讨论讨论规范一下输入输出orz
这个面试官一上来就说不在乎程序能不能跑,如果有不会用的函数也可以谷歌或者直接问他(反正我没这么干……)

第二轮:
国人小姐姐
第一题是偶柒叁,水题……过程中我问了一下会不会有负数,她说会,我就加了个特判。秒完之后问scale是多少,饶了半天才明白原来是想问int最大值是21亿左右,所以不用考虑billion以上的数,算是答上了
第二题不知道是不是有原题,就是说比如社交网络里提供了一个可以输入id看这个id所有好友(vector)的function,然后问如何找到A和B的共同好友,我是两个数组排序了一下然后维护两个指针,等于输出,不一样根据大小右移,(后来想起来hashmap也不错,空间换时间,不过她也没问),然后写着写着脑抽了写完while语句之后不知道为啥写了一段代码把剩余的数也push进去了,在小姐姐的提醒下改过来了orz,问了时间复杂度,反正就是排序的nlogn嘛
第三题是follow-up,就是推荐好友的系统,找到所有A的朋友的朋友(但不是A的朋友),然后根据和A的共同好友数作为权重,输个排序,我就是花式用set去重然后优先队列硬上(我觉得挺好的,没啥不对……感觉就是个水题……)然后大致写完之后她说时间差不多了,她也明白我想写啥了,然后她想问一下……我立马打断她说我一开始找朋友的朋友集合这里要用一个set查重,然后她就没问题了,结束……

2017-09-28 Hello from FB
2017-09-28 约时间
2017-10-19 一面
2017-10-20 next round+约时间
2017-11-02 二面
2017-11-03 约电话
2017-11-08 offer

  这里提一下一个忘记写进去的东西,这种在线面试一般是hr会提前发一个在线编辑器的链接,就是你这边写的东西面试官可以实时看到,面试官写的题你这里也能看到。一般在面试的时候给的都是最精简的编辑器,只有语法高亮,没有补全提示,也没有compile。但是其实compile功能是可以被面试官远程打开的,所以写代码的时候一定要小心。我一面的面试官是美国人,不在乎程序的可执行性,只看思路,但是二面的中国人面试官就打开了compile功能,辛亏因为题目的原因数组没写完,自然是无法编译的,也不算我的问题。总之大家写代码一定要朝着bug free的方向努力,不然说不定就被坑了呢。