{"componentChunkName":"component---src-templates-story-post-js","path":"/en/stories/2018-01-20-UCLA-EE-Uber/","result":{"data":{"site":{"siteMetadata":{"title":"LaiOffer","description":"Develop technical knowledge. Improve programming skills. Build your career in software engineering.","url":"https://www.laioffer.com"}},"currentStory":{"edges":[{"node":{"title":"UCLA EE学长分享 | 面挂无数公司的我, 是如何拿到Uber offer的？","path":"/en/stories/2018-01-20-UCLA-EE-Uber/","id":"1b364536-6b90-58da-9dc2-9492ecb074a3","name":"Yifan Ding","contentful_id":"QKaB3CmFiKq0SIiiswueq","date":"2018-01-20T16:00-07:00","featured":false,"node_locale":"en-US","academicBackground":"UCLA | EE","class":["Software Development Essentials"],"offer":["Uber"],"description":{"description":"来Offer不仅教会了我算法和写代码，更让我明白了如何和面试官、同事有效的沟通。来Offer的老师们水平都非常高，而且非常认真负责，从知识上和心态上都竭力的帮助我。最终，我成功从EE专业转码，拿到了Uber的offer。"},"thumbnail":{"id":"55ea9dc2-a681-5cc7-942e-4d885e379ae8","resolutions":{"width":480,"height":270,"src":"//images.ctfassets.net/04k2xg9gplcj/15EIi4vVakmues0Ca40CyO/a60d3a8f4a5b5344c1c522e1e0daebc6/ee-miangua-uber-thumbnail.jpg?w=480&h=270&q=50&fit=fill","srcSet":"//images.ctfassets.net/04k2xg9gplcj/15EIi4vVakmues0Ca40CyO/a60d3a8f4a5b5344c1c522e1e0daebc6/ee-miangua-uber-thumbnail.jpg?w=480&h=270&q=50&fit=fill 1x"}},"thumbnailAlt":"Uber Office","featuredImage":{"id":"b3db9728-3615-54cc-b598-fd06c55dec79","resolutions":{"width":800,"height":550,"src":"//images.ctfassets.net/04k2xg9gplcj/2r7jMyJZjiMgcMgwIE8OEY/d1d1b7507a6054da95ca7c5ab9aa47e6/ee-miangua-uber-hero.jpg?w=800&h=550&q=50&fit=fill","srcSet":"//images.ctfassets.net/04k2xg9gplcj/2r7jMyJZjiMgcMgwIE8OEY/d1d1b7507a6054da95ca7c5ab9aa47e6/ee-miangua-uber-hero.jpg?w=800&h=550&q=50&fit=fill 1x,\n//images.ctfassets.net/04k2xg9gplcj/2r7jMyJZjiMgcMgwIE8OEY/d1d1b7507a6054da95ca7c5ab9aa47e6/ee-miangua-uber-hero.jpg?w=1200&h=825&q=50&fit=fill 1.5x,\n//images.ctfassets.net/04k2xg9gplcj/2r7jMyJZjiMgcMgwIE8OEY/d1d1b7507a6054da95ca7c5ab9aa47e6/ee-miangua-uber-hero.jpg?w=1600&h=1100&q=50&fit=fill 2x"}},"featuredImageAlt":"Uber Office","keyTag":null,"body":{"id":"85c2ab00-2bb9-536b-a525-7b378b5b809d","body":"大家好， 我是Yifan，在这里跟大家分享一下我找工作的经历，以及个人对于找工作的一些建议。 \n\n先说说我自己吧，我是UCLA的EE的master，在校友的推荐下知道的来Offer（我校友在来Offer的帮助下，拿到了hulu的offer）。跟一些同学加入来Offer时的情况不太一样的是，我在加入的时候自以为是有一定的算法功底，并且已经成功拿到了Google的onsite。当时的想法只是想找一个能提供内推的平台，毕竟自己的人脉有限，但在加入了之后，才发现自己是：图样图森破。\n\n记得在第一节试听课的时候，孙老师让我做了一下remove a node in BST那个题。当时没有现场写出来，心里想这题反正算难题，写不出来就写不出来吧。\n\n后来在面试的时候才发现，现在的求职，可不是面试做做题，做出来就能拿offer那么简单了。你知道的那些刷题网站，你面试官也知道。而且就算走运在面试时碰到了一道原题、并做出来了，也不代表你能拿到offer。\n\n![mianguauber-1](//images.ctfassets.net/04k2xg9gplcj/4sEzauoiGkiO8eIQYSC2CC/300c0fadf0688e8283e44714e9bfbde5/mianguauber-1.jpg)\n\n**面试官要的不是答案。面试官他们更看重的，是你如何解题的这个过程，以及对于他们提出来的follow up问题，你会如何灵活运用自己的所学，来最大限度上地解决这个问题。**\n\n至于如何才能让自己在面试中有好的表现，我打算分为以下几个方面来说。\n\n## 怎么准备面试中的算法题\n\n一般提到想找计算机的工作，大家的第一反应就是两个字：刷题。好像只要自己把题刷了多少多少遍，不管是flag还是这些新兴的独角兽公司都是可以拿下的。\n\n在我看来，想在面试中的算法题部分取得好的结果，需要有**“把实际的题抽象、归纳成自己知道的算法和数据结构的想法，然后再把这个想法用code实现出来”**的能力。而所谓的“刷题”，就只是在让自己练习这个实现的过程，是手段而不是目的。\n\n给你一个题，当你意识到这是一个图表BFS遍历题的时候，你一般需要多长时间建图？多长时间遍历？需要什么数据结构？什么时候用到哪个数据结构……这些都是空想不出来的，都是要一点一点码code才能给自己答案的。\n\n依稀记得当年面Google的第二轮，面试官给了一个迷宫题，说白了就是个BFS，可是自己当时就是对这个时间没有准确的感觉，才导致最后没有完成这轮coding。\n\n![mianguauber-2](//images.ctfassets.net/04k2xg9gplcj/4sCoHnh7bGSaws6GwsGoEw/dd2d58b2d0bc8577b735d01e4cd9f028/mianguauber-2.jpg)\n\n所以，我的建议就是：\n\n当你做题做到自己对自己的实现能力很有把握的时候，就不要再疯狂的做题了，保持一个手感就好。过多的刷题，反而会在遇到做过的难题的时候进入一个“我当时怎么做的来着”的思维。\n\n**把每一个见过的题都当成新题，并且能自己一点点分析和说出来自己怎么想的过程，才应该是做题最后的结果。**\n\n## 注重code的质量\n\n前文中提到了把实际的题抽象、归纳成自己知道的东西，这个也正是来Offer所能提供给大家的。\n\n我在上来Offer之前也算是有一点算法基础吧，自我感觉比较良好。 可是我的一个很大的问题，用朋友的话讲就是：“一看你这code就是没证的程序员写的”。\n\n我写的code，若给同是主语言为python的人看，好好看看还是能看懂，但是碰上以java为主语言的人来看，就真的是非常的累。**code是程序员之间沟通最好的方式，一份质量高的code是能充分表现出一个人的思维过程的，这也是来Offer所能提供给大家的。**\n\n我个人感触最深的就是孙老师对dfs和dp的讲解，如何写一个dfs的形式，如何画recursion tree来分析时间复杂度，以及“linear scan回头看”，“中心开花”……这些简单但又准确表达了算法过程的名字，让我对很多东西都豁然开朗。我还记得，孙老师教我们，在分析时间复杂度的时候，可以把recursion tree画出来，既帮助自己分析，也是一个展现给面试官自己为什么这么想的过程。这让我非常受益。\n\n除此之外，**来Offer教案中的选题也是非常经典非常高频的题**，希望大家多多复习好好准备，比如reservoir sampling的思想，我在面试中就被问过3次。\n\n![mianguauber3](//images.ctfassets.net/04k2xg9gplcj/6C5qqnQvpC4qOscygMSS6K/92bf9d1a3b366fe507b85344065863ac/mianguauber3.jpg)\n\n来Offer对我另外一个很大的帮助就是大大提升了我debug的能力。\n\n上课是交互的，我在看别人coding的时候，自己也要同时做，并且对比，才会有所提高。人都是在错误中学习的，希望大家不要害怕，在上课的时候踊跃报名去coding pad上code，这是一件锻炼自己且造福别人的攒人品的事儿。\n\n此外，来Offer也给大家提供了一个来把上课所学的这些算法和想法实现的平台，就是laicode，这个之前有学员用得更好一些，大家看看他的心得可能会更有帮助，希望大家多加利用吧。\n\n另外也非常想感谢一下来Offer的这些老师 (尤其闫老师和赵老师)。\n\n我在来Offer算是小众群体，我的主语言的python，从第二次期中考开始基本就是用python来写了，感觉老师中用python的并不多，但是老师们也是一点一点帮助我改进我的coding style，从最开始的“什么玩意儿”到后来的“比较readable”。也感谢吕老师分享给我的一些关于python如何实现、一些常见数据结构的文章，让我对底层有了更多的了解。\n\n## 注意面试中的沟通，注意心态\n\n这方面，其实还是挺重要的。\n\n我刚进来Offer的时候，经过了从自我感觉良好到知道自己比较菜的一个过程。听课的时候看到有的同学答一些二维甚至多维dp的时候行云流水还是比较羡慕的，因为自己真的达不到啊。\n\n随着上课，能力慢慢提高，发现自己做题能力也不错了，心态也变得浮躁起来。周六的mock五道题也差不多能做出来四道半了，尤其是在面完hulu和Amazon之后，整个人都觉得，太easy了！但是这两家公司无一例外都把我拒掉了。当时整个人就是怨天尤人：“为什么把我拒掉？不就是做做题么，我都做出来了啊！”、“肯定是遇到的面试官都是弱鸡，出的题这么low，这能有什么区分度啊？”、“为什么就是没有地方觉得我厉害啊？”……如此之类的。\n\n在面Amazon之后的两个月，没有任何面试，好不容易有了一个Snapchat的电面，却给了我重重的一击。一个小时，两个题，第二题是个二维dp跟回文相关的题。当我得到朋友给我的回复：“面试官说你code还行，沟通不行，onsite一定跪，所以电面就不给过了吧。”\n\n整个人都是崩溃的。我在心里抱怨Snapchat，“你一个软件公司，不看code看沟通？要是所有都看沟通，我到底怎么做才可以啊，一个电面，难道不是做出来题就好了吗？” \n\n带着这种抱怨的心理，我又接着面了三家，都是做出来了面试题，但都是没过电面。\n\n之后孙老师来LA出差，我终于见到了老师，见面聊了好久，在老师的开导之下，才意识到：**面试这件事，是一个很公平的过程，这里的公平，指的是公司判断一个人的时候，是判断他的全方位，而不是只看他会不会做题、有没有背答案。**\n\n![mianguauber-4](//images.ctfassets.net/04k2xg9gplcj/2Q1fjbLf4ACGGmeM2IqWsE/c3a615c3f47ef4a598282a3725897ab2/mianguauber-4.jpg)\n\n自己最开始以为的“有能力会解题，面试就应该过”，才是一个不公平的想法。说不定人家就是沟通比你好面试官觉得以后一起工作比较舒服，说不定人家就是天生有优势能带起来全组人的化学反应，说不定面试官就是觉得和你八字不合……\n\n面试不是考试，考试我做对了，老师你再不喜欢我你也得给我分；而面试不是，面试官可能会想，在你之后，还有10几个来面试的人，而且，你又不是美国队长，你也不是钢铁侠，你又不能拯救世界，我跟你相处的不舒服，我为什么要给你过。所以，当面试没过的时候，想想自己有没有犯什么低级错误，比如如何和别人交流，如何让面试官肯定你的能力，而不是自己总觉得“自己牛，自己没错，都是你黑的我”。 \n\n面试失败后，学到失败经验了，就行了。不要让已经发生的去影响自己的心情，move on，此处不留爷，自有留爷处。\n\n另外，我是个口吃的人，一着急就说话不清楚。感谢来Offer的老师在这方面对我的帮助。\n\n相信跟我一起上过课的同学都听过，老师劝我放平心态，每次着急回答问题时，先数5个数，相信自己，只要自己慢慢解释慢慢说，面试官是会听懂的。\n\n孙老师教会我怎么在面试中交流，亲自帮我修改英文自我介绍，一遍一遍的教我如何表达和讲解自己做过的项目。\n\n![mianguauber-5](//images.ctfassets.net/04k2xg9gplcj/frtCVFvZPUWI4AEwyCGyq/d5979480a93987bf04bb06449929948b/mianguauber-5.jpg)\n\n## 一些个人建议\n\n另外说一个个人建议吧，希望同学们不要让拒信影响自己太多的心情。\n\n找工作并不是一个“我学习好，我知道得多，我能去斯坦福，我也就能去UCLA”的过程。找工作很可能是一个二线公司连机会都不给你，但你却连续斩获一线公司offer的过程。比如我自己，我在面Uber的当天早上收到了houzz的拒信，简历没过，第二天收到EA的拒信，说我不够new grad的minimum requirement。\n\n这里并不是想说某公司比某公司好，当你收到拒信的时候，即使是一个很想去的公司，也不要想自己当初投出去的简历是自己投出去的一个希望，而现在希望破灭了。**Dream big, and let it go.**\n\n暂时就想到这么多，最后推荐两首歌吧，平时心态浮躁了就听听朴树的《平凡之路》，想象歌词中说的就是自己，面试前听听《butterfly》，让自己燃一些，超进化一下，lol。\n\n最后，祝大家早日都拿到自己心仪的offer。\n\n![mianguauber-6](//images.ctfassets.net/04k2xg9gplcj/2bHBLrNShCaEsCkgucoq4S/88f45940f2ea7639b53e3e6b8d4c77a6/mianguauber-6.jpg)"}}}]}},"pageContext":{"isCreatedByStatefulCreatePages":false,"langKey":"en-US","pagePath":"/en/stories/2018-01-20-UCLA-EE-Uber/"}}}