为什么研究生阶段有一大堆 EE 转 CS 的但却很少听说有 CS 转 EE 的？
关于这个问题，我想先从“一进一出”两个角度来说。 首先是“出”。 EE和CS学术体系上的密切关联性，这使得从EE转CS比其他专业更容易。 从学术体系的角度来说，CS学科自诞生之日起就注定与EE密不可分。 在美国有很多学校至今旗下仍然只设有EECS院系而没有将二者切割，比如MIT和UC Berkeley，也有一些学院开设有ECE专业或者CE专业，如UCLA等，都充分体现了从历史发展脉络的角度二者的密切关联。 对于国内的专业设置，大多数学校都将EE和CS划归到不同的院系进行教学和管辖，但事实上，所有的CS本科培养方案也都上了EE基础课，比如电路原理，模拟电路，数字电路，数字信号处理这些。 而EE专业也都会有程序语言类和数据结构与算法类课程。 这张图是从公众号上摘取的一个清华大学本科生理工类专业关联性分布图，其中各个专业之间连线上的数字代表了二者重合的课程数量： 可以明显看出，EE与其他诸如机械、材料、土木、航空和化工等专业相比，与CS的课程重合数量最多，专业亲缘关系最高，而且放大到研究生阶段也就意味着二者的科研课题的交叉可能性更高。 这种密切的关系决定了本科EE比其他理工科专业更容易在研究生阶段转入CS。 从背景方面来说，CS 专业因为就业前景好，申请人数较多，竞争也比较激烈，通常会有很多来自理工科转专业的申请者。所以在这种情况下，如果本科是 CS 相关专业（比如EE），在背景上会比较有优势。 另外，理工科的转专业需要完成先修课程的准备。针对申请CS专业的同学来说，不需要了解复杂的数据结构，只要了解 LIST，ARRAY，TREE等基本知识就可以。以下这些课程基本是入门 CS 的必修课：至少精通一门编程语言（常见的有Java，Python，C++）、数据结构与算法、操作系统、数据库。其余课程诸如计算机网络、 Machine Learning，就属于提高进修需要了。 因为课程重合数量多，要在学校里完成这些先修课程，对于EE专业的同学来说相对会容易不少，尤其是EE中偏软件的方向。 除了理论知识的积累和学习，CS 专业的申请最好也同时具备相应的实习、科研经历，所以最好能尽早开始准备。针对大一大二不清楚CS转专业应该如何准备的同学，我们搞了一个留学规划表的活动，需要的直接戳下面报名： 说完福利，我们继续说CS。 说了这么多，所以为啥CS转入EE人少捏？ 那我就来说说“进”。 EE专业分支比较多，而且每个分支学习的技能树差别还大，跨专业转入这个“准入门槛”就摆在那了。 依然从从学科特点上来说，EE的专业分支跨度远远大于CS。 对于CS分支而言，无论是做传统的软件开发，还是机器学习模型、网络通信、数据库等等方向，所需要的核心技能即代码能力都是高度类似的。 这也是为什么码农面试可以采用同一套题目和leetcode的原因，因为只要掌握了代码能力，在这些领域之间切换难度并不会很高。 反观EE专业分支，涵盖了例如信号处理、通信工程、光电工程、微电子集成电路、强电电力系统、机器人控制、电子科学设计等诸多分支， 各个分支之间从软到硬跨度极大，而且各个分支的技能点也取决于不同的高阶专业课程，并不存在类似CS的数据结构与算法这种通用的核心技能，因此分支壁垒很高。 EE大多横跨了硬件和软件两个部分，而CS本科大多只要求软件能力，EE转CS不需要开天辟地，而CS转EE需要补很多硬件实验和技能（比如PCB电路板设计和焊接工艺）。 对于本科CS的同学而言，即使同样学习了一些EE的基础课程，要想转入EE的研究生却仍需要根据分支补足大量专业课程，导致学习曲线十分陡峭明显劝退。 上面说到了EE大多横跨了硬件和软件两个部分，所以EE学习过程中对器材/设备仪器/实验室等空间的依赖性显著高于CS， 做实验要有大量的器材和设备仪器吧？设备仪器需要花钱吧？看吧，除了需要补课以外，还要烧钱。 各种电子元器件、自动焊接机器和高精度示波器…这些设备仪器注定了学生必须受制于空间和实验室而不能自己在校外或寝室里自学。 不能像CS专业的同学一样，只要有一台能跑代码性能过得去的电脑足矣。 再说软件，根据分支的不同，要掌握大量的设计软件和仿真软件，比如Multisim，Simulink，PSCAD，ISE Design Suite, Hyperlynx，Altium Designer… 这都需要有大量的正版授权和许可证支持，同学版权费付一下啊！ 继老美禁止中国部分大学使用MATLAB之后，谁知道会不会再有迷惑行为啊！！ 再来康康CS，没有硬件短板，还占据了软件优势！ CS只要安装几款免费的IDE甚至只靠vim都可以进行编程学习！各类开源代码和免费学习资料十分完备！这么一对比，学ee好贵哇！ 对大多数人来说，学习终究是为了搞钱！学习EE就业短期薪酬比CS低，职业培养路线比CS要长，那么这样看来，搞钱不如CS！ 除了专业本身的原因以外，CS比EE诱人的另一个显著原因是就业薪酬啦。即使代码使人秃头，现在，未来依然会有源源不断的人才向CS冲。只要互联网红利还在，就不会停止。 我说一个数据，国内大厂起步年薪30WRMB，硅谷大厂起步年薪$12W，这就让CS就业薪酬在理工专业中遥遥领先，明显高于绝大多数EE工程师的起薪水平。 从职业发展的角度而言，CS的就业竞争比较激烈，知识的迭代速度很快，但，EE的职业培养路线更长！ 也就是说，从离开学校算起，EE的学生成为真正的资深电子工程师需要有大量的实践经验。 培养一名资深电子工程师的成本和时间都比培养程序员更高，而且培养过程中产生出优质项目收益的难度远远高于写APP的程序员，这也就导致了学生主动转入CS选择更快的职业发展的现状。 总之，我还是比较赞同EECS不分家的观点。在我看来，EECS本来就是一个大类专业，只不过CS是这个大类专业下目前比较热门，学习门槛低而职业前景好的分支，所以从其他分支转过来的学生会更多，转往其他分支的学生会很少。 毕竟，谁也不想放弃这块蛋糕。