22Spring USC EE general track硬件方向就读,找工(实习)体验分享

19256
36
前段时间在地里咨询相关的实习工作选择问题收获地里各位前辈的意见,实在感激;这两天是春假,于是想写一个就读体验帖,想给有兴趣从事硬件,更甚是想来usc ee的小伙伴们一些我们这一年多来的就读感受,以及一些找实习重要的时间点。

在开启全文之前需要列出往年usc ee前辈的课程推荐帖以及就业方向的帖子,在还没来到usc就读之前,就是靠这几份选课攻略有了大致的认知,十分感谢~
# **课程选择向:**
[最详细USC MSEE VLSI专业介绍|一亩三分地院系介绍版](instant.1point3acres.cn)
“最详细USC MSEE VLSI专业介绍”,如标题所示,这无疑是我能找到的对于我们专业选课的选择最详细的解读了;穿插在选课的部分我想解释一下,即使我们的track是general,但这不妨碍依旧走VLSI的track,当初是从两个角度考虑了选择general:第一,vlsi对于签证办理的风险实在过大,就走general保险一点;第二:general的选课自由度最大,想走什么track(under EE major)都可以,vlsi之前就听说有一门模电属于必修课,难度巨大;general可以避开;目前我是第二年,我目前的选课如下:
**22spring:EE457**(普神,digital design+architecture)+**EE477**(shahin,physical design)经典开局;
**普爷爷**真的没话说,ee457尤为精髓,每节课手写笔记,知识点信手拈来,讲得明白,考试也很硬核,课程基本需要回听两遍至少,每次都有新体验hhh,**a/a-有50%**;**shahin** emmm,有好有坏,他的课程我觉得sta(静态时序分析)那块我觉得讲的挺不错的,其他部分多少沾点水,课程的project很不错,是从事physical design工作很重要的必备技能点;**给分十分不错,比457还好**,课程压力也不大,搭配457一起食用很不错。457授课老师,在普爷爷退休之前应该一直是他;不过477貌似每学期老师都是有可能变化的~
**22summer:EE560**(**普神**,digital design+architecture);
457的进阶课程,**给分和457差不多**,457 a-/a;或者一些指定课程两门都是b+就可以报名;我们22spring的小伙伴实习上岸率较高的一大部分原因就是在第一个暑假上了这一门课,基本简历的6成内容是靠这课的project撑起来的;pcie,axi,tomasulo;有硬核、业界正在用的一些内容,所以简历上会相比于以前出彩很多;暑期上这一门课就很酸爽了,很忙;想起来那个暑假上课期间还喜提新冠,简直不要太煎熬。虽然560有很多有价值的project,但是不练习很多coding能力,因为都是挖空填部分代码,适合课下自己多多研究,所以从联系Verilog的coding能力,还是577b最顶!
**22fall:EE577a**(Sridhar Narayanan+Sandeep Gupta,physical design)+**EE658**(moe tabar,DFT);
577a是477的进阶,会做一些更复杂的project,SRAM的设计,有用且重要(ppa,power、performance、area都会有所涉及);这门课上完,pd基本上可以开始找工作了,假设你对pd不感兴趣,这门课其实是可以不要上的,不过这是577b的前置课程,所以想要学rtl的你,需要自己权衡一下了;658这门课其实特别好,dft业界需求大且高校开课少,是一门很适合找工以及扩展自己IC技能树的一门课,可是奈何老师摆烂,一位在meta上班的老哥,上课念ppt,一节课哐哐刷ppt,都是可以展开的内容,非让我们自学,想学好需要大量时间;project对于没有cpp基础的学生(我)来说十分致命。**到了5开头给分就没有4那么好了,具体比例不清楚。**
(因为dft这个工作是跟着整个ic流程的,所以想做dft的话前端后端都得会,457 560 477 577a 577b都得上,实在没有条件或者不想上这么多课的,至少得保证457+477+熟练使用verilog。此外,这个meta的老哥是做sde的,这门课的project也是偏向算法(用cpp或者python)用处不是很大,dft业界就没有人做算法。主要熟悉scan,bist,jtag这些东西以及verilog。**来自我的dft实习伙伴的分享**)
**23spring:EE577b**(moe tabar, digital/rtl design) + **EE576**(J. Joshua Yang,忆阻器/前沿存储)
ee577b,没错老师还是这个meta老哥,不过不论从内容还是project上都会比658好;有pre,我觉得是很不错的内容,结合project,我觉得是对于即将步入职场的我们很好的一次系统性训练(是基于自己对project的理解,在课上分享认为可以实现的、有创新的地方。类似于业界做产品的时候的创新以及展示,这对从事design方向,需要有自己的新的设计思路是很有锻炼的,**来自pd的神伙伴的分享**);对于verilog语言也有很好的训练;576是水课,凑学分,上一年太累了,这学期想轻松一些就没选硬核课。还没出分,所以还不清楚~(**和学长的交流来看,想练习Verilog的办法其实有很多,可以去开源网站自己写cpu,可以用学分去学自己更感兴趣的课程,看个人选择,例如选一门软件相关的课程ee538,因为进入职场之后对于脚本语言的理解还是很重要的**)
**来自apple学长的对ee552观点**:
552比较适合水学分(Prof. Peter Beerel授课,一个非常可爱的白人老头),期末我们班的平均绩点有3.5到3.6左右,认识的同学基本都能拿A。平心而论,这门课所教的大部分知识和Project在面试中基本用不上,Peter在第一节课也跟我们说如果是为了找工作,就不要选他的课。但是!这门课对拓展自己的眼界非常有用,你会知道世界上不只有Synchronous Circuit,也有纯异步的解决方案,而且也确实在诸如Apple和Intel这样的大公司有少量的应用,可以让你在面试快结束和Interviewer闲聊的时候让他耳目一新。另外,这门课会详细地讲解IC设计中两个很重要的概念:Metastability和Clock Domain Crossing (CDC),从理论上解释为什么Metastability是不可避免的,和如何用一些方法去降低出错的概率。这门课的Project是用SystemVerilog来做一个Network on Chip,但是面试中根本没用到(因为业界没人懂),所以这里就一笔带过。总的来说,如果不是抱着非常着急找工作的心态来选课的话,还是很建议选552的。
这些都是我自己上过的课,更全面更详细的课程大家可以去上面的链接里面看看,一定会有收获,**记住,gpa在硬件行业挺重要的**!
# **就业相关:**
**DV向:**
[USC VLSI 毕业两年感受和一点点经验|一亩三分地院系介绍版](instant.1point3acres.cn)
[USC VLSI DV方向 学习/找工作经验小结|一亩三分地院系介绍版](instant.1point3acres.cn)
[Preparing ASIC Design Verification Interview|一亩三分地海外面经版](1point3acres.com)
嘶,为什么看完都是dv的找工总结贴,明明usc没有一门课是针对dv设置的,这是ee课程设置缺失的很重要的一部分;不过也侧面说明了dv的需求量很大,如果真的想接触一点sv的话,可以尝试上一下ee552;
楼主和身边的朋友们的找实习方向基本都是从**digital design**和**physical design**两个方向,和课程走向一致;展开介绍之前是不得不吹一波spring学期的时间节奏安排;spring入学,就读不满一年,因此第一年无缘实习,不过从硬件的角度来说,即使fall入学,想找到下一个暑假的实习难度也是蛮大的,一是:课程压力大,没时间准备;二是:时间确实仓促,技能不足;刚好,我们可以利用第一个暑假读560,可以让自己的时间利用起来;简历也能充实起来;在暑期结束后,基本就具备找实习的条件了,几位朋友摩拳擦掌开始没头脑的跃跃欲试;来到了第一个career fair,在**九月中旬**;也不知道是出于这两年的经济形势影响还是一直如此,来cf的硬件公司一直不算多,所以cf的作用因人而异,我的建议还是认真对待,你根本不知道机会会在什么时间到来,所以你需要一直做好准备;我们朋友几个第一个拿到offer的人就是在cf里面投的简历,第二天就笔试,接着面试;一周内就拿到offer,没错紧接着就是大面积的hiring freeze,朋友赶上了末班车;恐惧的氛围蔓延在找实习的同学身边,好在硬件公司的反应速度要稍微慢一点,我呀就是疯狂投,不会有cs的公司多,但是截止现在也有一两百的岗位,大几十的公司;陆续我拿到了六七个面试(这也是和cs不同的地方,硬件公司过简历关直接发面试,两轮基本;苹果例外hhh),在**十一月底**拿到第一个offer,历时两个半月,最后截止**一月底**,拿到三家offer;从身边朋友的面试案例来看,虽然很多公司会在**三月初**逐步结束暑期实习生的招聘,但是我不建议大家松懈,还是会有公司不断发面试的,坚持到最后!不用太担心,usc硬件的校友网络强大无比,可以说基本上每一个硬件公司你都能找到我们trojan的身影!
关于找实习的准备资料,我特别推荐白皮书(**Digital Logic RTL & Verilog Interview Questions)**,建议看透~
朋友分岗位总结:
**找dv:**找dv工作的话需要verilog+sv+算法。所以建议457,477,560,cs570,577b比较重要。577a对于找dv工作没什么帮助,但是他是577b的前置课程。552课程项目是用sv写的,但是做的东西和dv没什么关系,只能当作锻炼sv。所以这三门课看个人需求。
**找pd:**pd的话就是477+577,477学好的话,找pd实习基本上问题不是很大,577会在477基础上提高一点难度,加一个sram。建议477结束就可以准备开始投实习简历了。如果找暑假的实习,建议在前一年的9-11月投简历,晚了的话很多公司都招满了,会难找很多。
**找design:**想找design的工作,最核心的两门课是560和577b。560更多的是project。tomasulo和axi这两个项目最重要,工业界用的非常多,基本上每次面试都会问到这两个内容。有条件的同学可以再学一下ahb和apb,对于简历来说是个很大的加分项。577b这门课就是教你熟练使用verilog。课程项目以及上课的内容也是经常容易面试的时候遇到,多找一些小module去自己写写,推荐两个网站:**hdlbits,zipcpu**;ahb,axi,formal verification很重要!
最后关于找实习俺想说几点:
**第一,不要畏难,万事开头难。**从陆本过来的我们无疑需要适应很多东西,语言也谈不上流利,冲就完事了,基本上每场面试下面体验都还行,都蛮nice,华人前辈面试比例也挺高;
**第二,多social,领英用起来。**我现在决定去的公司就是我在领英直接message vp联系的,然后让我去找组里老板,然后下周一就发来面试了;
**第三,坚持呀。**找工作的道路是艰难的,蛮多次快要崩溃的时刻,但是只要坚持下来,大家总会有笑脸的~
**第四,交流。**无论是学习还是工作,都需要和身边的朋友同学多交流,相互帮助,相互分享经验~
**第五,要早!**找工作这个事情很难有准备充分的时候,一定要尽早准备,尽早投简历,越到后面越被动,越难。
生活上面我就不多赘述了,因人而异,差异性很大;不过我想给各位一些tips,如果想补贴一些生活费,课程的mentor和grader是不错的选择,机会很多,不过一定要提前和教授多沟通,混脸熟,提前拿到机会~
最后,整篇分享帖不是我一个人的内容,结合了很多同届以及前辈们的经验,在此**特别感谢**他们!希望可以给所有学习硬件的伙伴们一些帮助,也希望硬件的朋友可以在评论区分享自己的观点,感谢!求加米!

