内外兼修,因材施教
习惯性地打开邮箱、发现自己收到了昆山杜克大学电子与计算机工程硕士项目(Master of Engineering in Electrical and Computer Engineering Program,简称:ECE)的录取通知后,Steven心情无比激动,连续数日的担忧、焦虑也被一扫而空。
那是2020年2月,新冠疫情刚刚爆发,世界陷入混乱,人们的生活静止又动荡,未来像在风中飘摇。
如今在谷歌当软件工程师的他,当时还是一名南京邮电大学通信工程专业的大四学生,他打算在计算机方向深造,申请了几个学校的硕士项目,也收到了一些国外学校的录取通知。但他不知道封控的情况在半年内会不会扭转,秋季能否正常出国读书,颇有些焦虑不安。
这个时候,“昆杜发来的消息就像是给我吃了颗定心丸,至少今年肯定有书读了。”
在谨慎的对比考虑后,他放弃了其他两所美国名校的录取通知,选择了昆杜的ECE项目。
“我个人非常喜欢昆杜ECE的课程设计。我在留学论坛仔细研究过,也跟招生官去咨询了解了,知道它是严格遵照杜克ECE的设置,包括教学大纲、作业和考试评分;而杜克ECE的课程设计,是由浅入深、连贯性强、软硬件兼顾的,非常适合转专业的学生。”
而在书本之外的现实层面,“当时虽然是疫情期间,昆杜的ECE项目仍然能正常线下授课,而不会是网课;课程和杜克ECE一致,但学费更低;而且我和上一届学姐学长沟通过,了解到学校在研一时期会给予学生很多就业支持,能为第二年出国找工作做些准备,”Steven秉承着理科生的严谨,思考得很全面,“综合来说,它就是我最好的选择。”
和Steven的审慎周全相比,晚一届入学的Zoe与昆杜ECE的结缘,则有些孤注一掷的运气和宿命感在,“它是我投的第一个,也是唯一一个项目。”
2020年,她从西安交通大学毕业,学的是经济金融。她本想继续读金融,也申请到了学校,但因为疫情推迟入学了,在家上学校安排的一门网课。上着上着,Zoe发现自己对纯金融领域的工作兴趣不大,想转到计算机专业,“我觉得会编程是一个时代的潮流,它能为我打开更多可能性,拓宽我观察世界的视角。”
找学校时,她突然想到有个在昆杜交换过的本科学长,交谈中他对昆杜的评价很不错,就去看了公众号、官网,发现ECE硕士项目很适合自己,就投递了申请。
“我让计算机本科的朋友帮忙看了课程设置,入门是从C语言到C++,两个都很硬核,学会了再学其他语言就比较容易;也有偏硬件的课,了解硬件基础,对写软件也会有帮助。他让我不用担心跟计算机背景的同学有太大差距,那些知识会在第一年压缩补完,只要能跟上课程就行。”
另外很吸引她的一点是ECE的“1+1”学制,第一年在昆杜学习、完成暑期实习,第二年去美国杜克大学就读,可申请专业实习(Optional Practical Training,OPT)时间,在美国找工作。
于是她提交了申请,之后也没有再投其他的,“我感觉我应该能过,所以就不投了,也是一种命运的安排吧。”
Zoe提前看了一些计算机科学相关的网络公开课,也做好了心理准备,但刚入学那段时间,大量新知识、作业涌来,她学得很努力,但也很辛苦。
“每天都要完成3到4个小作业,提交的截止时间卡得很紧,而且还要读十几页新书,全是计算机领域新的术语、概念,要去搜索、理解、记忆,到下一章提到时,得能串联起来,还有很多代码,这些都很抽象,不像我本科时读的金融类书籍,是有场景、有故事、有代入感的,所以一开始压力很大。”
好在学校和项目为学生们提供了很多支持,ECE的教职工们每个月都会开一次集体会议,了解同学们在课堂学习中是否遇到困难。如果有,他们就会及时“伸出援手”。
黄开竹
昆山杜克大学电子与计算机工程教授
大数据研究中心主任
黄开竹博士是昆山杜克大学电子与计算机工程教授,也是大数据研究中心主任。之前他任教的是ECE 586K:向量空间方法及其应用(Vector Space Methods with Applications),这门课是数据分析和机器学习方向的必修课之一,包含了很多复杂的数学知识。
一次期中考过后,他发现有两个基础稍微薄弱一点的同学,成绩和其他同学相比有较大差距,听课时也显得有些吃力。他就主动和两人约了Office hour(办公室开放时间)聊天,之后每周都和他们做一对一辅导,把课上讲的东西再细致地讲一遍。学期结束的期末考,两人的成绩都有了明显进步。
罗 冰
昆山杜克大学数据与计算科学助理教授
现在ECE 586K这门课则由罗冰教授授课,他是昆山杜克大学数据与计算科学助理教授。为了让这门数学理论性较强的专业课更容易理解,他会找很多形象直观的例子来解释抽象的定义和定理,并结合自己的研究领域,告诉学生们实际应用的算法背后的数学原理。“这门课更多的是想让学生了解自己未来工作中使用的算法或技术的背后原理,对他们今后在科研或者工作中的技术创新会很有裨益。”
此外,ECE每门课每10位同学都会配1个教学助理(Teaching Assistant,TA),他们每周都有固定的答疑时间。Zoe班上当时的3位教学助理,有一个是在杜克读研二的学长,因为有时差,答疑时间经常在早上七八点,她就每次定闹钟早起去问,直到要上课、不得不走了才结束,“我当时满脑子全是问题,所以每次都预约,学长说只有我每天都那么早来蹲他。”
在和同学们熟悉之后,Zoe也会找他们问问题,虽然来自不同学校、有着不同专业背景,但大家都很热心,会耐心细致地为她解答。她和同寝的另外两个女生,本科都是经管类专业,每天一起学习、吃饭、做作业,有一次为了给一个编程作业排错,三人搬着电脑坐在客厅餐桌上,研究到了凌晨两三点。小班模式里,同学之间关系非常紧密,比起同伴之间的压力,给彼此更多的是支持和鼓励。
“课业负担不小,转码学生其实需要付出更多的努力,我们会尽可能提供帮助,跟他们讲转码学姐学长的经验,请任课教授多加关注,鼓励他们多问教授同学等等。”ECE的项目负责老师冯诗淇如是说道。
设置了很多实操的小作业,是ECE课程的特色之一。第一学期的重点课程ECE 551K:C++编程、数据结构和算法(Programming, Data Structures and Algorithms in C++)是由具有多年互联网大厂工作经验的杜克教授设计的一门课程,也是两个方向的学生都需要上的一节必修课。
这门课将大量的知识浓缩成一个高压输出的体系,同学们可以直接获取杜克大学的电子教材,包括但不限于各个关键概念的讲解视频。同时,它使用了翻转课堂的教学方式,学生需要提前自学当天的课程内容,在课堂上老师会进行答疑解惑,以确保每位同学的学习进度。它设置了108个编程小作业,每个作业对应一个知识点,让学生在动手的过程中,掌握知识,复习巩固并熟练应用。
“ECE 551K在学期一开始就把全部108个作业和提交时间放出来了,我们可以根据自己的基础提前规划时间。前期较多小作业,后期有少部分中大作业,基本上转码同学在做完一大半这门课的作业后,就已经具备足够的代码能力了,在之后的小组合作中也不会明显拖后腿。”入学就读之后,Steven更具体地体会到了ECE课程设计的贴心之处,内容输出硬核,但手法很柔和。
黄开竹博士在教授ECE 590K:深度学习导论(Introduction to Deep Learning)这门课时,会经常给因ChatGPT的出现而对AI技术的使用颇为上头、想用它做作业的学生“泼冷水”,告诉他们AI技术确实很酷,但还不够成熟,也有很多缺陷,它底层的大模型算法还没那么可靠。比如,在输入时故意弄错一个字符,也许出来的就是错误答案。
黄开竹博士会跟学生们讲解自己在做的研究,也对那些想在机器学习领域深造的学生鼎力相助。“我会让他们不要盲目追热点,要保持理智和客观。”
让学生到最好的企业去
李 昕
杜克大学/昆山杜克大学电子与计算机工程教授
国际电气和电子工程师协会(IEEE)会士
“我们整个ECE项目的课程设置,是就业导向的。” 杜克大学和昆山杜克大学电子与计算机工程教授李昕博士如此概括道。他是昆山杜克大学电子与计算机工程硕士项目主任,同时也是国际电气和电子工程师协会(IEEE)会士,在卡内基梅隆大学获得博士学位后留校任教多年,后来放弃了卡内基梅隆的教职加入昆山杜克,在ECE项目任教ECE 550K:计算机系统与工程基础(Fundamentals of Computer Systems and Engineering)这门课。
ECE 550K是一门有关硬件的课,也是软件开发方向的必修课。在这门课上,学生会逐渐了解计算机是怎么构成的、怎么工作的,学习怎么连接电路、从零搭建一个CPU。
杜克大学的ECE项目一共有5个方向,昆杜ECE项目则是在“就业导向”的主旨下,选择了其中的软件开发以及数据分析和机器学习两个方向。两年的学习中,共有10门课程,8门是技术性课程,另外2门则是产业预备性课程,包括MENG540:高科技产业管理(Management of High-Tech Industries)和MENG570:商业基础(工程方向)(Business Fundamentals for Engineers)。
技术性课程如ECE 551K的设计者,在企业界有多年工作经验,知道企业需要员工有什么样的知识和技术。课上使用的编程工具,也是对标专业程序员的。
“这样我们的学生去实习、去就业,就不会‘学难以致用’,不需要有人带着他训练1至2年才能独当一面,他们出校门后能和企业无缝对接。”李昕博士讲述了课程的设计理念。
而产业预备课程,则是为了让学生从编程的执行工作、从盯紧技术的细节中解放出来,偶尔也要站在产业的全局视角去考虑问题。
“你工作后升职了,怎么当好管理者;你作为工程师,怎么考虑一个产品的商业化问题;这些关乎进入职场后的长远发展。我们ECE项目的目标,就是培养软硬件、商业兼通的全能型选手,让所有的学生到最好的企业去。”
为了实现“让所有学生到最好的企业去”的目标,课程设计是至关重要的一步,但也只是第一步。课堂之外,老师们还在做更多。
秋季学期开始,新生入学后,ECE项目团队就开始紧锣密鼓地忙起来了。
ECE学生在第一学年结束后,要去企业进行暑期实习,每个人都必须去,这是毕业的必要条件之一。但怎么尽最大的努力支持学生找到实习?光学得好是不够的。要完成学校到职场的平稳过渡,必须充分展现个人优势、捕捉每一次机会。
ECE项目团队和学校的职业发展办公室有一系列的、详细的支持措施。
第一步是“发现(Discovery)”。每位学生入学时,都会分配一位ECE的教授作为学生的教授顾问(Faculty Advisor)。学生需要和教授顾问进行面谈,在这个过程中,确定好自己未来想学哪个方向,根据选定的方向去上必修课。
“首先肯定是要看学生的个人兴趣,兴趣驱动才能把一件事做好,”黄开竹说,“其次是他的职业规划是什么。当然,也需要看他本身擅长的是什么。”
黄开竹说,他们只是做辅助,而主体是学生,“一切都要根据学生的个人情况来,我们只是帮他梳理、给他更多信息,以免他们在有信息差的情况下,做出不适合自己的选择。”
之后,项目负责老师会给新生们发一个简历模板以及简历书写指导,让他们根据模板和指导写自己的简历,包括中英两个版本。学生可以自由选择ECE项目老师或学校职业发展办公室的老师进行简历辅导修改,完成之后统一收集。
之所以在开学之初就让学生撰写简历,项目负责老师有两个方面的考量。一是因为与企业进行合作洽谈时,HR肯定会询问这里的学生怎么样。如果可以提供详细具体的学生简历,会给企业留下一个好印象。二是考虑到完善简历是个漫长的过程,若是等到春季学期要找实习时再“临时抱佛脚”,相对来说就比较困难,而且会浪费宝贵的时间。
第二步是“探索(Exploration)”。研一第一学期,ECE项目会为学生安排一系列就业相关活动,几乎是每周一场,有时是去企业参访,有时是邀请行业大佬来做技术讲座或分享职场心得,有时是学姐学长们的学习和求职经验分享。
去年ECE项目邀请到了戴尔的一位技术主管,分享他的职场20年、也是互联网行业20年。这些经验会对学生有不小的帮助,因为“硬技能”在课上、网上能学到,但这种“软知识”很少有人愿意掏心掏肺地分享。
ECE项目会在开学时给每个学生都定制一张“专属名片”,这样学生们在企业参访和技术讲座上,想向企业领导自荐,或是和大佬交流问题,就能直接递上名片,让对方能迅速了解自己。
项目负责老师会要求学生们时时关注行业发展,练习自己的沟通能力和邮件写作技巧,如果遇到困难,可以向学校的就业老师寻求帮助。冯诗淇认为软技能至关重要,“只有不畏惧沟通交流,才能更好地抓住机会。”
准备工作完成后,第三步就是“实践(Practice)”。找实习面试大多需要笔试,要很早就开始练习算法题。项目老师会鼓励学生们组建解题群,大家互相鼓励、督促,效率更高,主动性也会更强。
Steven认为这个方法的效果出乎意料地好,他和另外三个同学建了个群,要求每人每天都得至少做一道题,并且截图发到群里,如果有人没完成,就要发红包,即使在课程压力最大的时候,这项要求也没有放松过。
“有时候你可能只刷了一题,但看到别人发的题目截图,也会下意识地想想解题思路,然后在群里交流。我们彼此陪伴、互相鼓励,到后来刷题成为了一种习惯,都不需要别人提醒,甚至每天都会超额完成好几道题。”
到第一个学期快结束时,项目老师会鼓励大家开始更新简历、模拟面试,并安排他们参加一些面试培训的工作坊,解题量也从一道增加到两三道,有的学生每天早上起来就先解题,做完打卡,再吃早饭去上课。
如此多的准备,都是为了让学生在次年的暑假顺利找到满意的实习。开春时,“战斗”才真正打响,也是最后一步——内推。
昆杜和许多企业开展了“校企合作”,包括阿里巴巴、博世、戴尔、谷歌、苹果、思爱普(SAP)、微软、亚马逊、英伟达等国内外知名大厂。企业给到项目岗位需求,经过审核后,老师们会筛选出更适合ECE项目学生们的岗位,然后用邮件把岗位和申请须知,以及一些小建议发给学生,让他们在截止日期前提交最新版简历,并完成线上申请。
“实习内推的企业不少,我们能做的,是让学生的简历能被看见,而不是消失在简历堆中。能不能进入面试、得到实习机会,还要看学生个人能力。结果基本都还不错,大部分学生都能拿到笔试或面试机会。”冯诗淇说。
Zoe的暑期实习就恰好得益于学校的宣传和内推机会。“我觉得学校做的很好的一点就是内推企业的覆盖面很广。不是只有耳熟能详的大厂,也有一些小而美的公司,这对我们就很有帮助,我们总能找到适合自己的那一个。” 她分享道。
精细的课程设计确保学生专业能力过关,详尽的实习准备工作带来了100%的实习率,三个月实习结束后要做报告,又要求学生们得用心做事、有所收获,如此,一环套一环地连接起了“就业导向”之路。
2022届,也是首届毕业生(2019级因疫情无法出国,间隔了一年,与2020级同年毕业)的就业率是100%。Steven就是留美工作的一员,他在谷歌从事虚拟网卡驱动方向的全职工作,这和他原本的职业规划略有不同。
入学ECE前,他比较确定自己想做软件的开发工作,后来在研一完成ECE 550K的大作业时,他用了一学期,从最基础的逻辑与非门电路入门,到搭建了一个完整的CPU,来编写俄罗斯方块游戏,发现“软件开发其实也很需要硬件基础”,在后续的学习中,越发确定了自己对软硬结合、偏底层方向的兴趣。
他的暑期实习在英伟达,主要是做和自动驾驶方向相关的工作,“面试时有一些偏硬件底层的知识考核,ECE第一学期的课程很扎实,有涉及这些,所以能从容应对;同时在ECE的项目经历如设计Linux malloc内存分配,也是面试官感兴趣的点。”
作为本科有一定编程基础的“半转码”学生,Steven在ECE两年的学习里逐渐明确了就业方向,又靠扎实的专业基础顺畅地走到了认定的路上,“我的方向比较底层,如果缺乏全面的基础知识,靠题海战术反复练习是很难上手的,因此,走上工作岗位后,我非常感谢在ECE学到的知识。”
Zoe也有同样的感受。她在思爱普(SAP)做的是和金融风险管理、财会有关的工作,实现了她本科和硕士专业技能融合的目标。
就职面试时,面试官喜欢问的都是研一专业课ECE 650K: 系统编程与工程(Systems Programming and Engineering)和ECE 651K:软件工程(Software Engineering)里的基础知识;入职后第一个任务是写单元测试、跑覆盖率,巧的是ECE 650K的第一个作业就是关于这个内容,要求覆盖率100%,她当时写得很痛苦,但工作后却颇为受益,好上手,也写得快。“在昆杜的两年学到的东西,在实际工作中,很多都能直接用到。”
像他俩一样求职时目标明确的学生不在少数,但也有一些并不清楚自己想做什么,或者该做什么更好,ECE的老师们就会帮他们分析选择。
李明
昆山杜克大学电子与计算机工程副教授
语音与多模态智能信息处理实验室负责人
李明博士是专业课ECE 581K:随机信号和噪声(Random Signals and Noise)的任课教授,也是昆山杜克语音与多模态智能信息处理实验室(DKU SMIIP Lab)的负责人。有学生会来问他“该选择软件工程师,还是算法工程师”,也有人问他“做AI算法,语音、图像还是自然语言处理,该选哪个方向”,还有人问他该选哪个实习或者工作机会,李明总会根据市场需求情况,或他们自身的兴趣给出建议。
2022和2023届的毕业生们都有着亮眼的去向,其中包括阿里巴巴、戴尔、谷歌、甲骨文、微软、亚马逊、英特尔、字节跳动等。在总结求职经验时,经常可以听到他们强调杜克校友网络对自己的帮助。
得益于过硬的项目质量和学校声誉,来自杜克大学的校友几乎遍布各个顶级互联网公司。不管是他们在工作中的优秀表现,还是内推引荐,都对后来者的求职有所裨益。
“很多知名大厂招过不少我们的学生,因为他们表现都非常出色,一旦有招聘计划,这些企业就会非常愿意再次招收我们的学生。一些企业每年都会来问我们有没有学生推荐,这就是前面的学生打下的基础。所以我常跟学生说,你们的表现会影响到后续学生的机会,都要好好干哈。”冯诗淇不无自豪地说。