EE转CS,从research到软件工程师,师兄有几点经验想跟你分享

发布时间:2019年07月08日 来源:毕达留学
毕达留学是一家以“录名校、做口碑”为理念的留学咨询机构,专注本科、硕士和博士等各阶段的海外名校申请。毕达注重个性化和透明化的申请服务,致力于申请者学术和职业素养的提升,帮助申请者从本质上提升竞争力并获名校录取。众多超预期的名校录取,是毕达打造以口碑传播为核心的基础。正因如此,每年都有众多学生以照片和视频形式为毕达留学公开代言。查看更多

以下内容来自于学生投稿,授权毕达留学发布。

\

从EE到CS

从research到engineer

我走了不少弯路

也犯了一些错误

以下是几点建议

research or engineer

大部分本科的学生面临两条路的选择,一条是做research一条是当engineer,选择哪一条路做决定要早做。

做research就是需要极高的热情,读PhD的困难程度几乎很少有人读之前就清楚了解。有些人就是天资很高,喜欢做研究,这是research这个选项吸引人的主要原因。如果你觉得自己不care钱多少,做过一些research有一定成果和方向,觉得他能给你带来巨大的幸福,而且性格坚毅能吃得了PhD的苦,那么research就是适合的选择。

另一方面国外软件工程师的待遇其实相当高,master new graduate大部分都是十几万美金, 少数有20多的,建议先了解一下具体薪资数字衡量一下。当工程师的话可以尽快进入工业界,吸引人的地方是钱多而且由于master时间和难度都远低于PhD,这个选择的容错率高。

传统的中国思维就是学历越高越好,这是个误区,重要的是你自己真正需要和适合的是什么,只有这样才能产生动力推动你快速前进。千万不要说,因为长辈说读PhD是种荣耀就去读PhD,想一想你的热情真正能支撑你多久,也不要说抱着挣大钱的心思去读PhD,因为就算是你要抱着成为某方面大牛最后进入industry的想法去读PhD,也要考虑到PhD的成果和导师关系很大,想想选不选得到靠谱的导师,你的小方向是不是适合产出paper,还有业界关于你这个track的热度。

我就是一个没有尽早想清楚,没有能一以贯之的例子。本科的时候GPA非常高,因为专业下面track的关系导致学院培养方向偏研究,课很难不得不投入很多时间,前两年形成了一个思维定势就是要把书本吃透,不太看重工程实践经验。大三去了国外的实验室交换,大四在自己学院一个青千教授手下干了挺久。申请的时候主要靠的是实验室的经历。

出国之后我又决定去做工程师,毫无国内实习经验,从research到engineer思维的转变也花了很多时间,在找实习和工作方面吃了不少瘪。所以想清楚自己的路很重要,越早越好,提前做会有很大的累积效应。

基础不牢,地动山摇

虽然说是决定越早越好,但是事物是辩证统一的,我的另一条建议是无论处在什么样的情况下,要认识到每个人成长的路线不同和成功的早晚不一,什么时候开始都不算晚。就算你是个转专业的学生觉得自己基础薄弱,就算你以前做了很多research突然想明白自己要去做工程师觉得时间不太够,相比于这么长的人生来讲都是来得及的,重要的是不要急功近利追求速度,而是踏踏实实地规划自己的career以及成长路线,一步一个脚印地从打地基开始层层经营。

学生时代常有一句话叫“基础不牢,地动山摇”,我觉得这句话放在什么时候都适用。不同阶段的进步彼此之间是互相依赖的,每一天的思考和努力都是明天的思考和努力的基础,所以哪怕是日拱一卒,要确保每一步走得扎实而不是走得快。过度地拿peer的成就作为自己的成就的标尺,或者因为别人取得成功就很焦虑,从长远来看只会留下隐患。

对于软件工程师来讲,很多课外的东西没有一个量化的标尺,无数的细节和经验没有短期的反馈但是却需要不断积累。比如一个小的Linux操作命令的不清楚,你需要去查stack overflow或者看很多相关doc,而不是随便抱住身边的大腿想也不想就问。前者虽然花时间但是你不仅收获了深刻的印象而且日积月累提高了自主解决问题的能力。诸如此类的积累很难衡量,而且也不一定立刻能获得反馈,但是却是能力提高的必要过程。

关于出国学习

出国留学生活是对人全方位能力的考验,要取得成功不仅需要专业实力,还需要英语能力,人际交往能力,信息搜集和时间安排的能力。

英语是获得信息的途径,英语听和读这两个输入的效率决定了整个生活学习的效率。国外大部分地区的生活会比国内无聊特别多,所以有良好的人际关系和社交活动对保持身心健康也很重要。对找工作的人来讲,要花时间找人内推,要调剂课程load和找工作的各种安排,这些考验的就是自己的信息搜集和时间安排的能力。

其实我认为可以把留学作为全方面提升自己的一次机会,即使以上的各个方面一开始做的不好也没关系,重要的是保持一个谦虚的开放的心态,并且不断自省和总结,逐渐提高这些能力。

\

一个转专业到计算机的同学容易在研究生阶段进入的误区是,很多课都挑着上,一味追求Artificial intelligence,machine learning的fancy track。如果当软件工程师,依照工作为目标的话,其实能不能利用研究生学习的机会夯实基础非常重要,os,architecture,compilor,network,data base都是应该有机会就要去打好的基础。

另一个需要注意的是研究生阶段的量化标准是刷题的多少以及如何通过面试,刷题固然重要,但是一旦进了公司,这些基础课的掌握程度和实践经验决定了你遇到新问题思考的方向,所以balance好自己花在专业底蕴和刷题能力的时间也需要慎重的考虑。

​关于找实习&找工作

对于目标找工作的学生来说,学校的好坏与offer关系不是特别大,确实会略微影响拿到面试的机会,但是最重要的是你的业界经验和刷题的熟练度。从国外暑期实习讲起,以19年为例,假设2019年8、9月份入学,2020年暑假的实习机会在一般2019年8月初就出来了,大部分集中在9-11月,一般来讲到2020年2月之后骤减很多,2020年的4月之后就几乎没有了。简历上一份好的国外的实习经历对找全职工作时通过HR的筛选拿到面试机会大有裨益,但是刚刚入学的新生一方面要应对新的生活、学习、语言环境,一方面又要马不停蹄地开始找内推,全英语coding面试,压力很大。

无论是全职还是实习,但凡是找工作,都是两个部分,一是通过简历让HR给你面试的机会,二是通过多轮以coding为主的面试。前者需要尽早积累国内的实习经验或者平时学校内有深度的project,如果有国外或者国内知名大厂的实习经验最好不过;后者则需要长期练习leetcode的算法题,总结算法知识,提高解题能力。好的实习机会不是拿到全职offer的必然条件,但是它是提高自己作为软件工程师软硬能力的重要机会,并且能加深自己对industry的理解,促进自己调整对career的预期和计划。

不是每个人都很厉害;不是每个人从国内就是大厂实习经验,然后国外实习和全职都拿到FB,Google这样的一线大厂offer;大部分人人多多少少都会受到各种挫折,遇到很沮丧的时刻,坚定自己的信心不断努力尝试以及不断反省和调整计划是必要的。虽然我不是大神,但是在找实习和全职方面我也积累了很多其他经验,不再一一展开。

分享到:
  • 微信平台
  • 资料下载
  • 视频实录