补充内容 (2023-03-28 02:00 +8:00):
------------------------------同届去apple dv的同学的补充-------------------------------------
1. 课程安排: 找DV的话我现在回想起来比较推荐通过以下的选课方式:457 477 557 560 595 538 658 + 任意水课或DR; 577A对DV几乎没有帮助, 577B因为有577A的前置要求所以也不推荐(相关的设计题目其实自己画一点时间刷一刷HDLbits, 逛逛牛客网或者CSDN就够了)有点浪费学分,其他的课没有了解过就不作多的建议了哈哈。不过如果有653的话还是很推荐,Murali 讲的很好。(对了新来的老师Christopher 教557的, 当时邀请我去当mentor 因为考虑到找工季时间紧所以拒绝了, 但是和他的聊天之中感觉他对教学的热情很强烈,而且想更新557的project → hardware acceleration。 但是具体怎么样就看这一届的学弟们的反馈了哈哈; 如果是JP Walter 就不建议上557 给分奇低而且讲的不好)

2. 技能:因为DV这个岗位本身是比较偏软的,所以对算法以及软件编程的思维还是有一定要求, 所以建议有空就刷一刷leetcode easy 的题,能锻很好的锻炼一下相关的问题解决能力,包括各类数据结构(链表尤其重要)的灵活应用。我的建议是刷题多用C++,写脚本的话用python就好了, 主要是pattern match 和hashing要熟练操作。然后就SV和UVM的相关知识,必须要自己规划好时间自学,最好是能有一两个相关的项目,这样也会更加match jd。相关资料的话,国内的培训班的课可以带你入门,但是绝对不能只依赖培训班。

后续这个同学自己也会有相关的帖子发布,大家可以多关注~
  • 192
36条回复