【精品博文】在Lattice当实习生是一种怎样的体验
首先,介绍一下我的个人背景。本科毕业于江苏省某普通一本院校,期间因为参加过一些竞赛,也获得一些奖项,然后被保送到上海某211高校继续攻读硕士研究生。对于FPGA,说会也不算是会,说不会吧,也了解那么一些东西。之前接触的基本都是Altera的Cyclone系列,本科期间做过两个简单的小项目:一个是等精度数字频率计(说白了就是两个计数器加D触发器,用电路都能搭出来);另一个是我的毕业设计,其中用FPGA来驱动CCD和高速ADC的,同时用FPGA实现了一个FIFO,作为ADC与MCU之间数据缓冲(当时因为各种原因,搞的也比较简单,只是实现了最基本的功能,不过PCB完全也是我自己设计,焊接调试的)。后来还买了一个Xilinx Spartan6的板子,就简单的跑了几个例程,然后就放在那边吃灰了……对于Lattice的产品,只是听过,完全没有接触过!
但是,就FPGA开发本身而言,我最多也只能算是一个菜鸟。因为平时在学校STM32之类的MCU用的比较多,平时也是主要使用C语言编程。因此,经常会把一些C之类的顺序执行思想带到FPGA开发的过程中,有的时候,这是很致命的问题!此外,由于开发STM32经常会使用JLink之类的仿真器直接进行OnBoard调试,所以,在初学FPGA的时候,也更习惯直接将流文件下载到FPGA/CPLD中直接用示波器之类的看结果……最多有的时候会用Altera的SignalTap之类的来分析一下,就连功能仿真都懒得做,更不要提时序仿真和静态时序分析了……
最近一段时间Xilinx搞的什么Zynq和HLS比较火,原本的计划是打算往这方面学一学的,顺便研究一下OpenCL之类的东西。现在想想,一个连RTL Coding都没有完全掌握的菜鸟,直接就去搞HLS到底能搞出来什么鬼?说实话,我自己都不相信,我能搞出来什么东西……
那么,为什么要写这一篇文章呢?主要是为了总结一下自己最近一段时间收获,谈一谈自己的一些所思所想。顺便准备接下来的presentation和应付学校要交的实习总结报告……
记得在去Lattice报道之前,HR就提前问我要了电子版的证件照和一小段简短的自我介绍。正式入职报道的那天,发现Lattice早已为我准备好了员工卡(就是门禁卡)和桌位,桌位上还有自己的名字和照片。IT的同事提前为我们准备了电脑,并开好了账号。和我同一天报道的好像有三个实习生,一个SW的,两个PV的。Lattice为了能够让我们尽快的融入公司,为我们每个人都分配一个buddy,一般都是组里面的同事。同时,还给我们做了一个简单的入职培训,主要讲讲公司的一些规章制度什么的。最后,还特别强调了实习生不可以加班,实际上Lattice的正式员工也很少有加班的现象。整个过程还是很轻松愉快的,大家都很kind,去之前还有点紧张什么的,到了公司反而一点感觉也没有了,哈哈哈。开完会以后,buddy就把我带回组里面了,然后经理带我和组里面的各位同事简单地认识了一下。Lattice的AE,都是行业里面的专家了,然而大家都很随和,一点架子都没有。这点确实让我很吃惊,和我原本的猜想有很大的区别。第二天,经理还组织了一次团队聚餐,欢迎我的到来,实在是受宠若惊,哈哈哈。
刚来的那几天,还是有一些疑虑的。主要是之前完全没有接触过Lattice的产品,有点担心需要较长的时间学习和适应。还有就是英语,虽然我六级考了535分,也过了口语四六级考试,但是之前毕竟缺少一个口语锻炼的环境。所以我的英语听力和口语一直不是特别好,但是读写还是没什么压力的,主要是之前也读过很多的英文技术文档了。在大致了解了一下Lattice的主要产品和相关开发工具后,我制定一个相应的学习计划,先从IDE Diamond学起。为了能够更好的反思和总结,我同时开始在ChinaAET上写一些博客: blog.chinaaet.com/justlxy,主要就是聊聊一些学习心得,还有一些总结与感想等。
在和经理简单的聊了一下之后,便彻底没有疑虑了。刚开始的那段时间,经理并没有给我分配什么任务,也没有明确地指出,让我必须要做什么,学什么。反而却鼓励我去学习一些我感兴趣的,于是我就大致的说了一些我的想法和学习计划,也得到了肯定和认可。说实话,当时我是有点蒙圈的,完全没有想到。此时,对于我来说,我便可以制定详细地学习计划,并能有条不紊地执行下去。当我遇到问题时,各位同事总能很耐心地为我解答。不过,一般我也不会问一些无脑的问题,当我尽一切可能却仍然无法查阅到相关资料,或者想了好久实在想不明白时,才会去问他们。因为,我觉得不经过自己充分思考就去问别人问题,是一种不礼貌的行为,尤其是向这个行业的各位专家们请教问题!
在大家的帮助下,我很快便适应了Lattice的工作环境,并开始全身心地投入到学习中。毕竟Lattice为我提供了这么好的学习环境,我实在找不出不努力学习的理由啊。写到这里,突然觉得高老板有句话说的挺好的,当我们专注于某一件事情的时候,就会感觉时间过得非常快。总之,在Lattice实习的这段时间总感觉时光飞逝……很快,我便熟悉了Lattice的Diamond,以及第三方的工具ActiveHDL和Synplify Pro等,并对Lattice的MachXO3和ECP3系列的器件有了初步的了解。期间,还学习了Wishbone总线,DDR3 SDRAM,静态时序分析等,并在ChinaAET上连载了相关的博文。每当我取得进步时,经理都会给我鼓励,这极大的鼓舞了我,给了我更多的动力和自信。
Lattice给实习生很大的权限,几乎所有正式员工可以参加的活动,实习生们都可以参加。比如说,篮球社和足球社几乎每周都会组织活动,公司还会定期组织员工旅游……等等,而这些,实习生们都可以参加。此外,公司的公开集会,实习生们也是可以参加的。不过公开集会一般都是由美国总部的同事们组织的,开会全程英语,对于我这种英语读写还行,听说一般的孩子来说,的确有点吃力啊。因此,我还制定了一个关于英语听说的一个学习计划(其实之前本科的时候就有搞过,当时为了准备口语考试的,后来因为好久没有用,水平又下降了……),争取能够尽快地提高自己的英语听说能力。可以确定的是,在Lattice实习,对于自己的英语水平的提高,还是有很大帮助的。因为接触的所有的文档,会议,邮件等都是英文的……就差同事之间平时沟通也用英文了……哈哈。
其实,Lattice带给我的远远不止这些。总结一下这段时间我的体会和领悟。概括来说,算是见识到了真正强大的外企文化,开放且自由,却可以轻松地把规条和制度严格控制隐藏在工作流程当中。就像是与一个温文尔雅却又睿智精明的人相处,举手投足都充满了魅力。对比一下,那些在大部分的国内小公司里面的实习生就没有这么幸运了……因为,对于实习生的使用和管理上,Lattice和他们从理念上就是不一样的,一个是尽可能地挖掘你的潜力,发现你的能力并努力为你创造条件;另一个是尽一切可能使用你目前的能力,很少会去关注实习生的成长与发展。Lattice的每个人都很友好和善,就算是那些Manager和Staff,也都很随和,完全没有架子,和我们这些实习生也能聊得来。除了一些工作和学习上的话题,他们往往还会主动关心我一些生活等方面的问题。我觉得,在Lattice学到的不仅仅是知识和技术,更是一种思想和理念。Lattice的员工和其企业文化,正在潜移默化地影响着我……