不看这篇,你敢说自己懂CS专业?|微信群讲座经典实录
“现在整个社会大环境就是实体经济相对比较萎缩,互联网以及这方面的虚拟经济正在成为很强的上升趋势。”...
大家好我是Albert Zheng,毕业于加州大学伯克利的CS专业,现在在谷歌广告组工作。很高兴来到棕榈大道跟大家分享我对CS这个专业的看法、经验以及给大家本科期间学习的建议。
1. CS专业的优势
找工作的情况不能说是百分百可以找到,但是我的同学周围所有学这个专业的全部都找到了工作。我觉得这个专业找工作的难度比其他专业要小很多。现在整个社会大环境就是实体经济相对比较萎缩,互联网以及这方面的虚拟经济正在成为很强的上升趋势。所以在这个行业上对我们软件工程师需求只会越来越大的。如果是想创业的同学,现在互联网行业还有很多未被完全开发的领域。投资人对互联网还是有非常强烈的投资意愿的,所以创业机会是很多的。
2.CS专业劣势
第二个劣势是交际圈子。就我观察大多数软件工程师的朋友都是同行,尤其是在学校里面各位交的朋友很多都是自己本专业的,所以想要接触一些其他专业的同学的机会相对比较少。不过这个更看重个人选择,没有人会说不愿意跟软件工程师交朋友。只要大家努力拓展圈子这都不是问题。
最后一点是工作性质。毕竟我们大多数时间是坐在电脑前跟机器交流,跟人交流的时间相对其他一些,比如consulting,这种专业会相对比较少。而且出差、旅游的机会也几乎没有,所以如果对这方面比较看重的同学可能就不是一个非常好的选择。
3. CS不同方向以及学校选择
美国好的学校大多数集中在东西海岸,我根据这两个区域为例子来讲一下每个区域的特点。西海岸就代表性的学校就是加州系统的各个学校,包括我的母校UCB,以及斯坦福,西雅图的华大,LA的加州理工等等,这些都是非常好的计算机学校。这些学校的优势在于离湾区计算机行业的中心很近,很多公司有很多的招聘活动,info session,我们有很多机会接触他们公司的人。附近互联网的氛围也很浓,大家讨论的问题,做的项目也和这方面相关,耳濡目染的就会在这方面有所提高。东部名校相对更多一些,常青藤盟校和纽约大学等等,也是非常优秀的选择。东部的学校我的印象是会有更多的机会参与到非互联网行业,或者以互联网为辅助的行业,比如金融,投行等等。这些行业对软件有非常强的需求,软件工程师也会招很多很多人。而且据我所知,一些投行,对冲基金会给CS的人更高的工资,当然进的难度也很大。不过大家不要觉得去了东部的学校就对湾区完全say goodbye了,我有很多同事也是从东部过来的。所以这个没有任何的局限。对于公司招聘来讲,他们对好学校有一点preference,不过这不是主要的考虑因素,而且这仅仅在简历筛选过程。公司更看重个人能力,等你拿到了面试之后,全都看你自己的水平以及面试时候的表现了。
4. AI/ML
前面有同学问到说低GPA对就业影响大不大?我个人认为还是有一点大的。如果你是三和四之间的差别这个,其实是很明显的,公司在考虑选人时会明显的倾向于那个绩点高的同学,但是如果仅仅是差0.1这个百分点的话,这个是没有什么区别的。而且这个区别仅仅体现在简历筛选,拿到面试后没有任何影响。我给大家的建议是,课一定要好好上,尽量拿到高的GPA,但不要过分看重GPA而耽误实习或者networking,我认为他们是比一个仅仅高的GPA还要重要的方面。
5. 本科期间学习重点
本科期间还有一个重要的就是实习。实习不光是假期的时候,其实在学期中如果有好的机会,在不耽误上课的基础上也可以做一下兼职。第一份实习相对都比较难找,因为这时候你没有任何的实习经验,所以可能需要多花点时间去投更多的公司,了解一些除了大公司外有没有一些创业的小团队,或者是学校内部有没有一些学生团体正在做一些什么CS有关的课题。第一份工作都是没有工资的,不过没有关系,我们主要是积累一些经历,之后对写在resume上也有帮助。另外呢就是比如说像微软,谷歌,facebook好像这些公司都有一种特殊的项目,他们会从大一或者大二的学生当中筛选一些人去公司实习。他们不对这些学生有特别强的工作经历的要求,甚至没有任何工作经历都是可以的,但是他们可能需要你有很强的学术能力,之前有过奥赛或将经验,大一大二基础课上的很好等等。名额也是有限的,但是可以尝试一下,有了这种实习经历之后,再申请公司的实习就会难度大大降低。
对于想读博士的同学,实习的重要性会稍微降低一点。你更多的是需要跟教授做一些research,因为大家都知道申博士需要教授的推荐信,和教授搞好关系做些research,如果有可能的话发一些paper,对申请博士、硕士有一定的帮助。我并不是走这个track,不太能给你们很多建议,但是我知道这个比较枯燥,不过有的人如果很感兴趣的话也是可以尝试一下。
还有就是多交朋友在大一大二期间,不要光光是和自己的专业的朋友打交道。大一大二的基础课很多是跟其他专业的人上课的,或者是参加一些活动,这个时候就可以结交更多的朋友。不然的话等到你到了大三大四之后你会发现你的朋友几乎全部都是同专业的,这个是我前面说的弊端,不能把自己的交际圈子变得太局限狭窄。
对于毕业之后的选择可以进入一些比较知名的科技公司工作,进入这些公司的好处就是福利比较好,待遇相对比较高,工作呢,很多时候也比较稳定,不太又担心什么公司会倒闭的风险,而且基本这些公司都不太愿意赶你走除非很差。公司的福利我觉得可能大家在网上都看过,首先就谷歌给大家一个简单的介绍吧。一日三餐我们都不需要再担心了,都是免费的,平时也有一些水果零食,牛奶饮料等等。甚至可以毫不夸张的说基本上周一到周五,除了睡觉以外都可以留在公司,解决任何问题,比如健身,洗衣服等等。还有一些娱乐设施也可以供大家选择,比如我们新公司有保龄球馆。然后每个楼层或者每一栋楼都会有一个地方有一个游戏机室给大家有XBOX, PSP让大家玩。比如周四那天是葡萄牙队波兰的欧洲杯,我是一个葡萄牙球迷,然后那是美国时间白天比赛,虽然是上班时间我们也可以去看球,然后我就坐在那里看了整场比赛。
第二个选择就是近一些小一点的公司,或者创业型公司,正在上升期间的。这些公司的好处是,你会觉得自己做的事情更有影响,因为这个时候你们公司做的事情还不是很成型,你做的事情的价值就会有很好的体现。
毕业之后还有一个选择是读硕士或者博士。我认为读硕士基本上跟读本科没有什么特别大的区别,仅仅是相当于多上了技能课,学位高了一点。公司在招人方面会有一点考虑但是影响不是很大,但是读博士就是一个质的改变了。读博士的话你的工作就不太完全是一个软件工程师,你会有更多的选择,比如说你可以去做一些很深的研究啊,这些都是博士学位的人做的事。
最后一点就是自己创业,本科毕业之后直接开始创业的同学比较少。但是有些创业的同学在本科期间就已经开始做一些自己的项目。在这边有很多这种机会,学校也会提供你一些帮助比如说会提供场所等等。你周围会认识同行业的一些优秀的人才可以和他们一起合作,这些都是有很多很好的机会的。
6. 工作所需技能
而且在公司写代码,因为你的代码可能会被很多很多人读,可能会在那里呆很久,可能在你离开公司之后还需要用到。大家在读书的时候可能还没有很强的体会,因为都是自己写代码自己看,但是工作之后会有很强的这方面的要求。你做的任何代码都需要有别人来审核,必须要达到一定的标准才可以上交。所以我建议大家在可以做project的时候,尽可能的把代码写得简单易懂,这对你以后的工作也会有帮助。然后随着你的级别的提高,你所需要的写代码的时间会越来越少,一些做设计就是整个程序架构方面的设计,以及任务的细化分配方面的时间也会越来越多,所以有的同学可能想说我不想做一辈子的程序员我应该怎么做。
其实在工作了一段时间之后,你可能自然而然的发现,我怎么现在写代码的时间越来越少?我需要开很多的会,我需要去做很多的设计,虽然他们也是跟tech,跟这个互联网,跟码农相关,但是不是真正坐在电脑前去敲代码。或者可以做一些技术组长或者程序架构师等,这个就跟软件工程师的工作略有不同但是比较像,也需要花大段时间坐在电脑前敲代码。这两个track没有优劣之分,都可以上升到很高的级别,还是看个人兴趣和工作的机会。
7. 你适合学CS吗?
理科好的同学对学计算机学习有一定的帮助,因为毕竟是有逻辑上的东西,一些思维的能力等等。
女生学CS没有任何劣势,虽然女程序员比较少,但我并不认为女生在学的方面有天生的劣势。甚至我认为还有一定的优势,因为大公司很注重公司内部的男女比例,如果面试人各种水平差不多,公司会倾向于女性的,甚至即使是女生能力差一点,也会倾向于女性的。而且据我观察,现在学CS的女生以及新来的软件工程师女生的比例实在逐年上升的,而且他们做得很好,没有任何问题不会比男生差。
对于高中经历,有突出的固然好。尤其是一些同学已经提前有过奥赛的训练,那么就非常有帮助。但是没有高中经验这个也是没有任何问题,如果你是刚刚开始学CS,都是没有问题,都是可以现在学到的。
有从不同专业比如化学工程,或者是数学,或者是文科课比如文学,历史等等转到CS的人大有人在,什么时候转的都有,甚至本科毕业之后重新申请也有。
公司在招人的时候对你的专业其实并不是很看重。我有一个朋友和我一起去了谷歌,他是化学工程专业,但是他上了很多CS的课,他的CS水平和面试表现都很好,所以重要的还是你自己本身的水平而不仅仅是你的专业知识一些其他的背景。
8. 问答环节
问:CS和CE的区别以及和EECS的区别?答:其实我认为更多就是学校开设的不同系列项目的名字,真正看中的还是你具体上了那些课,公司也不会在意这些名字,关键是你上了什么课。相对来讲CS是纯软件,CE多了硬件的东西,EECS硬件的东西更多。
问:读CS和cognitive science双专业,在课程安排上有什么建议吗?
答:CS和Cog Sci双专业我知道有人上,这两个专业也有重合。对于选课建议,反正大意就是选基础课,这两个基础可几乎是一样的。然后再学一些两个专业的入门课程。但是不用担心,会有很多时间去让你了解自己想上什么课。
问:想搞AI的话是否建议在大学选点cognitive science/ psychology?
答:搞AI不需要选心理,还是选一些数学和统计的课比较好。可能大家对AI有误区,其实AI和游戏里面的AI关系不大。现在说的AI是通过数学的运算来做一些machine learning,图片处理等等工作。
问:我马上上高中,在初中有参加编程培训,主要是C++,高中应该怎么准备。
答:高中准备还是跟着老师做一些奥赛的训练,一些算法的训练。这些尤其是对日后的面试有帮助,面试基本是算法题。
问:寻找实习工作机会的全过程是什么?
答:第一轮递简历或者找人内推,内推的成功率大很多。之后就会联系你面试,面试一定要多刷题做好准备工作,你基本会把自己前两三个面试搞砸,没关系,每个人都会的,所以不要先面自己最喜欢的公司。然后练完几手之后就会觉得哇自己对面试有更深的了解,也不那么紧张了,可以发挥的更好的。然后面试过后一般会有两轮实习,可能最多两轮,面试之后就是offer。
-The End-
|微信群讲座实录推荐|
(点击图片进入)
关注 棕榈大道本科留学
微信扫一扫关注公众号