一个美本码农从实习到找工作的一路流水账~

#流水账流水账流水账!纯粹记录一下这也算是意义重大时日漫长的一段路给自己留个纪念!

#Po主渣背景,简历上的project还有些是课堂里的project的那种。请憋嘲笑>_<

 

这篇文章老早以前就想写了,但一直拖着。想想我应该算是蛮典型的普通渣本,一路实习啊return offer啊内推啊海投啊校招啊,offer啊被拒啊都经历过来了。所以还是记录一下从去年10月走过来的这一路,也算是给自己一个纪念^_^

去年(2014年)10月开始焦虑实习的事情。那时候跟同学聊天三句不离“今年还找不到实习怎么办啊啊啊啊”,结果到今年1月,到我都忘了还投过亚马逊这事儿了的时候,西雅图A家突然给我发来On-campus面试的邀请。那时候我是个Leetcode一道题都没刷过的孩子(……),想着“求不要被羞辱得太惨”就去了。

那是一次我这辈子都不知道我如何通过的面试——因为我真的觉得自己被羞辱得很惨。

题目是Finda number in an rotated array,后来我开始刷Leetcode之后发现那是一道Hard难度的题目(……)。当年没刷过题的我站在白板面前思路一片空白,在白板上画了一堆我自己都不知道是啥东西的东西之后,说出了第一句话:Do you have any hint for me?然后在面试官几乎手把手的一步一步教导提示之下,写出了最后的代码。最后用的代码里有一步是类Binary search,大家都知道这种算法就是边界上的+1 -1这种东西贼烦。那时候我完全没有今年10月面试时候那种闭着眼睛都给你把代码默写出来的霸气,只能凭着大一时候上课听到的一点依稀模糊的印象,在某些边界处写了-1什么的。然后自己假设了几个Test case觉得没有错,但面试官对于边界的处理跟我有不同的看法。纠结了好一会儿他也没办法挑出我的错,于是就结束了第一轮。

第二轮更加是惨不忍睹不想回忆。第一道题还好,稍微改了一点bug就过了。第二道题,我这辈子都不想再回忆出来,是一道Binary tree level order traversal。Well哪怕你刷过不多的几道Leetcode都该知道大家默认Binary tree的表示方法是一个node下面存放左右两个子node的指针,然而当年的我却不知道……于是我就傻傻地问了这tree本来是用什么形式表现出来的。我估计面试官没想到来面试的人里能有那么小白完全没接触过leetcode的,于是就随便说了句”Linked nodes“,而我就很自然地理解成了”Linked list”,意思就是第一排的node连着第二排的nodes连着第三排的,于是这题目就被我翻译成了“printout a linked list”。我还很疑惑这题咋那么简单,还问了一下面试官,面试官完全没想到我完全理解错了,于是就说你把代码写下来啊。我写完以后,面试官愣了5秒钟:……

面试官:孩子,Binary tree是这么这么这么表现的(痛苦地捂住脸)

于是面完之后我就没多想了。那年的我真的就是个傻白甜,毛线都不懂,还穿着西装西裤高跟鞋去面的试,妈蛋一到面试的地方所有人穿的都是T恤牛仔+跑鞋,我完全就是个走错片场的。面完之后默认被拒了,于是整天活在无比焦躁焦躁找不到实习的抑郁里。

过了半个月,它给我发了实习Offer……

我:……

那时候的Amazon对我来说还是个高山仰止的名字,想也没想就填了一大堆表接了Offer。那时候还完全不知道码农是什么行情,很兴奋地想它一个月给我2000刀就很好啦。然后两个礼拜后在友人的车上收到正式Offer,一个月6000刀+包住。我:……

从此打开了新世界的大门。后来找工作时候跟大家一起两眼放光地数着这家公司给的钱多,那家公司钱少也不用去面试了的我——曾经还是有过一段如此单纯天真无邪的傻白甜岁月的。

对了,包住,住的是Hyatt套房,后来看到账单,一个月10000多刀。我:…………

 

然后就暑假兴奋+紧张地去实习了。到现在都不得不承认,实习真的是个打开世界新大门的经历。不仅从身边牛逼的程序猿身上学到了好多技术方面的东西,同时在跟小伙伴的交流中,知道了现今码农世界中各种各样的行情,各州的税啊,如何刷题准备面试啊,各家公司的标准package啊,一亩三分地mitbbs啊,等等等等。

实习有它开心的一面也有痛苦地一面。开心的不用多讲,住hyatt离公司走路15分钟的距离,天天有人给你打扫房间工资还不低的生活不能更滋润。至于痛苦的,许多时候就是Project本身了。初次到大公司,要学习的地方真是数不清的多,公司内部的各种工具各种框架就够喝一壶的,在我开始实习之前,组里也只是有个模糊地的概念,大概要我做一个什么样的东西,没有具体的设计,通通扔给我说:You’re responsible for the design。而初来乍到的我只能目瞪口呆地坐在位子上,完全没有任何从哪里着手的方向。

后来只能厚着脸皮,天天时时去问Mentor,感觉就像引导着不太会教徒弟的mentor给我一点点理清各项需求,以及各种实现的可能的方案。因为我的project横跨两个组,于是也成了隔壁组的常客,天天跑去问东问西的。这时候由于每组的实习生的项目啊进度都不同,天天都有人在群里说我又交了几百行代码了,而我却一行代码都没开始写,整个人都处于一种无比焦躁的状态,想来也是实习12周最难过的一段时间。

