{"componentChunkName":"component---src-templates-story-post-js","path":"/en/stories/2018-01-12-uiuc-google/","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":"UIUC CS学长分享 | 入职1年后, 我如何成功跳槽谷歌？","path":"/en/stories/2018-01-12-uiuc-google/","id":"aa66fa71-827e-5a1f-95a5-bea63e9b374d","name":"Jackie Xiang","contentful_id":"3pMd1f70JOuiIaQ0GUOQGq","date":"2018-01-12T14:00-07:00","featured":false,"node_locale":"en-US","academicBackground":"UIUC | CS","class":["Software Development Essentials"],"offer":["Google"],"description":{"description":"作为一个科班出身、有工作经验的同学，我认为来Offer的课程非常的详细和系统。刚开始，我只是希望能提升一下system design的能力，但在听课和Mock Interview之后，我才意识到自己在算法、交流、OOD、System Design上都有了极大的进步。在上完来Offer的课之后，我从以前觉得论坛上的人的解法都是正确的，到现在也可以提出自己的更好的解法、给他们做code review了。感谢来Offer，最终帮助我成功跳槽Google。"},"thumbnail":{"id":"4cd9857c-9cc5-5951-835c-d2c3ae64afeb","resolutions":{"width":480,"height":270,"src":"//images.ctfassets.net/04k2xg9gplcj/65dgqnneQ8s2cQckYaKwOI/e82ca71f553d1cbe7e7aacd1aa865083/1y-tiaocao-google-thumbnail.jpg?w=480&h=270&q=50&fit=fill","srcSet":"//images.ctfassets.net/04k2xg9gplcj/65dgqnneQ8s2cQckYaKwOI/e82ca71f553d1cbe7e7aacd1aa865083/1y-tiaocao-google-thumbnail.jpg?w=480&h=270&q=50&fit=fill 1x"}},"thumbnailAlt":"Google Campus","featuredImage":{"id":"dcdc38bf-78a3-51ab-a599-5a6e5e835782","resolutions":{"width":800,"height":550,"src":"//images.ctfassets.net/04k2xg9gplcj/7JJlhvBAmkQii6gIaeO4o4/e41e9f9e0dfa4c948f79bb86d1443ad0/1y-tiaocao-google-hero.jpg?w=800&h=550&q=50&fit=fill","srcSet":"//images.ctfassets.net/04k2xg9gplcj/7JJlhvBAmkQii6gIaeO4o4/e41e9f9e0dfa4c948f79bb86d1443ad0/1y-tiaocao-google-hero.jpg?w=800&h=550&q=50&fit=fill 1x,\n//images.ctfassets.net/04k2xg9gplcj/7JJlhvBAmkQii6gIaeO4o4/e41e9f9e0dfa4c948f79bb86d1443ad0/1y-tiaocao-google-hero.jpg?w=1200&h=825&q=50&fit=fill 1.5x,\n//images.ctfassets.net/04k2xg9gplcj/7JJlhvBAmkQii6gIaeO4o4/e41e9f9e0dfa4c948f79bb86d1443ad0/1y-tiaocao-google-hero.jpg?w=1600&h=1100&q=50&fit=fill 2x"}},"featuredImageAlt":"Google Campus","keyTag":null,"body":{"id":"4eab5a09-0735-5e05-b2b6-43eb75818346","body":"首先恭喜已经报名来Offer课的同学们，作为“过来人”告诉你们：你们做出了十分正确的决定。 因为来Offer中的老师都是十分senior和experienced的人，你们可以师从武林高手学习各种知识。 比自己一个人在家苦练或者自学各种奇怪的功夫要好多了。\n\n## 一些求职误区\n\n现在不比两年前，招聘市场竞争已十分激烈，大家的准备也越来越充分，功力稍显不足就会在与面试官过招的过程中，暴露破绽从而痛失offer。所以，大家千万不要觉得“学长学姐们怎么怎么样，我也怎么怎么样”，我就深深因为轻敌而吃了不少亏！因为大家碰到的情况已经不同, 所以一定要跟着老师们的要求来训练自己。\n\n其实同学们想要背个答案，或者套个模板的想法，在武林高手面前也都是一眼就能看出来的，内力如何，一个followup便知。同样的降龙十八掌，郭靖用和宋青书用威力就天差地别了。\n\n## 关于基本功\n\n我刚找到来Offer的时候，觉得自己也算在算法上有点自信，作为一个experienced hire我希望能提升一下在system design的能力，从而迈向更高的层次。但在mock interview和听了孙老师的课之后，才发现其实自己在算法上、交流上，都是有巨大的问题。大家在学习过程中也要注意，并不要只想怎么system design，而是要从最基本的“武功”，一招一式地按照“师傅们”的教诲去练习。\n\n![uiuccsgoogle-1](//images.ctfassets.net/04k2xg9gplcj/6zcaz3dqRGkWGUQY86sO6O/0bf1c35e89a48cae5c77afbf2f97aaeb/uiuccsgoogle-1.jpg)\n\n说到孙老师的课程，我作为一个科班出身的人，觉得老师的课程十分详细和系统！\n\n**对于许多转行、转专业的同学，只要认真刻苦学习，是可以快速得到基本的程序员的素养。**\n\n**对于科班的同学，那就更好了！在温习自己过去的知识的同时，大家还可以学习老师们的思路和分析的方法。**比如，如何用已经知道的知识来解决未知的问题，并且与自己之前对这个问题的理解相互比较。虽然，你可能无法在一时之间领悟招式的变化之精巧，但只要认真去思考不同以及为啥不同，或多或少总能温故知新得到新的体会。而这些新的体会，对你们的工作往往也是大有裨益的！我也是在保持仔细体悟、将大师与自己的想法比较的过程中，得以提升。其实抽象一下，这就是**锻炼自己的problem solving 能力，这个能力恰恰是日后在工作中、在职场上大展身手的内力。**\n\n**对于有工作经验的同学，要记住：面试官对你们的要求是非常高的。**从naming到算法、到思考分析的能力，你都要展现出一个成熟的武林高手的姿态和能力。每一个细节都要仔细打磨，不可用new grad的要求来要求自己。要把每次面试的问题都是当成一个老板交给的任务，在面试中要体现出自己在工作中的能力与素养，写出能work的code真的只是最低的要求。\n\n![uiuccsgoogle-2](//images.ctfassets.net/04k2xg9gplcj/2fYiLnTFdGkU88wqkqYki0/f6a2b4aee87c7822ab6ecaa80e492f3b/uiuccsgoogle-2.jpg)\n\n## 关于面试\n\n在面试过程中，我有好几次“因为一个很小的问题而最终导致错过自己非常非常想要的offer”的经历，这时才知道，如果自己能在平时更注意细节、更多地考虑到每种情况，而不是草草地准备，是多么的重要！但往往已经后悔莫及。**所以，小心谨慎、细致周密地考量，也是一个senior的工程师必不可少的素质。**\n\n对于交流，我之前比较喜欢一下子给出答案，因为很多时候问题的答案是十分显然的。但也有不显然的时候，这个时候如果心虚，就很容易会选择猜一个最有可能的情况来回答。(比如时间复杂度肯定是O(n),O(NlogN), O(n^2)里面几个常见的选嘛……) 但这恰恰正是我交流、或者在面试过程中的最大弱点，因为这表明了我在内心是一个投机主义者，这样的想法是一个成熟的工程师不该拥有的。\n\n如果一眼无法分析出来，就慢慢在纸上把想法写下来，说明了自己的分析想法。就算这次时间关系做不出这题，但O(n)就是O(n), O(n^2)就是O(n^2)，如果现在做题都想着投机糊弄，那以后工作还得了，领导同事怎么敢把十分复杂艰难的任务交给你呢？\n\n![uiuccsgoogle-3](//images.ctfassets.net/04k2xg9gplcj/76e4f51QZigeIwuyqymUQg/b053db2146388bf3613d410cf2a373ed/uiuccsgoogle-3.jpg)\n\n所以很多问题看起来无非是习惯，是交流，但更深层次的问题往往是自己意识上、思想上的问题。想要变得越来越senior，越来越得到领导和同事的信任，那第一要改掉的就是这种想法，从而踏踏实实工作也好，完成任务也好。改变自己既有的思维习惯往往是最难的，但想要达到更高的层次也是必须的，所以千万不可心急，也不可觉得“别人能做到那我也能在短时间内做到”。\n\n**如果能在准备面试的过程中，把自己从一个鲁莽的street smart变成细致周密的book smart，那这些东西对自己生活上也是有益处的。**在美国文化中，这是程序正义，一定要每步都做到，才能说自己做好了这个事。\n\n## 关于提升方法\n\n至于学习的方法，我建议同学们要经常尝试自己重新组织老师讲的知识和内容。\n\n虽然老师讲的很好，同学们听得很过瘾，但这是输入，**输入是老师的不是同学的。**只有同学们能输出了，自己能从白纸上把整个知识架构画出来，能把每一种题型为啥用这个方法说出来，能把自己之前会做的、不会做的题目归类出来（比如，自己会做的题拥有哪些特征，不会做的题目有那些特征，这题其实就是那种题目，这两题其实本质是一样的等等），**拥有拓展迁移的能力**，这时候，这武功才是同学们自己的。因为归根结底，面试时，身边不会有老师的指导，你能依靠的，只有自己平时积累的功力。\n\n在经常用不同的角度去组织老师内容的同时，自己静下来的体悟也是一个必不可少的部分。能做到这些的同学的武功修为，可以算是高手高手高高手了。\n\n在上课时如果犯了错误，那更是大大的好事，因为这样能深刻地让你意识到自己思维上的误区。\n\n还有一个简单的让同学们判断自己的武功修为的办法，就是找一个自己之前觉得棘手又无从下手的问题，等到训练完之后再去做，看看自己能不能有新的体悟，如果有，并且能思路清晰、头头是道地分析，那武功就有一定的长进了。\n\n在上完来Offer的课之后，**我从以前觉得论坛上的人的解法都是正确的，到现在也可以提出自己的更好的解法、给他们做code review了。**\n\n![uiuccsgoogle-4](//images.ctfassets.net/04k2xg9gplcj/25BFKmsgbCwKOkSsSq0GkW/d41c62bc4cac364851cb40db43d61005/uiuccsgoogle-4.jpg)\n\n除了老师们的教导之外，我也看了《Effective Java》, 《Clean Code》, 《Refactoring》一些计算机领域的经典，我觉得这些书也有助于提升自己的内功，更能理解高手们为啥这么出招。\n\n比如，对于“有时明明两种写法都可以，为啥要这样写”的情况，很多时候都是老司机们的经验，但新司机们没有遇到过类似的问题，就不会懂。\n\n总之，多学无害，毕竟在成为一个更高级的程序员的道路上还有很多东西要学，很多思想要去理解。希望同学们在入职后也不要放弃提升自己，技术也如逆水行舟，不进则退。\n\n最后，感谢来Offer对我的帮助，祝大家求职顺利！"}}}]}},"pageContext":{"isCreatedByStatefulCreatePages":false,"langKey":"en-US","pagePath":"/en/stories/2018-01-12-uiuc-google/"}}}