美文网首页知识扩展
EE转CS找工作的面经总结及心得

EE转CS找工作的面经总结及心得

作者: 伊丽娜_Elane | 来源:发表于2016-07-11 12:35 被阅读3089次

    1. 报背景:

    学校及专业:国内Top 10 本科EE(强电方向,无任何CS 背景),美国Top 30 硕士CS

    履历: 已一个学期为单位做阐述,方便新入学的学生有个进度上的参考。只关注方法和面经可以直接跳过。

    从2014年9 月来美国开始,才真正考虑转cs 这件事,并开始行动。

    2014/09 - 2014/12 第一学期,基(JI)本(BEN)适(HUANG)应(FEI)美国生活,学习,学期末递了转专业申请,完成了从EE 转CS Degree 的转换。

    2014/12- 2015/ 01 第一学期寒假,考下了驾照笔试和路考,为暑期在加州的实习做好的很切实际的准备。在udacity 的网站上,上了两门课,一门课JavaScript Basic, 学了最基础的web skills; 另外一门是Pitch Perfect 用swift 写了个iOS app。 因为简历上实在没有任何cs的内容,这些两个项目也算开启了cs 的门路。

    2015/01 - 2015/05  第二学期,开始有了一定要找到湾区的实习的目标,当时skills 上真的很差,但是心里想着一定要找到实习,甚至把男朋友的微信名也改成了,带着实习回来(男票在加州)。接着看到学校有incubator 的项目,就是给在校生给start up 打工,于是关注了这件事 并去投了简历,基本上就是个小型career fair,但因为是start up,可能更加注重match 程度。 第一天人爆满,机会渺茫,所以导致很多人没有去第二天的项目。所以在第二天也成功拿到了有且仅有的offer,就是归功于寒假里关于ios swift 的那个project. 整个一个学期,修了三门cs核心课,做着part time internship,还要找暑期实习 ,现在想想也是难。 跟现在的地里的学生比起来,当时大公司的实习投的真是太少了,想想是因为对自己算法能力的不自信?只有获得过facebook 的两轮电面。最后挂了。匆忙的找到了个湾区的start up 的实习机会。

    2015/05 - 2015/ 08  暑期实习,每天开车上下班。确实能融入到美国工作环境中,每天能知道很多新鲜的词汇,不管是生活上,还是技术上,也能提高口语和听力。 由于想提前毕业,暑期修了一门算法的网课,暑假除了实习 还有一个任务就是写作业加考期中期末考试。但是在start up 的实习,弊端也是明显的,第一当然是工资少,第二 ,没有一个系统,专业的senior,mentor 带着你,基本跟着公司的workflow 完成,所以对于代码的整洁及完成的效率程度自认为肯定不如在大公司。当然也是没有办法的选择。patpat

    2015/ 09 - 2015/12  第二年的秋季学期, 暑期结束后回了国,用实习挣得工资给爸妈一人买了个iphone 6s, 有木有很傲娇啊。 。。跑题啊,回来就面对着找全职的压力,及最后一个学期选课的压力。

    此时大家问,刷题刷的怎么样了?。。。我会说,啥是刷题??

    (这也是我一直的教训,看我下文的面试失败的经验就会知道,原因就是算法不过关,希望入学的新生,可以从得到录取开始就应该着手准备)

    没错,我是从9 月6号回到美国才真正开始刷题,当然3月份在面facebook intern的时候做过一些,但当时都是新鲜事,也就会忘记。  然后就开始刷题,面试,考试,提前毕业,搬家。关于刷题及面试情况请看下文。 

    综上,简历上积累了两个关于ios 的start up 实习,加自己课上及自己的关于app 和web 的几个project,勉强能把简历填满。


    2.  面试流程总结:

    1. 投简历的途径:

    对几个流行的方法的投简历/面试回报率做个统计:

    Career Fair:50% 

    在这里强烈建议参加一些牛校的career fair,尤其是cs 牛校,得到面试的机会大大提高

    内推:80%

    在此感谢好多好多帮我内推的师兄师姐们。

    网投:20%

    每天的垃圾时间就用来做网投

    Recruiter 发Inmail:30 %

    这个分人,有的理你,有的官方回复,有的不理。总之多尝试是对的。

    ziprecruiter,indeed等第三方网站:150% * 0 会收到好多好多contrator 的职位,天天收各种三哥三姐的骚扰电话。

    hired: 150% 在这里推荐一下这个网站,因为你不需要投简历,只需要放一个个人主页,职位会来找你。我的intern 就在这个上找到的,最后hired 还给你邮各种大礼包,什么红酒啊,笔记本啥的。

    全职的优惠更多吧。

    贴链接:https://hired.com

    2. 电面: 

    Hr: 其实hr 没有什么经验可以说,随便说,就当是联系听力与口语,值得注意一下,如果hr 跟你约的时间长度超过或等于30min ,很有可能包括技术问题,可以提前看看面经,或者准备一个电脑在旁边。(你懂的)

    我经历过的hr 考技术的公司有: yelp,pandora,coursehero

    hiring manager 基本流程:自我介绍+他/她自我介绍+职位介绍+做题(or not)+ 问他问题

    这里重要的就是一定表现出对贵team ,贵公司的兴趣程度及了解产品。简历要帖本公司要求的职位,不要别人家招front end 你一个劲跟他们说ios 经历。换句话就是投其所好。

    engineer 电面:自我介绍+他/她自我介绍+职位介绍+做题+ 问他问题

    如果hm面试是预热的话,这一关就是妥妥的考验你硬本事了,coding 是最主要的。然后你的code 还要被复制到hm 去看,所以保持代码的整洁及完善都很重要。然后就是对hm 那一关说过的话,也可以在这一关说,你要知道在他们那里,这两个电面完全是独立的。

    补充一下两点:

    1. 自我介绍:

    地里有如何做自我介绍的模板,简单来说可以分三点,让对方感觉到你不是一口气找着搞在念,而是有逻辑 有头脑 分1,2,3 点来说

    1) 基本背景,学校,专业毕业年份,以及。。。等personality。

    2) 实习及project 经历,从而培养了哪些技能。

    3) 贵公司一直是我梦寐以求的dream,最好也可以讲点故事,如何知道的公司,希望在贵公司得到一个发挥自己一技之长的工作等等。

    2. 关于最后向面试官问问题环节,我基本问以下几个问题,是在网上或同学那知道的: 

    1) 用啥技术 能跟我说说嘛? 这时候你别在人家说的时候一点response 也没有,可以换位思考以下,当你滔滔不绝说你擅长领域的时候,对方啥话也没有,是不是很扫兴,至少来个cool,excerlent。 最好能在技术上有个交流。如果没有就慎问。

    2)对这个职位,需要什么样的人才?As an Engineer(manager), in your opinion, what are the personalities of engineers who are excelling in this position? 这个基本是个不会出错的问题,一般问完这种问题,别人基本会想一下,他们会说it is a good question.

    3. onsite 面试:穿戴整齐,化好淡妆,提前30min 到达公司,check in 喝咖啡 say hello 等等。 跟每一个人开始一个个交流。一般onsite 前两个人比较紧张,后面就不紧张了,但是要打起精神,很多人的问题其实有重复,所以前两关被问到不会的问题,中间一定要查好,知道。不要在一个问题上犯好几次错误。

    4. Follow Up Email:我的习惯就是每面完一个试,都要给安排面试hr 和面试官发email 作为基本的礼仪,有的interviewer 没有邮箱,你可以在linkedin 上发inmail。 email sample 可以看这个链接。

    http://oppin.co/best-of/how-to-email-recruiters-sample/

    3. 面过的公司及面经:

    1. Amplitude: Reverse Linked List Follow up, 判断是否有cycle; Two Sum 变型题

    2. yelp: iOS 内容: frame and size difference, Group Anagram

    3. Health Tap onsite: find the closest node in the binary tree; IOS high-level questions: weak, retain, strong, NSAlert, AutoLayout 表现逊毙了

    4. robin hood: iOS Skype interview for progress view

    5.tile: some CS fundamental knowledge 不靠谱啊,别投

    6.binatechnology: no technique 也不靠谱啊,别投

    7. A9:climbing stairs, word break2

    8. Spunk front end role: hiring manager 电话主要讲简历,而且,问了我知道slunk 是干嘛的吗?我竟然回答了不清楚!!!关于js 的职位,我也觉得自己的并不是很match ,也就没有回音了。

    9. apple safari:一面:itoa 二面: group anagram 及iOS high-level question: 1. arc, 2,mm in OC, 3.GCD dispatch 这个当时一着急,没回答好,估计挂在这了,唉 一度给了我最大的动力,期待与紧张不安的两次面试。

    10. apple performance:一段拿C 写的roman to integer 的代码,要你找出四个运行error,c 都忘光了。接着让我写个方程,1 和0 inverter follow up: don’t use if or while, 其实就是用moduler

    11. ixl learning: return the first duplicate element.

    12. Pandora:HR Screening: 一堆iOS high-level question  记得有一道没有答出来:where is the version number is stored:config/environment.rb,config/application.rb,config/initializers/version.rb电话面试:find the first duplicate element in the array force me to use c language!!!

    13. Nutanix: map two arrays and string. Follow up: if the length of two arrays is not identical.

    14. Antra: oop question 是个类似icc 的公司啊

    15. apple maps:iOS debugging tools:https://developer.apple.com/support/debugging/

    how to debug other’s code

    16. apple test: 主要问了itoa 这道题的思路,如果遇到maxint 和min int 怎么处理

    17. apple power:construct a tree with node equals to 两个树的各个node 之差

    17. apple watch 一轮电面

    问了好多iOS 内容,setter, getter,mvc的好处,process 和thread 差别,

    coding :Fibonacci with and without recursion

    把一个list 里各个数及其occurrence 拿dictionary 的形式print 出来

    18. Facebook: 分别是merge two arrays 和vertical level order traversal

    19. uber: NSNotification 

    20 Pocket gem:Strstr, K top; Sort color , in order successor; a stream data find the number's occurrence more than once.

    21. Apple iAd 组:介绍简历;问有没有c++ 和objective C 混编?  唉 我竟然第一次听说,po 个链接先。http://www.cocoachina.com/bbs/read.php?tid-9111-fpage-3.html; BEST time to buy and sell stock, return the max profit value index in array; Three Sum

    22. Quantcast 电面及onsite:帖链接

    23. Amazon EC2 Group电面及onsite:没经过传统的电面或oa,hm  在linkeidn上问对amazon 感不感兴趣,就随便发了个two sum 的test,找出代码的错误,然后就有了onsite。 (懵逼脸)

    1) container service 是干嘛的,如果一个server down 了,怎么办,distribute system 的内容, 不同的query 如何增加速度,方法是parallel

    2) 印度manager:db project, valid parenthesis

    3) word ladder II

    4) merge interval 类似题

    24. CourseHero:跟这个一样帖链接,已经都做到bug free 了还是挂了。

    25. IxL learning : 地里的电面面经一样,接着收到了oa, 然后就没有然后了!!

    26. Apple iCloud Team, software QA Engineer : 一面: 问了一些qa experience, 做了两道题 分别是reverse string 还有是spryle matrix. 二面: 问了好多ios 内容,具体都cover 在我的那份总结了,做了两道题,第一题,factoril function 的实现,同事要用hash table。 第二题:是给定一个tree, 输入一个level 上的一个值,能返回出同level 的其他值。

    27. ASML: LinkedIn 上主动联系, 电面,问了一堆c++, ds, os 内容,我的cs fundamental questions 里基本cover 这些内容, 当机通知onsite。 onsite: 第一轮,multiply matrix, 给一堆pair(说是xml 文件)<a><b></a>, 给parse 成一个树,要求定义Node class。 quick sort 的实现方法。 第二轮: 还是一堆c++, 一堆design pattern 题,问我知道哪些design pattern(在下只知道mvc, sineleton), 做了一道valid paranththes。 第三轮: 一堆cs 问题,还是围绕design pattern 的多,设计各种class。 第四轮: reverse a string 的各种方法。各种方法。各种方法。 第四轮:记不清了,反正各种virtual function 是啥啊 ,polimorphisom 是啥啊。  总结就是回家 怒读 大话设计模式 和python 的ood了。

    28. hello: 一家做床头senser 的公司,在sf, 产品很有意思,面的ios 内容,具体还是最基本的ios 内容,在总结的资料里。见4 学习方法。 

    4. 学习方法:

    1. 算法学习:

    这方面的学习,我真的是慢慢自己悟出来的,九章的课程,及下文中分享的jikai 的视频,帮助很大,无非是各个数据结构的分类学习,以及在leetcode 题型中分类学习。懂得给自己做出模板库 ,如果不会,自己学会思考。https://www.youtube.com/channel/UCBedpxcU3mTJ-_PrKAP4vEg

    2. iOS 学习:

    进ios 这个坑,真的是机缘巧合,当初随便学了个swift,就得到了两个实习都是跟ios 有关,后来收到了好多apple 各类team 的面试,这应该就是传说中的吸引力法则吧。扯多了。

    最开始是在Udacity 学习swift,当时swift 还没有这么火,oc 还是主流。后再实习必须用oc,就在lynda 上学习了objective C Essential traning, 和ios 课程。

    上完觉得其实有的地方,需要再系统的进行学习,于是上了著名的stanford cs193p,这个课程不建议初学者上,等有了基本语法和ios 基本概念之后再学习会比较好。

    如果以上都效率很高的学习了话,我相信ios 算是已经入门了,接着就是准备面试阶段。

    ios 面试跟普通的面试还是有差别。普通面试顶多就是做算法题,很多人问ios 面试怎么准备?难道用oC 写算法题吗?以下介绍我遇到的ios 面试的基本流程

    1) 每次都会问你一些ios 基本的high level question,这些题其实重复率很高,不理解也得背下来。我把我遇到的以及我总结的贴在文后了,这些题应该能cover 80% 以上的ios 问题。

    2) coding 部分。分以下几类。

    0)  正常的算法题,不限语言解答,如yelp

    1) 我面过两次uber 的ios team,apple 的一个team coding 问题: NSNotification 就是对方给你个模块框架,让你写block 实现NSNotification. 具体参看这个教程:

    https://mikeash.com/pyblog/friday-qa-2011-07-08-lets-build-nsnotificationcenter.html

    2) 还有一部分公司,包括苹果的一个team会让你用obc /swift写算法题,这个其实比较坑,我们很少这么做,对你能力的考察也不是很全面,但是这点我的建议是练习用swift 写简单的算法题,什么叫简单的就是leadcode 的easy,为啥用swift,因为leetcode 支持swift啊。参考https://github.com/soapyigu/LeetCode_Swift

    3)coding assignment: 给你几个小时,几天,写出一个app。 这个相对比较容易。

    4) skype 面试:连接xcode,他让你干啥你就干啥,这种面试只有遇到过一次,公司叫robinhood。而且不能用storyboard。所以在平时也要学着不用storyboard 写代码。

    这里有个小tips: 面试前,可以发邮件问一下hr,关于coding 部分,会限制我的语言吗?也就是most comfortable languages 还是用oc/ swift.  hr 一般都会告诉你,就算她不知道也会跟面试人问一下再告诉你。 如果是前者,你就可以开心的练习算法了,如果是后者 就是1) 和2) 逃不了。

    3. 心态学习:

    1. 心心念念,必有回响。 当时刚入学的时候,我们EE 专业的advisor 就对大家说,找实习要比找全职难多了,不好找。 导致我们很多同学在第一步基本放弃了找实习这件事。 其实这件事就是怎么要求自己怎么来。所以不管来美国读书的转不转cs 的同学,找实习这件事不能放弃,一定要找实习,对你全职得到面试的机会会增加好多。

    2. 别人找到了给予真心祝福,因为同样的能量会反馈给你。对于毕业了再找工作的同学,不要管别人(亲戚,朋友啊,婆婆妈妈什么的)怎么想。不解释

    3. 吸引力法则:当你把整个状态调整到自己想要的最好的状态,才能吸引你想要的频率。把每天刷题,面试想成是你的工作部分,想像不久后的那个充满干劲,效率满满的在dream office 工作的程序员每天的生活状态,这样,你就不会被眼前的面试失利,刷题这些痛苦的内容所厌烦,同时也会干劲十足,同频率的offer 也就到来了。

    4. 每次面完记得总结,这个老生常谈的问题,有时候就是失败的逃避,或是懒惰,从而导致在同一个地方摔倒过三次。

    5. 该attend 的时候就attend, 该出现的地方就要出现,别给了你去office 面试的机会,你还选择电面,原因是可以准备的更充分(我不解释)。其实你出门开车去公司还是做train 去公司都是一种吸引offer 的过程,所以在能出现的地方就准备满满,自信满满的出现。 (女生要美美哒)

    5. 资料分享:

    1. 关于ios 当时总结了必问的问题,这些应该能cover 80% 以上的除了coding以外的问题

    google drive 链接:https://drive.google.com/open?id=0B0_nvMWeIHCUZ2s2eXVOZVJhY28

    2. 刷题参考: 当时多谢tangjikai 同学,其实我也不认识此人,他在youtube 上的视频及分类总结及每道题精炼的讲解对我帮助很大。特意把链接po 出来,造福大家:

    https://www.youtube.com/channel/UCBedpxcU3mTJ-_PrKAP4vEg

    3. 应付电面以及onsite 扯的一堆cs general 问题的总结:

    google drive 链接:https://drive.google.com/open?id=0B0_nvMWeIHCURl9sWkhRb2tqU00

    源于实际面试及这个网站:

    强力推荐:http://programmerinterview.com/

    4. QA 学习: 

    学习基本的概念:http://www.guru99.com/software-testing.html

    学习Web( Selenium )和 mobile (Appium) 的automation framework 学习: Udemy 的两门课,手把手教学, 5 个小时一门课下来就能跟上啦。

    https://www.udemy.com/webdriver-test-automation-framework-step-by-step/learn/v4/content

    https://www.udemy.com/effective-appium-tutorial-with-real-project/learn/v4/overview

    6. 结语

    其实说了这么多,不知道对大家有用的信息量有多少,初心就是把自己的经历,教训以文字的形式总结出来,并分享,方便后人查阅。

    跟地里一发帖就是一堆offer 的大牛们没法比,本身就是在这两年中,慢慢成长的例子,拒信收了无数,offer 有且仅有。先 从Tesla 家, 等修炼一阵再拥抱果园。

    (但是对于一个iOS er 来说能进Apple 是多少日日夜夜以来梦寐以求,每次跑步完成里程的动力,怀着多少感恩的心情拥抱她嘛。)

    我们在美国奋斗的中国人面对的现状,一个人的力量很渺小,但是如果每个人能对彼此发出友谊的帮助,对彼此的进步来一个正能量,相信咱们的处境会更加美好。 我说这个的意思,不是让你期待只要是中国面试官会给你放水,任何的帮助都是在扎实稳打的基本功+良好的品格是前提下的。

    在求职的时候,有个刷题红包群,不能完成刷题就已发红包自罚,还有就是互相得到面试就互相告知哪里有opening,面经分享等,这些都是可取的方案。

    就酱,完结。

    (来自一个理科生-> 理工科专业->书读的很少的作者,文笔粗糙,望见谅)

    相关文章

      网友评论

      本文标题:EE转CS找工作的面经总结及心得

      本文链接:https://www.haomeiwen.com/subject/xtzjdttx.html