过到第三个礼拜快结束,写了无数个版本的设计稿之后,终于被mentor认同说可以开始试着做了。然后接下来6个礼拜左右大概就是我心理压力最轻的6周。因为每天就是写代码做功能,一开始给自己定下的规矩是,每天都至少交100行代码给mentor去review,后来发现单元测试什么的写着写着很容易就几百上千行了╮(╯▽╰)╭ mentor对代码质量的要求很高,每次交100行的新代码,打回来的各种评论又让我至少要再交100行去修改。但mentorreview的速度很慢,交上去通常要过个三五天再给我feedback,这样一来二去的code review开了十几个。某一天我终于受不了了,把所有的review都打印下来,去跟mentor解释我的代码,问他能不能把某些review先关掉然后我以后再改。Mentor听了一会儿就说:啊……我给你feedback之后你可以就注释一行“这些部分会在以后的commit里改进”然后直接把Review关了啊。我就是给你提一些意见而已。”

我:……原来是这样的吗……

当中哭着解决的诸多技术难题按下不表。每个礼拜都有和mentor和manager的review。从头到尾我都觉得这个project最难的地方不是代码,而是他们交给了我一个很开放式很抽象的问题,要我这个其实对整个系统都很陌生的实习生来想办法解决。我很多次都想跟manager说:要不你就告诉我哪条算法最有用哪个功能最急需,我把它写出来不就完了么。但每次听着manager的“你想用什么方法都可以。你想做什么都可以,只要最后这个东西有价值。”,想着我的return offer还是忍下来了。期间几乎每天都有和基友们哭诉:妈蛋这么大一个EC2,客观来说本来就不是我在12个礼拜内能完全理解的东西,何况这不仅要求我理解,还要拿出一套关于某些bug的解决方案,本宝宝的内心每天都是崩溃的。当然mentor没有听到我的哭诉,甚至最后跟我说,他们认为我能胜任SDE拿到return offer的其中一个原因就是:You never complain about anything. This is very rare but we think it’svery important. 我简直听得一愣一愣的……

实习最后三周又陷入了无比痛苦的境地。因为功能基本完成之后,剩下的就是Deployment。而部署这件事情是跟公司里各种工具流程息息相关的。这里的问题都属于,你让我自己研究我得研究个三天三夜,但你让我问人,如果能问对人,可能3分钟就解决了。然而我的性格缺陷导致了我对去路上抓个人来问问题的这种事情避之不及,于是每天就死去活来地一个人跟部署流程死磕。部署完,项目上线之后到实习的倒数第二个礼拜,基本就是要做功能测试看项目跑得有没有问题。这一周的周末是我唯一加班的经验。把工作的笔记本带回家,几乎24小时盯着我的图表(真的有半夜两点三点在梦里惊醒,打开电脑看程序有没有挂)。其中礼拜六隔壁组的机器挂了一次(我的程序里的数据要用隔壁组的机器获取……),我整个人从早上8点到晚上11点都在不停地在邮件和Lync上呼叫隔壁组的甲乙丙丁,到晚上11点半终于在隔壁组某小哥手把手的教导之下,去root了一台新的机器才终于解决问题。最后一周礼拜一就是Presentation。亚麻有一种奇怪而诡异的“不用ppt”的传统,于是我写了个wiki配以图表。不吹不黑我觉得那是我这辈子做的最好的presentation之一。也许是过程里的某些段落太痛苦以至于记忆犹新,也许是因为一开始的问题太抽象以至于我把所有概念掰碎了要manager和mentor给我解释所以对这个系统真的理解得不错,总之比我想象中的更顺利。听众提出的所有问题基本都靠自己解答了。Presentation之后组里的其它实习生,和一些全职都来跟我说我干得很棒,开森~

代码之外的工作方面,因为我那时候还想着之后肯定要去读研,所以其实对能不能拿到return offer这件事没那么在意。熟悉了组里人的作息之后,每天大约9:20左右到达办公室,放个水摸个鱼什么的9点半左右开始工作。11:00组里Stand up报告自己昨天做了什么今天将要做什么。Stand up了之后基本就出去觅食。晚上我肉体上基本是mentor走了以后我就走(mentor每天大概5点到6点区间内随机下班),精神上基本是5点开始就躺在椅子上等下班,以及坚持回家之后就再也不碰有关工作的任何事情。组里还组织了一次Paint Ball的外出踏青活动,玩完之后我的感觉是我这辈子都不要再玩Paint ball了。食物是亚麻的软肋,我午饭基本吃了3个月的三明治,公司旁边的Whole Foods买的,以至于到实习半途的时候Whole Foods做三明治的柜台五六个员工已经全认识我了,一看到我自动开始切面包加料(……)。晚上经常去公司旁边的一家寿司店,一个人坐sushi bar,之后寿司师傅也认识我了,每天都会送我一两个他别出心裁做的特色寿司。晚上回家后,实习前半段就窝在床上看日剧,后半段终于认识了一堆LOL基友开始了舒爽的开黑生活。也许是因为伙食实在太差了,也许是因为生活是自上大学以后难得的规律,回国后大家都说我瘦了耶O(∩_∩)O!

工作之外,亚麻的实习生生活还是相当滋润的。我住了12个礼拜的Hyatt,经常跟小伙伴出去搓顿饭啊什么的。期间一起聚会看了欧冠,看了曼联来西雅图的友谊赛,跟在UWS的基友一起去逛了华大漂亮的校园,还有两位从洛杉矶来的好朋友外出面基。因为太宅了所以其它的户外活动就没怎么参加,但每周都能看到大家在朋友圈里刷Mountain Rainier啊Olympic Park啊什么的。≥

总体来说亚麻的实习生生活真的是很不错的。西雅图也是个很棒很美的城市。但直到拿到return offer为止我都还觉得自己会去读研,之后决定毕业后就去当码工那是开学后很久的事情辣~

- TBC -

评论(1)
热度(11)

© 夏殇 | Powered by LOFTER