Tian Zhang:14年fall西北大学的学生,现任Snap软件工程师。本科专业EE,有少量硬件编程基础。14Fall进入西北EE Master项目,第二个quarter转入CS专业。16年6月入职Snap,17年1月升级。日常工作为web + data,搭建对内&外的工具,主营后端。

EE转CS有什么学习心得?

如何了解大公司的职位信息?

在美国公司如何快速晋升,

突破天花板?

——学姐做客西北大学来Coder Club为学弟学妹指点迷津

Club小助手:学姐好!首先想请问学姐,你当时在找全职工作的时候有实习经历吗?没在美国实习过是很大劣势吗?

Tian:西北大学的学弟学妹们好!第一个问题就有些伤感:P 我当时也试图在美国找实习,后来没找到,只好回北京找了一个小公司实习。但不管怎样,还是建议大家去实习,因为面试的时候,面试官拿着你简历,最好的开始就是谈一谈你实习做了什么。你在实习中做的Project或许不怎么fancy,这也很可能是因为Manager不给你好的Project,不必担心。我也明白找实习的确是挺难的,比如像我自己就没有找到。我想告诉大家的是,并不是没有实习就一定找不到工作。比如,你可以自己做几个Project——找不到实习,那就靠自己。或者你的数据结构算法足够强,这个也可以弥补没有实习经历的劣势。

Club小助手:学姐这么一说,应该会让担心自己缺乏实习经历的同学们稍微松一口气了。这里有一位同学问,往前端和全栈方向发展的话除了算法还要准备什么呢?面试会考些什么?

Tian:我是主后端,虽然也做一些全栈,但我可能不能非常好地回答你这个问题,仅仅说一下自己的看法吧,毕竟也和组里很多做前端和全栈的人共事。 前端,我觉得可能就属于入门容易,成为大师非常难的那种;可能谁都能做,但是做得好很难。我们组的一个Senior,写得框架全公司都通用,非常厉害。如果你想要往这个级别发展,还是会很有前途的。根据我的了解,前端工程师在面试时会被要求现场搭一个东西,这是一个前端的面试官跟我说的。面试官会告诉应聘者需要搭建一个怎样的网页,你现场就得搭出来。至于如何准备,我觉得最好的办法就是自己做一个fancy的网站然后甩他一脸。因为前端不像数据结构算法这些,可以出个题然后讨论。当然全栈的话肯定涉及后端的问题,这些会考察的数据结构以及算法知识都是一样的。 我觉得作为一个软件工程师,不管你是做什么的,考考这些基础内容都不过分。所以这方面知识还是要巩固的,不能丢下。

Club小助手:下面这个问题是小助手本人最关心的!学姐仅半年就在snapchat升了一级,你觉得获得快速晋升的要诀是什么?什么样的品质是求职发展必不可少的?

Tian:这个快速晋升,其实我觉得算不上多么了不起的成就,要说原因,主要可能还是我比较努力吧。另一方面,除了埋头干活,我比较喜欢想事情。比如大部分刚进来的new grad就是让你修修bug,给senior打打下手。然后可能就会让你自己做一个项目的一部分让你慢慢独立;当你能独立做项目的时候,再给你升一级。我刚开始也是从修bug开始的,但这个过程也能体现你的能力。你可以在这个过程中问一些有价值的问题,比如:我们system为什么要这样构建,而非那样的方式?或者你可以提出这个方法比那个方法更好,值得一试。 很多时候,因为资料尚浅,你的很多想法未必是对的,但这都是你的上司能理解和体量的,同时他们也会开始考虑是不是可以给你安排一个更难的项目。当时由于某些机缘巧合的原因,我刚进Snap没几个月,Manager就让我独立写一个项目。 当时他的设想是所有的布局构思都由他和一个senior做好,我只需写code就行。然而我觉得还是有点不甘心。于是有一次,他们俩还在讨论一个还非常模糊的构思的时候,我自己花了点时间,把每一步都画成流程图非常清晰地设计出来,包括一些他们没有想到的细节。这其实并不难,只要你愿意自己去琢磨,都能把问题想清楚。我就在组会上主动把我的方案提出来,问他们这样行不行。Manager给了我展示的机会,让我能够讲解自己的思路。当然我的方案有很多毛病,但这已经比你自己埋头干活要强太多了,而且Manager他们也给我提了许多中肯的意见。所以,学会提出自己的想法是非常重要的。

Club小助手:说得太好了!那学姐对自己以后的工作发展会有什么样的打算呢?有什么好的职业发展建议给这些即将入职的CS的学弟学妹吗?

Tian:对于我自己的职业发展,我就简单说一说。我现在的公司是Snap,我非常喜欢我的工作,也非常喜欢洛杉矶这个城市。我也非常幸运经历了Snap从Startup变成上市公司的过程。我承认在IT公司三五年跳个槽很正常。不过我觉得未来两到三年内,我还会在这里,但我会transfer一下不同的组做一做尝试。 我现在对后端data比较感兴趣,但毕竟我们公司的主要产品是mobile app,所以也可能去app组,总之就是多多尝试。相对于做一个level 比较高的engineer ,我还是更喜欢做一个Manager,因为尽管我也喜欢技术,但更喜欢和人打交道。

