转码安利DUKE -ECE 2018fall

avatar 238811
guzhiyan
58540
142
地理其实还是有蛮多关于杜克ECE的介绍,这里是一篇转码安利帖,希望再给大家提供一些不一样的视角。

首先说明一下背景,其实LZ本科也不是EE/CS背景,是比较偏机械方向的车辆工程。所以其实数电模电那些,也只学了点类似于电工学这样的课。也基本没啥coding背景。不过在杜克这边将近两学期,深刻感觉到学了很多东西,当时申请的是robotic的track,其实ECE录取了之后,选课也不分track,理论上所有人都可以选成software engineering这个track的,所以各位看看DUKE ECE 下的方向可以选择和自己本科方向接近的track, 过来选软课就好。


关于杜克的人数,我们这届master,不算博士的话大概接近130多人(看了眼微信群),大部分是国人。毕竟专业是ECE,其实里面还有很多人不是转码的,杜克ECE方向大致包括软件方向,大数据方向,机器人方向,硬件方向,其他还有微电子,纳米材料等等。另外吐槽一下排名,有时候大家的确会看专排选学校,但ECE可是很大的一个方向呀,对于转码选手,那些在硬件方面很强的学校,排名多高也和咱们没啥关系,既然转码,还是看开一些。


因为选了软件方向,身边的人大多数是软件或者数据方向,其中又有一部分人可能想继续读博,所以其实真正在找SDE工作的人也就60或者70个左右(当然只是根据身边的人统计的),传言杜克找实习情况不太好,但全职很不错。但我们这一届其实找实习也挺好的,身边认识的在找工作的人基本上都有实习了,亚麻给的intern offer特别多,然后关于Facebook,拿面试的人很多,不过当时比较早,大家基本都没怎么准备,所以最后录得却不多。很多offer可能也都是最近一个月内才拿到的,所以总归大家情况都还不错。


关于选课,LZ 选的软件方向的课,所以对于别的track并不是特别了解,这里主要说一下转码的课。可能别的学校的ECE本系软件课不是很多,转码需要选CS的课,但在杜克这里不是,杜克master 毕业要求10门课,转码的话全选ECE的课一点问题也没有,可以每门课都和SDE相关,也完全不用担心本系优先级的问题,当然CS的课也能选,不过相比之下ECE的软课比较偏应用,做项目多一些(全是可以写进简历里面的项目),可能CS的偏科研的多一些(读博利好)。在杜克官网上有一句话介绍说,我们的代码课是给完全零基础的同学准备的,这句话真没毛病,但是学习曲线会比较陡,不过只要跟着大家的节奏的话,或者如果自己再稍微有点基础的话,还是不难的。


首先转码神课ECE 551:内容包含数据结构,算法,C,C++,在Linux系统下用emacs写码交作业,后期代码作业基本Makefile编译,gdb调试,valgrind查内存泄漏等等,上课主要答疑,教材是Google book上的,教授Drew自己写的教材,all of programming. 同时也安利这本神书,包含你需要知道的一切基础知识,像面试里问的很多的heap实现,哈希表实现,C++的虚函数的实现,编译基本过程,sort排序等等,里面讲的都非常清楚,即使上学期学完了之后,这学期每次看依然有新收获,之前在地里看到一个本专业大数据方向的学姐在第三个学期末找SDE的工作,凭着这门课以及当了这门课的TA,最后也找到非常棒的工作,以下是传送门:1point3acres.com 不过不得不说这门课可能花时间还是很多的。这门课选课人数会比较多,相应的TA也很多,会给你提供很多帮助,另外ME的robotic方向推荐里面也是可以选择这门课的,别的专业的想转码的小伙伴也可以考虑一下。上完的体验就是基础非常扎实,最后的project是要求模拟实现Linux的shell。而且前面的一些作业,类似于实现计算器,实现linkedlist,实现BST,实现基于BST的map等等,这些虽然当时debug的时候很辛苦,但之后会印象深刻。感觉这些作业也都是精心设计过的,质量非常的好。推荐杜克所有想转码的小伙伴上一下。


