本硕ECE找实习惊险上岸总结

9144
25
三天前收到心仪的offer,到今天可算是写完了所有的作业,来给大家分享一下本硕都是ECE的男生是如何在今年如此困难的找实习大军中突围的经验,包括各种踩过的坑,也算是回报地里了。、最后上岸的是湾区某非亚麻大厂,岗位是后端开发。本科是国内Top10 通信,硕士是加州某分校ECE,研究生offer下来之后才决定转cs
关于申请:
先从申请来说吧,我相信和我一样,当时在申请的时候为了传闻中的“排名高”“地理位置好就业”“ECE也能过简历关”这些看起来很好的词骗到ECE专业的绝不只一两个。然而到了这边你才会知道为啥CS title相当重要。
首先是找实习,我从秋天开始一共拿到了6个技术面试,4个都拒了,一个大公司offer一个小公司offer,有两家给了feedback,明确说是只要cs/ce专业的,这里还要点名一家公司datavisor, hr直接说只要海本和清北的,而且还是面完了才说。再分享一下今年我自己收集的数据,同一个学校的CS和ECE的同学,CS能拿到大约8-10个技术面,ECE能稳定拿到的大概只有一个(亚麻),谷歌都不一定,别家就更别说了。大家都知道面试这东西是越面越强的,第一次面试哪怕题再简单你都可能做不出来。然而这并不影响ECE的就业率和cs差不多,毕竟亚麻录人只看运气,今年形式又不好,CS的同学也好多靠亚麻爸爸捞人。即使是这样我还是建议学弟学妹们不要偏听偏信一个学校的整体就业率,最好在选校的时候问清楚实习上岸率是多少,非亚麻的实习上岸率又有多少,这才是学校水平的真实衡量标准。
其次就要说到课程安排了,ECE的课程是真的恶心人,大部分都是数学课不说还基本找工作用不上,而且作业都要手写,还一般都没有录播必须早上6点半起床上早8的课。反观cs一般都是编程课算法课,要记忆和理解的东西从难度上比小波变换啊,滤波器啊,信号编码啥的好多了,而且编程这东西多找找总能找到参考的(github)。上学期我cs课的一次都没去过,两门都是A,ECE的课就一门还没回放,辛辛苦苦学了一个学期还是只有A-,真的能把人气死。而且ECE的这些数学课严重影响你准备面试or刷题,一个人的精力是有限的,又想门门拿A又想优化简历又想刷题,那就只能牺牲个人生活了。所以建议大家转码一定要直接申cs,再差的学校都要去。
关于刷题:
我自己是从4月份开始刷的,到9月入学的时候差不多有400道medium+easy了。这里是我犯的一个错误,使用java刷题。我并不是说java不好,实际上java是我用的时间最久的语言,所以我想当然就用他来刷题,刷的时候逻辑清晰,答案全面,而且语法和数据结构纯熟。然而刷题就是为了面试,而面试和刷题很重要的一个区别就是,面试的时候没有代码补全,而且时间很有限。假设常规的5+20+20的一轮面试,两道题,上来和面试官沟通题目细节确定边界条件3分钟,最后和面试官follow up 5分钟,想最优算法两分钟,就剩10分钟给你编码写一道题了,很有可能还是没见过的。最开始的两个面试我是用java面的,写完倒是都写完了,但是面试官的follow up我就只能说一下思路,没时间写了。到后面10月末开始我直接开始用python刷题,后面的3个面试我再也没有因为写代码写不完超时过。我觉得这真的很重要,你写的代码越少,留给你思考的时间就越多,更别说java的代码量比python一般都长不少。还有一点就是java的数组格式很讨厌,尤其是输入是数组输出是数组但是输出长度未知的时候,要int转list再转回来,python的list就没这个问题。
其次我还要说的很重要的一个坑就是我不写hard。因为我从学长那里听说实习的面试不会太难,都是medium难度,所以我就只写medium。从我自己和同学的面试反馈来看,除了狗其他的面试的确都是medium难度,但是有两个问题,一个是你不写hard,遇到一个没见到过的medium,很难在10分钟之内bug free,其次是你不写hard,有些follow up基本答不上来,甚至是那些不要求编码只说个思路你都说不出来。比如dp的空间压缩,马拉车,KMP模式匹配。其实hard并没有那么难,只是大家都觉得既然只考medium,为什么要学hard,又浪费时间又浪费精力。但是我奉劝想把机会把握在自己手里的同学,一定要刷hard,只有真正了解一个题的各种出法之后你在面试的时候才能做到和面试官侃侃而谈,咋问都不怕。
我在找工的季节是坚持每天写两道hard,9月开始,到现在已经基本都写一遍了,其实写多了也就不难了,无非就是那么些个套路。
关于优化简历:
这个我感觉我也比较有发言权,因为我能明显的感觉到简历优化的各种手段带来的效果,直观的就是加上xxx之后收到的oa变多了。主要有以下几个方面吧:
1. 找个国内实习。
这个不多说了,因为我也知道大四能去实习的实在是很少很难,但是这个的确是能大幅度提高你的简历含金量,比如头条的后端,外企实习等等。关于外企实习的好处我觉得大家可以从地里比较有名的id的帖子看效果,比如哥大懒猫同学等。但是一般来说能找到国内大厂实习的估计也不会申到ece了,所以参考价值不大。
2.自己做项目。
这个其实在地里已经是老生常谈了,但是很遗憾我必须要说自己做的项目,除非你是开源的有demo或者在app store上架了能查到,否则意义真的是很小很小。因为大家都知道这个只是toy,面试官也知道,人家毕竟面了这么多candicate,你再怎么吹只要拿不出具体的网站或者使用数据都是不可信的。所以我就从这两点着手,做项目的时候优先挑选能放出来的,比如在自己的服务器上搭建平台主页,为开源项目贡献代码,自己从零搭建一个博客网站等等。面试的时候不止一次有面试官打开我的网站看我的网页效果和github,这真的很有用。talk is cheap,show me your github.
还有一点就是我个人不建议简历上放自己完全不会的东西,因为面试的时候面试官真的会问的,起码你要懂他的基本逻辑是什么,比如redis你写了就要知道他是基于线性实现高速存储的,还有他是使用分布式锁的等等。我一开始的时候也是放自己不会的东西在简历上,第一场面试的时候我能明显感觉到我答错的时候面试官的情绪变化,这不是个好事。
3.上网课
网课一定要有证书,比如coursera,证书可以大大提升你的专业背景,至少看起来你和纯cs的更像了。
关于面试技巧:
面试这个东西,真的不是把题写出来就能过的,我之前也觉得,我题写出来了啊为什么还是给我挂了呢。其实面试得分 = 50*运气+25*口语+25*做题水平和速度。首先运气是最重要的,无论什么东西都比不上运气,详见亚麻。没运气two sum你也过不了。其次就是口语,我之前一度觉得自己口语很好,直到我在美服和外国人开黑打游戏,经常被说f*** English,甚至还有人用中文说你能不能把英语练练再装外国人。面试官的感受也是这样,谁想和一个说话都听不懂的人共事呢。一个信号就是,你在面试中,面试官如果经常让你重复,或者你经常让面试官重复,甚至你们都是打字交流,那这场面试基本是没了。
最后的就是做题了,这个只能自求多福,我直观的感受是代码一定要写完,代码写不完的面试全挂了,代码写完了的不一定挂,所以平常写代码就要卡时间,10分钟一道medium不带补全,20分钟一道hard,能一行的绝不两行,能lambda的绝对不写匿名类。
祝转码的大伙都能上岸!这条路希望还是很大的,就是真的累啊。不过反过来想想,不是这么累凭什么能够和CS科班同学达到一样的水平拿到一样的offer呢?
  • 72
25条回复