Club小助手:学姐关于事业发展的见解对我们的启发特别大!不过就像你说的,技术过硬和坚持不懈的努力是前提和基础。那么根据面试以及这一年多的工作经验,学姐对在校学生有没有什么课程推荐?

Tian:因为我自己是EE转CS,从转专业的角度来说,数据结构与算法是最最最重要的,就算是旁听都得学完。此外Computer System也是必不可少的。其他的就是一些技能的课,以及操作系统课也很不错,学有余力的同学可以考虑。

Club小助手:西北大学来Coder Club中大部分学生都将在今年12月份毕业,对于这些同学来说,投简历的黄金时间是什么时候呢?

Tian:无论你会在什么时间毕业,8月底至12月上旬都是大公司招聘new grad的黄金期,这个时期内投递简历是比较容易获得面试机会的。而等到12月底到来年1月初,由于HR们大都在放假,所以很少给出面试邀约。等到1-2 月份,也会有一批面试,但到了3月份,只有少数公司如Amazon还会继续招人了。尽管时间紧迫,仍然要告诫大家一定要在自己准备好后再投简历,随意申请最后把自己搞在冷冻期里就不好了。 而且,即便9月-11月是招聘的黄金期,公司其实是全年都在招人的,我的同学们在几月份拿到Offer的都大有人在。

Club小助手:那么学姐在工作面试中有哪些技巧?如何正确与面试官沟通?如何博得面试官多一些的好感?

Tian:首先想要建议大家,面试时少一些套路多一些真诚。 不要太在意所谓的tips或者技巧,要关注在如何从各方面提高自己,把自己打造成招聘者想要的人。面试一般考察非tech和tech两个方面。 非tech方面,语言是最重要的工具,大家必须提高自己的交流能力,无论是中文和英文。因为工作的关系,我现在也经常需要面试求职者。我发现很多美国年轻人和人交流时,会让人有种很愿意和他们聊天的感觉。而很多中国学生在这点上就很吃亏,感觉我向他们搭话时他们都没有积极的反应,这样面试官要如何对你另眼相看呢?因此,想要面试成功,首先就要让自己变成一个善于和别人主动沟通的人。面试中的Behavior Questions其实是最好准备的,2天或1周的时间就可以把所有典型问题都准备一遍。 我当年是这么准备的。首先,不要写稿,保证交流的自然。在准备时,可以对着镜子说,边说边观察自己的表情和态度。如果能打动你自己,就一定可以打动面试官。我认为整个面试的过程就是交流能力的体现,包括在技术部分;只有表达得到位,才能让别人知道你的能力。

在技术面试阶段,面试官可能给你一个比较大的问题,暗藏了很多坑,这时候就要看你如何和面试官沟通,找到这些坑,并把这些坑填上。找到问题之后就要开始写代码了吗?并不是。一定要Think loudly,让面试官知道你在想什么,怎么想的,这点非常重要。 比如面试官问了一个问题,你可能想出来一个n^2的方法,这时候你一定要说出来你有一个n^2的解法是什么样的,并且你也知道这不是最好的,正在继续思考。面试官在了解你的想法后,可能会指点一二,帮助你找到更好的解法。如果面试官觉得你的想法还不错,你就可以开始写code。这时候也需要换位思考:如果有人一下扔给你好几千行代码,你肯定不会有耐心看。所以面试的时候要边说边写,把逻辑思路告诉面试官。 例如,我现在要实现什么,需要包一个函数,一定要把自己的思路介绍给对方。写完之后,试官可能会让你Debug,分析下时间复杂度什么的。因为复杂度也就那么几个,有的同学会猜,这恰恰是面试的大忌!千万不要猜答案,要把自己分析思路说出来。总之,我觉得硬实力是最基础的,但是软实力即沟通能力并不比硬实力的重要性低,希望大家注意。

Club小助手:谢谢学姐为我们还原一个真实的面试场景!对于还没有拿到面试机会的同学来说,找内推是他们关注的重点。请教学姐,内推对找工作或实习的帮助到底有多大?作为一个在校学生,怎样才能找到可靠的内推?

Tian:这个问题的答案取决于目标公司,内推人,以及何时内推。普遍来讲,有内推还是比自己找工作好太多!大部分内推会让推荐你的人写段话,了解你的人会写的比较详细,这可能会非常有用。我有一个很厉害的学弟应聘Snapchat,找我做内推。一开始,不知道出于什么原因,他的简历居然被刷下去了,连面试机会都没得到。我知道以后就去找HR说,这是我认识多年的学弟,他的确很优秀,应该给他一个面试机会。最后HR同意了我的请求,把他的简历“捞”了上来,而我的这位学弟顺利通过了面试并拿到了offer。所以说熟人内推,可能是你和这个公司建立联系的最好方式。

在找工作时,我在我想进的大公司都找到了自己的校友。对于这点,我觉得大部分同学刚来美国,人脉很少,来offer就是获取内推资源的绝佳平台。我在来offer上课期间,不仅老师帮我内推了不少公司,同学之间也会相互帮助推,可以说在来offer,你想去的公司都会有同学可以作为你的推荐人。