另外是一门系统编程基础课ECE550:其实这门课和上面这门课加在一起是大部分之后代码课的先修课,所以软件方向的同学第一学期都会至少选择这两门,课程容量足够,保证一定会选上。这门课从基本的电路的基础到后面讲cache的实现,MIPS语句,Datapath,指令,一小部分操作系统等等,基本是计算机里面的硬件实现,虽然内容多也杂,但感觉作为一个没学过操作系统和计算机组成的人来说还是很有收获的。在此感谢室友大腿一拖二带我们project。ECE590- THEORY and PRACTICE of ALGORITH:非常棒的一门课,刚从我们这一届开始开设,上半学期讲一些状态机的基础,下半学期全是算法干货,后面甚至找不到一节没有用的课,project是用python实现各种算法,和ECE551搭配使用更佳。记得我在那之前看DP,BFS,DFS都是懵的,学完之后会感觉理解很深刻,包括一些作业等等都有一些leetcode的影子,但在那之前写leetcode的时候一定没有这样的理解,对于找工作的同学来说还是很有用的一门课。另外这门课也没有先修课要求,老师讲课质量也非常好,非常推荐。这里再次感谢我凡带我project。


以上三门是我第一学期选的课,当然还有很多选择,也可以选像security,performance,CS那边datbase之类的课可能和研二的同学一起上,如果不确定的时候,选上述的三门一定没啥问题。我自己的感受是,选完这三门课之后,load还是比较大的,尤其是写码基础不好的人,但一个学期可能可以抵得上科班一年或者更多?总之收获还是巨大的。但是也有不好的一点是如果来之前没有准备过的话,在第一学期找实习还是蛮困难的,再加上来ECE的同学里面很多可能真的是零基础(当然这些零基础的同学在这个学期也基本都找到了实习),课业load也比较大,所以在第一学期找到实习的人数和别的一些CS项目的同学比还是偏少,但是准备比较充分的同学(比如简历比较好或者本班CS或者刷了很多题的同学),在第一学期基本还是能拿到很多面试,找到实习的。


下面介绍第二学期的课:ECE650 系统编程,内容非常非常有用,尤其对于想从事后端的同学,课程内容简单概括可以由以下几各部分组成:计算机网络,并发,进程线程,操作系统,数据库。其中比较详细的讲了计算机网络和操作系统。操作系统的一部分内容延续了ECE550。感觉也是在成为科班的道路上很有必要的一门课,project也非常偏向应用,包括线程安全地实现malloc函数,基于socket编程的HOT POTATO游戏,C++里用postgresql增删改查数据库,最后修改Linux的kernel以实现几个攻击内核的函数。 目前的感受就是TA好厉害,这节课的项目也帮我拿到一些面试。


ECE568 Robust Server:如果说ECE650可能有点像通用计算机本科基础课,那这门课就是工业级应用课,项目非常庞大而实用,具体参考之前另一个帖子的课程介绍:1point3acres.com 总之做完的几个项目足够大,放在简历上也非常有用。这个学期转专业的大家一开始简历里面也没啥项目,做着做着简历里就可以多一些项目,慢慢也就简历丰富一些,也因此大家最后也都能找到实习。但是load着实有点重。不过这些项目找全职的时候也完全可以放在简历上面,非常实用。


ECE651:software engineering:老师会找真实的客户,给同学分组,(安卓组,后端组,前端组)基于agile 的开发模式让大家给客户开发软件,因为是实际的项目,所以还是挺有用的,另外给我感觉也是目前以来为数不多用到JAVA的课,主要收获在于了解各种开发模式,包括需要写一些requirement,architecture文档等等,以及真正完成一项可以使用的软件。不过毕竟是teamwork,好处是在像亚马逊behavior question的时候这段经历可以有很多可以讲的。可以了解到真正参与完一个项目开发的体验等等。不过码量不是很大,可能花在学习框架上的时间多一些。 Load没有前面两门那么大,觉得还是可以调剂一下load的,毕竟还要准备面试啥的。


