我是2019 Fall入学Duke ECE项目的学生,今天这篇文章会从就业、课程、就读体验等方面来谈一下我们项目,希望能帮助到大家。
我之前有了解过我们ECE上一届的实习上岸情况,总体情况还是不错的,其中又数SDE方向的学生表现最好,有70%-80%的人都上岸了,之所以结果这么好,有部分原因是他们当时赶上了Amazon大量捞人。
我们这届的话就要差一点了,秋季学期结束的时候上岸率还不到20%。至于去向,我知道的有FB,nvidia, Amazon, Yext, Intuit, Arista等。
据我分析,情况不够好可能是跟19fall找工大环境比较差有关,另外,去年我们有一门课程换了老师,这也对找工有一些不好的影响。
虽然大家都倾向于从实习上岸率来判断一个项目的优劣,但我今天想说的是,我不觉得这个指标是一个很理想的判断标准。
举个例子,某项目招收的大部分是科班学生,学生基础都很好,上岸率自然高,但是转专业的学生去了就一定能找到工作吗?显然不是。
又比如某个项目的FB 面试多,单从概率论的角度看来你觉得自己去了就很可能拿到FB面试,但你却可能忽略另外一些信息——可能FB更喜欢招女生而不是男生。如果你是男生,就必须重新审视自己的选择了。
总之,我说这番话的用意,是想让大家综合考量多方因素,不要只从概率角度看问题。
接下来我就详细给大家分析一下Duke在找实习方面的优缺点:
优点1: peer pressure 小
可能大家之前在网上看到的信息跟我的看法恰恰相反,其实我自己也看过那些说法,说是我们 ECE招人多,所以peer pressure很大。但我今天是来反驳这个观点的,据官方数据显示,我们ECE学生只有不到90人, SDE和ML这两个方向的人数加起来不到60。由此我们可以得出第一个结论:我们ECE人数并不多。
第二,我们专业招收了很多转专业学生,他们在第一学期的时候几乎不会参加就业竞争,因此第一学期会跟你一起投简历的人不会超过10个。(因此第一学期结束的时候,ECE的实习上岸率比较低)
由此看来,我们学校的peer pressure可以说是非常微弱了,根本没办法和CMU相比。这样一来,很多同学其实经历一般也能在这样的竞争中脱颖而出,包括我在内的一些学生都收到了FB/Google的面试。
优点2: 项目声誉不错
杜克大学的招牌还是很管用的。虽然是ECE方向,大家也不用担心title问题, ECE下设了 SE track,所以大家简历上会标注software engineering track。
缺点1: workload大,可能会没那么多时间找工。(关于workload后面会详述)
缺点2: 找实习的气氛不够浓厚,跟UCSD/UCS是不能比的,我大概描述一下氛围吧——UCSD/UCS学生的日常: mock刷题&面试,Duke学生的日常:讨论虚拟内存,TLB,object layout,processor datapath...
缺点3:career service在我眼中没有那么给力
最后我提一点找工作(实习)的建议。
请大家一定要早点投简历。不管是我自己还是周围的学长学姐,我们都一致认为早投早好,在学期开始的时候比较容易拿到面试,越往后拖就会越难。
整体来看,Duke ECE的课程质量我还是挺满意的。
有很多项目的ECE因为自身的课程质量不高,所以要去选CS的课,课程的质量高低取决于选CS课的难易程度。但在Duke完全不用考虑这个问题,因为我们ECE自己的课比CS质量高,ECE的师资力量也很强大,且都以培养优秀的SDE人才为己任。
下面吹一波ECE的课程质量。可以这么说,杜克教的东西非常扎实。学下来你会发现,你不仅在知识层面有了升华,在工程习惯方面也会有很大的提升。像设计接口,单元测试,设计test case,熟悉Git/Linux/emacs下的开发,写代码时候对于corner case的思考(defensive coding)等等,都是你会学到的东西。在我眼里,课上学到的知识远远超过那种单纯搬砖的实习。而很有意思的是,我觉得如果只会刷题,实习多半也只能搬砖了。
如果你是非科班出身,自身又没有足够多CS工程实践经历,那我希望你能抓住在杜克学习的好机会,认真学习,毕竟这有可能这就是你最后一个系统学习和锻炼自己的机会了。如果你不认真学,那你作为一个工程基础为零,不懂OS/DB知识的人, linux/Git,设计接口和test case一问三不知,那你即便进了大厂实习也只会搬砖,根本没啥意义。
我还很喜欢ECE的课程设计,课程循序渐进,带你从入门到精通,每节课都适用于0基础学生,在上课过程中运用专业的方式来训练你的编程习惯和代码能力。比如大热课ECE551,在一开始的时候还在教你int的分类,等到期末就开始讨论并发和C++对象在内存中layout,virtual inheritance了。整个课程有107个作业,包括读代码、写代码、写test case,final project是写一个简化版linux shell。这门课的体验非常神奇,开学的时候还是人均编程小白,期末的时候人人都能实现linux shell 了,感觉就像脱胎换骨一样。
但是,duke 的课程也有缺点,就是有时候workload太大了,学起来比较吃力。一般来说,第一学期的三门课分别是ECE551(C++编程与数据结构),ECE550和ECE590(图灵机与算法)。
我主要讲一下ECE550,这门课会从计算机的底层硬件讲到processor datapath, cache,virtual memory,还会涉及一些OS基础知识。这门课换老师之前的workload还算比较正常,但到了我们这届就变得特别魔鬼,对于我这种数电菜鸡无疑是致命一击。不光是要做各种recitation中的项目和作业,最折磨人的还当数课程的四个project,我当时真的花了特别多的时间来完成: 分别用Verilog&assembly实现ALU, Regfile, processor, 和一个可以在显示屏上玩的小游戏。而具体每个project还有各种限制和要求,比如不让使用behavioral verilog等。我当时光忙着完成课业要求就已经累瘫了,根本就没啥时间刷题和准备面试,一个学期总共只写了200道左右的题,有50%还是面FB的前10天写的,现在想起来也还是觉得像噩梦一样。
苦水倒完了,我现在给550说点好话。之所以体验感非常累,可能因为我们这一届正赶上550这个老师第一次授课,所以课程把握得不是很好。但是这个老师提供了匿名反馈的渠道,我们之前一个学期都在不断地反馈,中途老师就取消了一些project,所以我觉得之后这门课的workload应该不会那么魔鬼了。
当然,我说这番话并不是想让大家都选这门课的意思,如果考虑到时间方面的问题并且又对这门课不感兴趣,你完全可以不选这门课。我这里提供一个选项,第一学期不选550而是选CS516(数据库相关),第二学期再通过找老师要permission code的方式选上568(后端+全栈),以及通过官方渠道注册旁听650(OS+DB+network)的许可。(其实我也是后来才知道的,不然当初我也不会选550了。
关于课程时间会挤压刷题时间这一点,我觉得最好的解决方式是在国内的时候就把题刷好。
大家读本科的时候,特别是大四期间,其实是有很长一段空闲时间的,不用非等到来美国之后再刷,如果为了刷题而选一些水课,那就对不起自己交的高昂的学费。
我有一个本科室友,大四下开始集中刷题,来美国之前已经刷了600道,周赛能拿五十。所以在来之前刷个200-300的题真的不难。我自己也是走了一些弯路的,当时高估了自己的能力,低估了课程的workload,来这边之前只在课余做了些项目,没有大量刷题,所以来之后就后悔了,第一学期过得非常累。
大家就不要像我这样了,无论大家来不来杜克,早点准备起来准是没错的,希望大家好好利用国内的这段时间。
第二个缺点就是,因为第一学期的课程比较偏基础,所以第一学期结束之后,你的简历并没有很多东西可以写。我前面也说过,因为杜克的课程是从入门到精通,会循序渐进地学习,所以第一学期的课程还没有到project-oriented 的阶段,少有那种可以收获project的课程。(但并不是完全没有,ECE551的linux shell和CS516的项目都可以写)
但第二学期开始就不是这样了,几乎所有课程都有项目,大家放宽心。
Durham的风景很美,极目四眺,树多且人少,宁静的乡间公路在蓝天白云下蔓延至远方。夜里,云彩被夕阳渲染成灿烂的橘黄色,美不胜收。学校的建筑古色古香,离工学院不远的地方,还矗立着鼎鼎有名的杜克教堂。村是村了点,但我还是挺喜欢的。
在Durham生活,你能感受到典型的美国大农村型城市是什么样的, 虽比不上NYC那么繁华且方便,也没有那么多好吃好玩的地方,但好在离华盛顿和纽约都还算近,假期出行也比较方便。
这边有很多中国同胞,所以我几乎没去跟外国人party过。至于语言,我来之前的托福110,虽说不是特别流畅,但问题不大。
我本科毕业于北邮,来这边确实感觉学习压力比较大,但好在我的进步还蛮大的。累是累了点,但不像国内那样破事一大堆,像什么垃圾实验报告,不清楚的PPT,无用却躲不开的水课和烦人的后勤这些,国外都没有。
我遇到的老师人都很nice。就拿第一学期来说吧,ECE551这一门的老师真的很负责,只要你向他问问题,哪怕是周末,他也会很快回复你。另外,ECE590的Eric老师也很好,完全是个小天使,所有事情都是自己亲自来做,快期末的时候还为了大家加班,挤出时间给我们办 office hour。
虽然很多学生都吐槽说MS在学校会受到差别待遇(不如本科生),但就我个人的感受而言,老师们对MS学生真的很尽心尽力,可以看出来是在认真培养我们MS学生。
另外,这边不仅老师很好,同学性格也很好,反正我完全没感受到什么勾心斗角。就算你在期末的时候问别人问题,他们也会乐于跟你分享知识甚至亲自帮你debug,其实很有可能那个时候他们自己的due都要肝不完了。
如果你来的话,会得到来自学长学姐的帮助。我们当时开学前,就有学长在新生群里发很长的入学报道攻略,开学之后学长还专门给我们办了小讲座,分享了面试经验,还主动说帮我们改简历,真的很令人感动。
至于科研相关的信息,我就不太清楚了,虽然我是MS学位,但是周围大多数同学以找工作为主。做research的同学比较少,根据他们的反馈看来,科研方面还是很好的。
总的来说,我真的很喜欢Duke,能来到这么一个团结和谐的地方,让我觉得自己当初做了一个非常正确的决定。其实我一直觉得,真正的快乐不在于你的物质有多富裕,而在于你的人际关系是否和睦,你是否受认可或受尊敬,很幸运,在Duke,我获得了精神上的满足,获得了真正的快乐。