热门关键词:
([持续演进] 应届生 FPGA 就业,一点微小的看法)
目前演进版本:V1.0
近来有挺多朋友来咨询,学习FPGA的出路,毕业上哪搬砖\狗头
阿不.....是咨询学习FPGA的就业前景,有哪些高薪职位虚位以待。
不断演进的本文,尝试回答同学们与FPGA就业相关的其他问题。努力不说空话套话,尽可能举自己或者身边人遇到的情况作为例子。但样本有限,难免主观,请仅供参考。
有些问题确实是朋友们提出的,有些就是孙悟空叔叔有几个妖精女朋友——我自己扯的。问题不断演进,可以点赞收藏投币三连哦。
Q0:我适合做硬件么?要不要考虑其他,比如软件开发的工作?
FellowUheart~看你对硬件有没有感觉。目前可见的是硬件工作干过35应该问题不大~
//TODO有机会详谈
Q1:FPGA有哪些就业方向,公司与职位?这些职位需要哪些软硬技能?
详见本文前半部分:高薪职业/敢问路在何方。
Q2:在春/秋招面试中有哪些常见的问题?
//TODO
Q3:需不需要为笔试刷题?
我觉得就抱着学习的态度去做题好了,数字领域题目就这么多,做题的时候就去了解下相关方面。做一题会一知识点,我想不存在刷题这一说。
Q4:从哪里获得求职信息,你说的公司我都没听说过,更别说他们门朝哪开了(现代语境:更别说他们左边公众号右边叫啥了)
详见本文后半部分:坐观垂钓者,徒有羡鱼情
Q5:关于简历,你有什么想说的?
详见本文后半部分:制作一份简历最糟糕的时机是在你需要简历时
Q6:FPGAer转战IC需要学习哪些技能?
详见本文后半部分:SoC设计验证工程师/另:FPGAer转战IC需要学习哪些技能?
Q7:是否需要实习,实习是去大公司还是小公司?
详见本文后半部分:有关实习这件事。
Q8:如何提高自己的Verilog/数字电路EDA/计算机网络/脚本语言....
//TODO文末推荐了一些知乎专栏,不断更新整理
Q9:有哪些FPGA/集成电路的竞赛
近来相关赛事不断红火,推荐几项比赛:华为创芯大赛(夏季),全国大学生集成电路创新创业大赛(夏季),复旦微杯(秋季)以及传统的研究生电子竞赛(夏季),研电赛除企业命题外,基于已有项目,其余皆为为组委会命题。
另外还了解到有全国大学生FPGA创新设计竞赛和EDA创新挑战赛,应该在秋季,但没参加过不是太了解。
Q1:FPGA有哪些就业方向,公司与职位?
我做了一张图来简单说说有哪些公司,哪些职位会看重/需要FPGA背景
下方大图
Q1.1:这些职位需要哪些软硬技能?
开始接触了解一个行业,浏览招聘网站是一个免费,还算有效的方法。总体上51job是规模相对较大的网站,覆盖大部分公司。在细分领域,摩尔精英在半导体领域有不错的公司覆盖率。实习可以看看实习僧,等到了实习季节,我们更新下实习相关的内容吧。
那么FPGA会有哪些公司/职位,我们看一下51job。这只是我在2020年随手搜索得到,只是举一个例子,详细的内容读者可以自己去看看。
那么这些职位需要哪些技能点,我们来看几份JD,JobDescription。
使用FPGA来开发低延迟的交易系统,在通用技能之外,需要有对计算机网络有深刻的了解。是FPGA+网络的组合,面向低延迟网络的定制开发。
使用FPGA开发自动驾驶相关的产品,需要熟悉FPGA的开发流程熟悉,掌握厂商的芯片和工具(脑补面试:说说吧,Xilinx/Altera(Intel)的产品系列有哪些)
熟悉经常用到的IP,比如最基础的FIFO,RAM到乘法器等等。熟悉总线规范,基本上需要熟悉的是AXI总线。
了解SoC嵌入式架构,翻译翻译就是:ARM(或其他处理器)+FPGA。有项目开发经验,图像处理经验。所以这是一个面向FPGA+嵌入式架构+图像处理的岗位。
开发通信产品的工程师要求你根据开发的不同系统掌握通信方面的知识。通信设备主要包括基站,数据中心的网络设备等。研究所会有水下通信,卫星通信,空间通信等稍小众的通信应用,这些涉及到计算机网络,交换技术,无线通信,信号处理,光纤通信等领域。
了解到一方面到很多研究所的大部分岗位不提供编制,签约的对象往往是研究所下属的某某公司,但研究所相比公司还是会有一些不同之处。比如保密制度,户口制度等等。但说起来如今一些研究所工作强度并不低,抗压能力不是说说而已。
大家可能对研究所有一些片面的认识,首先研究所分很多系统,航空,航天,电科,中科院,船舶等等,所的数量也很多。而且每个所每个科室的情况都可能很不一样。关键大家不能迟滞于过去的认识,还是要用发展的眼光看待。
其实还有一条完全可以设想的道路,适合部分同学,那就是现场应用工程/应用工程师。一条不同于开发工程师的道路
现场应用工程师,FieldApplicationEngineer,没错Field就是FPGA中的“F”。两者的工作都是在用户使用产品的过程中解答用户关于产品的疑问,提供技术支持。FAE可能会更多地来到用户的工作场所直接提供技术支持。大家有过调试经验的知道,现场调试一般比远程支持效率高得多,但对工程师的要求也越高。
应用工程师一方面要懂技术,有丰富的调试经验。翻译翻译就是,要能解决开发中的问题。AE需要对自家的产品非常了解,还没客户懂就尴尬了。AE也需要对友商的产品了如指掌,“友商的产品巴拉巴拉,我们的产品也能做到,还更便宜!”大体如是了。
AE最好能对一些复杂的接口或者IP很了解,毕竟越复杂的地方,客户也就越容易出现问题。
应用工程师也需要懂市场,有很好的表达能力。因为AE也需要支持市场推广,更多地要向客户提供技术培训,和客户打交道。英语能力也很重要,在外企或者国外品牌的代理更是如此。因为客户的问题可能也难倒了你,需要找美国的研发Tony老师问问,或者找日本的AE同行打听打听。
FAE/AE适合不想完全搞技术,喜欢和人打交道的同学,也适合本科毕业的同学,对研究生学历的要求比较少。
Bytheway,MicroSemi的全球客户支持不错,在他们网站留下问题,会有专门的工程师邮件联系你帮助解决问题。比某X家的论坛发帖效率高多了。而且只需要你用企业邮箱,也不需要你提供购买凭证什么的。
芯片公司也有FPGA相关的岗位?是的,但除了部分原厂外(安路,高云,紫光同创,复旦微,莱迪斯,而X/I两家在国内几无硬件设计岗位)FPGA相关的工作不是设计FPGA芯片,而是使用FPGA作为ASIC芯片的原型验证平台。
为了测试ASIC电路的实际逻辑功能与性能,验证其通过高速接口与外围器件通信的能力,原型验证FPGA工程师借助相关工具将ASIC电路尽可能地映射到FPGA的相关单元上,在FPGA上进行验证。
所以FPGA工程师在了解FPGA的开发调试流程之外,还需要掌握ASIC相关电路在FPGA上的映射方法,原型验证的方法学以及工具。尽可能地在FPGA上还原ASIC电路,提供可靠的测试平台。
由于单片FPGA的逻辑门,哪怕超大的那种,可能也就刚刚放得下芯片的单个模块。所以FPGA原型中还涉及逻辑的分割,同步等等。需要对FPGA有深入的了解。
原型验证的目的之一还有验证高速接口的逻辑,借助FPGA平台与外围的器件测试接口,比如DDR,PCIE,SATA等等。所以对于接口的认识也是需要的。
此外,有些公司在项目中引入了专用的原型验证平台,FPGA原型验证工程师可能也需要去使用他们。
关于原型验证,笔者也是在了解中,可以一起关注下方两个专栏
如何实现10亿门级的FPGA原型系统一个AI芯片的FPGA原型验证
FPGA开发经验也有助于求职SoC设计/验证相关的工作,而不是仅限于FPGA相关的工作。
个人观点:SoC/数字芯片类岗位需要两类技能:1)概念与方法论2)工具使用。这里以FPGAer转向ICer的思路分析。括号中的数字代表笔者认为的FPGAer普遍掌握的程度。
1)概念与方法论,包括:
数据芯片相关基础知识,比如数电,Verilog编码,代码与电路的映射,典型模块与电路,模块级设计思想,测试平台搭建与逻辑功能验证。这部分可以说和FPGA开发经验是完全共通的(80%)数字芯片进阶知识,比如低功耗设计,可测试性设计,跨时钟域、电压域设计,静态时序分析,形式验证,UVM验证,综合等,这部分在FPGA开发中是不涉及的,或因为工具代劳或者FPGA开发中不重要而被忽视的。(30%)数字芯片周边知识,比如内部与外部的总线原理或使用经历(DDR,serdes,PCIE,以太网,多媒体接口等),应用领域的相关知识(如图像处理,网络通信等)。由于FPGAer从事开发的领域大多是在通信或者图像处理,因此这部分有比较高的掌握程度。(60%)团队合作,如果说FPGA开发单打独斗是有可能的,那么芯片的开发一定是团队合作的。FPGAer在芯片岗位可能要适应更大,专业领域跨越更广的团队以及密切的团队合作需求。(50%)
2)工具,包括:
EDA,IC开发会使用许多EDA工具,这些工具显然是FPGAer没接触过的。但是工具的使用有一些共性,比如Vivado的约束语言XDC的语法来自IC业界通用的SDC,据说Vivado的时序分析工具据说来自于IC业界常用的时序约束工具PT。尽管如此,工具还是需要去学习以及掌握(10%)脚本语言,IC过程中为了更高效地使用EDA工具,会使用和编写很多脚本。尽管当前FPGA工具对于基于TCL命令行的开发流程也有不错的支持,但大多数人包括笔者自己目前用的更多的还是GUI界面。脚本语言包括阅读已有代码和编写新代码两部分,目前“祖传脚本”大都是Perl编写的,而EDA工具对TCL有很好的支持,此为shell脚本也较为常用,Python则是后起之秀。建议FPGAer结合自己的基础选择一门脚本语言进行修仙(10-90%,取决个人情况)操作系统,也需要操作系统技能?是的,但仅限于掌握Linux的使用。由于FPGA的EDA工具基于Java开发,他们都提供体验一致的Linux版本。但笔者相信大家用的比较多的还是Windows版本,甚至有的朋友对Linux接触很少。IC设计公司的合作工作模式,使所有IC公司都会使用支持多用户的Linux作为工作平台,而不是单用户的Windows。所以有必要掌握Linux系统的基本使用(但不用你掌握如何安装与卸载软件,这一Linux上的困难工作^_^)。以及Vim等编辑器的使用,是的,因为后台系统是不能联网的,所以你不能安装你自己喜欢的编辑器,比如VSCode...(10-90%,取决个人情况)
插曲:这里用的是知乎热门公司的招聘启事,放大看下有一条描述:
唔,我只能说半导体行业对于学历和专业是有一些要求,但此时(2020)招聘市场相对比较紧俏,非科班或者名校出身的同学,如果有相关的项目经历或者有很好的自学基础,还是可以参与到这个在国内相对来说“火热”的行业的。
举不动了,TBC
是不是该说到50个赞,我就又有活力了-__-||
Q4:从哪里获得求职信息?
很幸运地生活在21世纪,找工作不需要写诗,甚至不需要出门就可以获得求职信息。我用到求职渠道有以下几个(声明:一家的广告费都没要到)
51job,智联招聘等等较大的综合类招聘网站,一般51job覆盖最广,而且51job也有比较大的校招覆盖率,一般校招季建议在51job上填一份“超级校招简历”,在后续的投递中网站会自动帮你填写简历信息。
摩尔精英,等半导体领域招聘网站
实习僧,应届生求职网,等实习以及校招类网站。实习僧上FPGA相关公司的实习挺多的,我就是在他家找到的实习。(真没收广告费)下图是20.2在实习僧搜索上海的FPGA岗位的结果,两家芯片公司的长期实习,和Akunal的暑期实习(就是上文那家高频交易公司)。临近暑期会有更多的暑期实习机会,到时候有需要的同学可以在3.4月份关注下。
20.2实习僧搜索中上海的FPGA岗位
适合去找某家的岗位时,搜索xx+招聘,一般由不错的搜索结果。
外企和超大型企业在官网上,或者自己的招聘网站上发布职位。
也可以关注一些电子类的校招左边公众号右边,也能获得很多信息。
这些也是途径啦,可以加一些学校的就业群,校友群,相关领域的讨论群等等
关于研究生实习,我了解到的情况有这么几种:
1.导师放养,实习爱多久多久吧
2.导师允许实习,时长从暑假两个月到半年不等
3.导师态度暧昧,组会的时候在就行了。xxx今天怎么不在,他去拿快递了老师
4.导师明确禁止实习,光说自然没用,还要天天查岗的
5.导师/学院安排实习
第一种情况,对于实习无疑是最有利的,当你面试一家公司并告诉他们你能实习一年,每天出勤,就在公司边上租房住的。我觉得实习左边offer右边已经八成属于你了。公司总是倾向于长期实习,无论是作为干活一份子还是作为留任考察对象。挺多中小型的半导体公司,将长期实习生作为弥补组内正式员工不足的补充,并优先考虑留任(当然这样的公司可能无法开出一流的薪水)
了解到一些倾向于长期实习的公司,可以在各大招聘网站看到他们的职位:(基于19年了解)
AMD,Intel,莱迪斯,酷芯微,Xilinx,美光
第二,三种情况应该是实习的主力了,其中只能暑期实习的同学比较多,这里建议大家关注有暑期项目的公司。我了解到的有(基于19年了解)
华为,额,他家对学校专业有要求
高通,在19年暑期提供了挺多岗位,应该每年会差不多
Intel,有限的硬件岗位
平头哥,有很高的要求
ARM,上海硬件岗位偏少,主要在深圳
TI,ADI,复旦微,Akuna,商汤SoC
这里提到的公司都只了解Base上海的职位。
第五种情况的同学,有还是比没有好,是吧。一般都会有一些双向选择的过程,努力选一家比较好的实习公司吧。
对于第四种情况的同学,就引出了一个问题:没有实习会不会影响后续找工作?
不会(基于19年秋招观察),只要有项目,竞赛,论文或者自学的内容展现你的学习能力,找工作没有问题。
但是,一是实习经历还是一个比较重要的左边加分右边点,而且如果持有实习公司的转正左边offer右边,整个秋招都会从容不迫许多。
二是如果跨专业的话,没有实习经历会比较困难,因为可能没有相关领域的文章以及项目。需要拿出过硬的自学经历以及可以一谈的小的成果。
还有一个问题:选择小公司或者大公司?
从笔者夏天在一家大公司实习的经验来看,FPGA/IC方向选择大公司实习。会有以下几点优势
大公司一般对于实习有比较充足的安排,每年的实习日常,计划,mentor都是提前订好的,会更加系统。大公司的项目会更加专业,无论是参与到正式项目中去,还是完成一个玩具项目锻炼,都可以为你带来能力上的提升。大公司的实习经历可以在能力,阅历和简历三方面提升你未来的求职竞争力。
上述为笔者的一家之言,FPGA/IC方面也没在小公司实习过,欢迎读者在评论区分享你的实习经历。
华山弃徒令狐耀:让我想想
小菜熊:我忙过这阵就写
在一家相对“小IC公司”(实际为收入过亿的A股上市公司)实习同学分享他的实习经历和看法(笔者稍做整理):
我没有对比过大公司和小公司的经历。但是有系统和不系统的培训区别。我和同学来实习,soc组就我一个实习生,ip组有五个,所以ip组的人就是统一培训统一严格进度。但是我一个人就比较自由了,[旺柴]进度自己自由控制,有问题了找大佬问。不想做啥可以直接说,想换个任务也可以。总的来说就是小班和大班教学的区别吧。
而且ic设计方向,实习基本都是打杂,新人啥都干不了,出了bug几十万就没了。fpga应该能接触实际项目,asic基本就没戏了(笔者:看情况哈)。我在公司主动揽活,做的差不多了,但是验证之类的东西学不会,还有后端的脚本用不熟。最后他们还是买了个成熟的商业ip。fpga就比较快了,asic主要是流程问题,一个soc开发流程貌似半年多,如果让你负责一个模块的开发,基本后续验证出了问题,或者后端有问题再找你解决,你都不在了,找人读你代码成本太高。[吃瓜]验证fpga就比asic幸福一些。
不过能去还是去大公司感觉毕竟简历好看。当然还和兴趣有关,很多小公司小而精,比如想做模拟艾为公司虽然小,但是是国内行业前列的。我实习这个公司XXXX芯片仅次于海思和XX。格科微传感器,华大九天eda,神经网络芯片去寒武纪。[吃瓜]所以按照兴趣找吧,但千万别去了大公司的弱势部门,比如上海集成电路的研发中心是搞工艺的,做数字比较偏,镁光我去参观的时候他们只有驱动部门在上海,去了是做驱动,intel国内貌似只有软件。当然海思还是国内强无敌,基本啥都干,[旺柴]反正按照兴趣去找。反正据我了解国内的ic厂都是边缘竞争,小厂各自在各自领域干,就海思比较大而全。
当你需要提交一份简历,你才打开Word准备制作一份时,这无疑是制作一份简历最糟糕的时机。提前准备,或者定期更新自己的简历是一个更好的主意。
除了准备简历的时机之外,关于简历笔者还想针对FPGA求职分享两点,其他一些通用的问题可以在知乎上搜索,还蛮多内容的。
除了基本信息以外,写在简历上的内容应该是你想和面试官聊的内容。
对于不一般的人来说,简历上只要有成就就可以了。
但更多普通人,主流的内容一般是你的论文,项目,竞赛或者其他的你做了觉得有意思的事。
以项目为例,不可避免的,一般来说,学校里的项目要么比较low,
要么”没什么好说的”,或者高大上的项目,你只是许多参与者中的一个。
但再愚蠢的项目,或者中途夭折,没有成果的项目。只要你深度参与了,自然会遇到问题和相应的解决办法。
那就算问题没有解决,你也可以有你的思考。
如果没有思考,且不愿意回首这个项目的往事,建议还是不要写简历上了-_-
对于高大上的项目,那好了,吹就完事了。。
吹也算一种路线,擅于吹捧自己的项目,大家学校里可能也见得多了,这也是技能点
但更多地还是要对自己做的部分有总结和思考。
实在没有项目,或者项目过于无趣,在你有时间的情况下可以完整地完成一个业余项目,比如某些网站上提供的完整项目教学(在我的世界里做一个CPU?/狗头)。通过完整地完成这些项目一定能有收获和提升,另一方面也有些面试可以聊的内容
总的来说,相比你参与的项目是造了火箭还是只是做了个玩具。是成功了还是失败了。面试官更关心的还是你在项目中解决问题的能力以及对过往项目成败得失的思考。
毕竟找普通工作更关心你的工作能力,又不是应聘985副教授教授,一定要看你的成果,是吧。
简历的第一关一般是HR筛选,HR可能不会太懂技术,但一般懂技术术语,尤其是写在招聘要求上的。所以制作简历地时候可以贴心地,清楚地表现你和招聘要求技术点之间的关系。
比如在求职FPGA岗位的时候,突出相关的项目经历,然后动不动就熟悉Verilog的拼写,熟悉Vivado,Quartus,Modelsim的安装与卸载是吧,加粗就完事了。
这里分享下笔者投简历时遇到的一个问题。我当时在简历上写了一些单片机,嵌入式方面的项目经历,就被认为太软了。。软了,不够硬....
所以,选择简历上的项目还是要契合岗位要求,比较容左边易通右边过HR的筛选,简历更有机会来到技术人员手上。
下面是我JackMa一直用的简历格式,大家可以随便看看。
FPGA:
FPGA资深工程师的经验之谈,可惜有段日子没更新了
FPGACoding其实我是老莫的网络书场
Xilinx工程师分享基于FPGA的AI加速
AI加速FPGA呓语
FPGA时序
FPGATimes
Verilog:
王婆卖瓜,鄙人和小伙伴合作的专栏,介绍一个可以在线练习Verilog的网站
HDLBits中文导学
IC设计/验证:
数字芯片实验室数字IC小站
存储相关:
UEFI和BIOS探秘
芯事芯闻:
老石谈芯半导体行业观察
网络/通信/总线:
PCI-E协议
图像处理:
扫描上面二维码,微信咨询
落户咨询热线:13671738356
咨询热线
13671738356