关于下学期的选课,那就丰富的多了,具体参考Drew给我们发的邮件
the following courses that are REALLY GOOD for software track students:
ECE 565: Performance, Optimization, and Parallelism (how to make code fast!)
ECE 590-03: Computer and Information Security (security is hugely important!)
ECE 590-07: Human Centered Computing (how make useable front end designs!)
ECE 564: Mobile Apps (iOS programming)
ECE 558: Computer Networks and Distributed Systems (grad networking—a great follow-on to the networking portion of 650)
ECE 566: Enterprise Storage (everything about high performance and resilient storage at enterprise scale)
除了ECE以外,选一些CS研究生的DATABASE ,BLOCK CHAIN 等等也是可以的,另外,也可以考虑管理,数学,统计等等相关的课。


当然,本文说的是软件方向,所以大数据方向我也就没有列出来了。其实也有很多同学两边都有选课。不过没有上过的课我也就不多说了。附件是drew给我们这届的选课指南
文中含有App暂不支持的附件,请到论坛下载
,大家也不妨稍微参考一下。杜克的ECE项目呢,从我们上一届开始扩招,而在上上一届也就三十多人,更早的时候有过十几个人,所以可能有时候在领英上搜杜克在某些大公司人数的时候,会显得好像人很少。不好的地方是有些小公司没有校友的时候不能找校友内推,但好处也同样是能联系上的校友都很好,也很乐意于帮你内推,不过内推这事儿吧,大厂找内推还是渠道很多的。特别提一下这个的原因是有些时候比较offer的时候大家会去看领英大厂人数,这个时候杜克还是有点吃亏,毕竟以往一届EECS加起来也就几十个人找码农工作。



总结一下,单单从转码角度,杜克的ECE完全可以上成CS,且零基础友好,不用担心选课优先级,小班上课(多的50人,少的十几人,即使551选课人数众多,在TA上课时也是小班上课,资源绝对够用)。
生活方面,杜克校园可以说是超级超级漂亮,这几个月学校各种花都开了,每次走出教学楼都要被惊艳一次。另外杜克作为顶尖的私立学校,每周会收到各种活动的invitation,ECE系里面也会每学期组织几次出去免费游玩的机会。气候的话,相比之下觉得加州有时候会比较晒,这里气候更让我喜欢,即使到了冬天也只是偶尔会有一场小雪。在江浙地区生活惯了觉得这里很舒服。
消费方面,生活费非常低廉,目前三人住在学校附近有校车经过的2B2B的房子,房租大概500左右一个月,即使每周也出去吃喝几次,在学校食堂也会吃几次,一个月生活费加上房租加起来可能也是1000不到。但是学费是贵的呀,不过官网上的是第一年的学费,第二年的第二个学期可以只上一门课,学费也就8000刀。加起来的话,没奖学金的话两年光学费一共要8W+的,还是要做好心理准备。当然也可以选择一个半学期上完,其实像今年全职,很多工作机会可能还是会留在春招,Amazon和Facebook在春招的时候还是招了一波全职的人,所以可以正常读两年这一点,也可以算作这个项目的优势吧。


以上就读体验来自于就读一年不到的小菜鸡视角,辨证的看的话,里面有些论述是观点,有些论述是事实,大家各取所需,数据方面未必严谨,欢迎指正~


最后是一波致谢时间,感谢我的两位室友带我好好生活,遇见你们是我来杜克最大的幸运,生活总是井井有条令人愉快,以及你们做饭都那么好吃~爱你们~ 感谢三楼的女孩子们让我们有幸参加来杜克的第一个party,和你们在一起的时候真的很开心,感谢每一位来我们家作客的小伙伴,让家里的生活这样热闹,写着django还能和大家一起过春节,感谢图书馆211的各位,那时熬夜肝的potato和proxy,你们说凌晨五点的路上,青草和泥土的味道很好闻。


感谢看到这里的每一个人,希望八月在学校里也能看到你,微微颔首,彼此称笑,"嘿,欢迎来到杜克ECE."
文中含有App暂不支持的附件,请到论坛下载
  • 284
142条回复