[USC]学弟学妹看过来,学长有话对你说

avatar 240384
qianlizimu
20263
33
我是USC CS专业研二的老学长,来谈谈感想吧。
【住宿与生活】
USC校园本身比较小,还比较漂亮,学校周边有各类公寓,学生可以在学校的住宿网站里面去申请也可以自己在外面去租。每个月房租从400刀到1500刀不等,正常的单间卧室价格是每个月750刀到1300刀之间,对于600刀以下的往往是客厅或者两个人share同一间卧室。洛杉矶这地方各类人混居,有不少homeless的人(大多是从墨西哥来的)露宿街头,安全性自然是首要考虑的因素。因为之前发生过中国留学生在学校周边被杀的事情,所以学校现在非常注重安全防范,在周边各个街道路口都安排专人站岗执勤,他们穿着红黄相见的制服于是大家就称之为“小黄衣”,站岗时间一般是从下午5点直到深夜。并且学校还跟Lyft合作(以前是跟Uber合作),在每天下午5点之后为学生提供免费搭乘lyft的服务可以穿梭于学校及周边一定范围内的地区。所以晚上就尽量不要一个人在外面溜达了。
学校旁边有个漂亮的小村落叫做USC Village,相当于一个小广场,有打印店、星巴克咖啡、卖奶茶饮品的、美国银行、卖自行车的、少量宿舍等等,还有个Target超市可以买东西。另外学校北边稍远些的地方有个Ralphs超市,还比较大,不过卖的东西以食品、饮品、厨具为主。
说到吃饭的地方,在学校里大家去的比较多的可能是一个叫TCC的小广场,那里有家Panda Express卖中餐(不那么正宗,那些菜偏甜),可能一顿七八刀的样子,还有卖汉堡的,一个六七刀,卖披萨的,一个八九刀,以及意大利面等等。学校里在Leavy Library(大图书馆)旁边还有个自助餐厅,菜色虽然不多但也还算不错,就是稍微贵了点要十几刀。
学校周边也有各种各样的小餐馆,以卖披萨汉堡的居多。中国学生聚餐经常去东北边一个叫Northern Cafe的地方,是家中餐馆,算是稍微典雅一些的,总体来说还不错。如果想要更平民的价格,在Ralphs旁边有家Hong Kong中餐馆,就是点盒饭的那种,我感觉味道不错而且价格便宜,一顿就6刀左右。当然最便宜的还是自己做菜,平均每顿炒一盘青椒肉丝这种家常菜的话可能只用花个三四刀。
不知道女生理发会去啥地方,我们男生一般不是特别讲究所以就尽量去个便宜些的地方,我印象中最便宜的是Ralphs对面那个大概叫USC Trojans的理发店,一次8刀。
【娱乐】
如果在学校里每天只是学习和刷剧那生活也未免单调了些,平时娱乐生活也还是要稍微丰富一点。学校里有很多社团,在每年春秋两季刚开学的时候都会进行百团大战摆摊宣传,可以去瞅几眼。不过有些社团加入可能需要付费,比如有个射箭社可以让你每周五晚上去体育馆练练射箭的,第一次免费以后再去就要收费,一学期好像是100刀。还有个龙舟社可以组团去划龙舟,每次大概四五十刀。我们中国学生群体也有若干官方组织,比如最出名的USC CSSA,南加大中国学生学者联合会,会举办很多相关活动,刚开学的时候有新老生交流会,学期中会有些职业发展之类的等等活动和讲座(包括一些中国企业的招聘会),春季的时候会举办一次春节联欢晚会。
学校里还有个类似于教会组织的联谊团体,叫bridges international,以往每周五下午会弄一个免费晚餐之类的活动,让大家自由聊天,不过因为教会的人居多所以经常会聊什么上帝啊圣经啊,其实去的人也不是很多。他们还组织过一些出游活动,比如春假的时候会组织去优胜美地国家公园,只用65刀,挺便宜的,毕竟教会也不是以盈利为目的,是一个不错的社交方式。
说到社交,因为来USC读硕士就不会再分小班了,所以就不会再有一个固定的集体归属,如果想多交朋友的话就上课的时候多勾搭一些同学呀,参加一些老乡会活动呀,包括自己所在公寓如果中国学生多的话可能时不时也会有人约狼人杀之类的,可以适当参与些这样的活动。
洛杉矶有些旅游景点可以去瞅瞅,比如比弗利山庄,好莱坞环球影城,Santa Monica海滩,UCLA(传说UCLA的食堂号称全美第一,不知真假)。Long Beach那边风景也不错,还有个著名的Queen Mary(皇家玛丽号)客轮退役了永远停靠在那里,感觉就是个小型的Titanic,现在是作为一个餐馆以及纪念性的景点。当然这边有几家奥特莱斯,想去买买买自然也不能错过。
【选课,针对CS专业】
众所周知,USC的CS专业招的学生非常多,每个年级大概七八百学生,主要是中国人和印度人,美国本土学生读CS专业的不那么多,读CS研究生的就更少。因此,CS专业很多课都是两三百人的大课(比如CS570算法课,CS561人工智能,CS585数据库,CS571网站开发技术等等),几乎每门CS的课加个微信群发现都有上百号学生,当然用微信的基本都是中国学生。可能大家最关心的话题之一就是选课的问题,这里就来说说吧。
CS专业分成几个track(分支),比如general, data science, software engineer, game development,computer network, computer security, intelligent robotics等等,其实只要录取到USC的CS Department来了,学生是可以自由挑选这些track中的任何一个,他们的主要区别就是选的课程稍有些不同,像general规定学生修28学分毕业(一般每门CS的课是4学分,也有些3学分的课,所以基本上只要修7门课就能毕业),其他track都是32学分。大多数CS学生都是general track,也有一些是data science track.其实嘛general track的学生是所有CS专业课都有权去选的,而且可以少修4学分(如今每学分的学费已经涨到了2000美金,并且以每年接近100刀的速度继续上涨),比较划算。
学生每学期都是自由选课,不强制哪学期必须选什么课,但CS专业的课程也不是本专业学生想选就能随便选的,需要先申请一个叫D-Clearance的东西,就是说一个学生可以先申请自己想选的3门课(最多只能同时申请3门),等老师批准了这个Dclearance之后才允许注册这门课。学校的规定比较奇怪,一个CS专业的研究生每学期只允许修两门CS的专业课,当然每门课的load也不那么轻,所以28学分也就是7门课只能拆成4个学期来上。学校一年有春、夏、秋这3个学期,如果暑期要实习的话那么就只有春秋两学期能上课,所以区区7门课硬是要两年才能修完,感觉很别扭。一个学期只修两门课其实负担不是那么重(除非正好是两门workload特别重的课,比如CS571,CS402,CS567这类),有更多时间去刷题找工作;但如果已经找到了工作真的很想一年半就毕业,那么可以试图在某一个学期修第3门课,碍于学院的规定这第3门课不能是CS专业课,但可以是其他专业的,比如EE,Informatics,甚至数学系或经济学类的课。CS专业的28个学分中最多允许4学分(也就是1门课)是其他专业的学分。其实Informatics专业也有很多不错的课,毕竟这专业是专攻data的,很多课都涉及大数据、机器学习之类的,比较实用。
这里大体说说CS专业比较典型的一些课程:
CS570:Analysis of Algorithms.算法课,CS专业学生必修,这门课质量比较高,不写代码只分析算法和时间复杂度,并且要求证明很多算法的正确性,比如证明各种贪心算法的正确性、证明各种NP hard问题的相互规约等等,对基本的算法如贪心、图论算法(包括dfs, bfs, 最短路径问题)、分治、动态规划、网络流(最大流)、NP Complete都有比较透彻的分析,思辨性很强,同时也强调灵活运用这些算法解决各种场景的问题(风格类似于leetcode的那些题)。这门课虽然不直接写代码但对刷题找工作也还是很有帮助的。这门课选的人估计是最多的,每学期可能都有六七百人选这门课,分成两个session,一个在周三晚上一个在周四晚上,一节课3小时,不过上课的时候不点名所以可以随意去哪个session。并且CS的课基本都会有课堂录像,有个叫做DEN的网站,可以看自己注册的课程的录像。
CS571:Web technologies。讲网站开发的课,这门课load比较重,同时也很实用,主要是作业量很大,一学期主要有5次计分的编程作业,会耗掉很多时间。其实老师讲得不好,或者说那么多技术也基本不可能在短短几节课讲透彻,主要靠自学。这门课的5次作业分别涉及(1)html和css制作静态网页,根据几张截图来进行高仿制,讲究排版美观、严格遵循原稿;(2)Javascript处理json数据并以此绘制表格;(3)利用php和javascript编写网站,每学期具体作业内容不一样,我们当时是利用Google Maps的API做一些地点搜索,并且展示目的地地图和路线,同时调用API获取并展示相关评论之类的;(4)利用Node.js及Express编写网站后台并使用Angular做数据绑定和动画、利用jQuery和bootstrap辅助前端开发和响应式设计(网站可以在电脑上看也可以在手机上看,排版要根据屏幕大小不同灵活变动,通过Bootstrap完成),最终把网站部署到AWS上,这次作业工作量最大会耗掉接近整整俩星期,需要调用一大堆API诸如google reviews, yelp reviews, twitter API发推特分享好友等等;(5)将上次的作业改写成一个APP,可以自由选择是Android或IOS。最后两次作业工作量最为巨大,光是作业说明文档就有大概20页,但经历了这样的过程其实收获也非常多,去应聘个前端工程师之类的岗位会很有底气。
CS561: Foundation of Artificial Intelligence.讲人工智能的基础,其实不会涉及太多热门的机器学习、深度学习之类的东西,主要是一些基本概念,实用性不那么强。讲的内容包括一些搜索算法(dfs, bfs, uniform cost, A* search, simulated anneal),游戏对弈(最大最小值算法及alpha-beta剪枝),逻辑推导(命题逻辑和谓词逻辑,forward chaining, backward chaining和resolution推导,大概就是离散数学里的一些内容),贝叶斯网络和马尔科夫模型,神经网络基础概念及增强学习的概念等等。很多内容都不是那么深入地研究,只是介绍性地讲了一下。一学期有3次project和3次考试,当然每学期project具体内容不一样,那3个project大概分别是关于搜索(我们当时是对于n皇后问题分别用dfs, bfs和模拟退火3种算法求解),游戏对弈(我们当时是用最大最小值及alpha-beta剪枝编写双人对战连连看游戏的简易人工智能),逻辑推导(我们是用resolution推导算法编写一个命题逻辑自动推导机),每个project写几百行代码也就差不多。考试可能有些难度,我们当时期末考试均分只有50多分,最终成绩75分以上都给A了(以往的话是80分以上给A)。
CS585 Database Systems:这是门水课,主要讲MySQL以及很多杂七杂八的东西,据上过的人说平时不用花什么时间而考试考得很难,最终没啥收获,学生分数又低,所以学生反馈不好。
CS567 Machine Learning: 一门工作量很重的课,据说一学期有5次书面作业,5次project,3次考试,考试难度比较大,大家分数普遍不高(甚至曾经有一个学期学生平均最终成绩为C),但现在老师变了不知道最新情况如何。但这门课还是比较充实的,上了会很有收获,对machine learning有相对比较深入的研究讨论。
CS572 Information Retrieval and Web Search Engines. 这门课负担很轻,讲搜索引擎的,不需要到教室上课,老师会把课堂录像放到DEN上,每周两节课(每次一小时)自己看看录像就好。一学期有5次作业,其中后四次是project,分别是用Java crawler4j做一个简易爬虫,用Google cloud platform里的hadoop平台基于MapReduce方法为3000多本书构建一个倒排索引,用Solr构建一个简易搜索引擎并完成这个搜索引擎的前端页面,为自己的搜索引擎添加自动补全、错误单词矫正、搜索结果中关键词高亮的功能。这门课负担不重不过考试比较奇特,专考背各种概念(就是背PPT),总体来说还算是有收获的。
CS402 Operating Systems. 负担很重的一门课,内容难度比较大,一学期有一些project主要是关于操作系统kernel编程,用C语言编写,但上完了也会感觉很有收获,在操作系统这方面会感觉自己成为了一个小专家(当然学海无涯其实要学的还有很多很多)。
其他还有许多课程就不逐一介绍了,可以继续问学长学姐。另外,由于学院提供DEN也就是网络课堂的选项,所以如果学生暑期在外实习或者最后一个学期只修一门课并且想在外实习的话,学校允许学生在实习的同时修一门课,以网络在线课堂的方式完成课堂学习,并且在你实习所在地点完成期中期末考试,比如你在西雅图或者纽约实习,学校就给你在西雅图或者纽约安排考场。
【求职】
最为残酷的话题。求职是一个漫长的战线,需要充分调动各种资源,有耐心并且坚持下去。在学校这方面,有Career Center的老师可以帮忙修改简历,但他们主要是针对学生简历中格式、排版上的问题提出意见,或者指出哪些明显不太合适的地方应该删除;但对于某一个专业领域的具体内容他们无法给出意见,比如说你想去应聘一个机器学习工程师,简历中有什么样层次的project才符合企业的要求,这个他们无法指出,你需要去找业内人士来评判。学校有春秋两季career fair,并且分成全校统一的career fair和Viterbi工学院自己的career fair(说明一下,CS部门隶属于Viterbi Engineering School,这个工学院还包括EE,Informatics,航空航天,工业工程等等其他工科专业),对于CS专业的学生来说Viterbi工学院的career fair里对口的企业更多,比如Google, Facebook, Intel, NVidia, ebay, yahoo等等IT公司一般都只会来Viterbi的career fair。很多公司来career fair可能也就是做做宣传,并不是真的打算招很多人,所以career fair用处也不是那么大,比如Google的人来了之后你过去打完招呼然后他们就会跟你说到公司招聘官网上去网申吧。
印象中Microsoft和Facebook的career fair会稍微有点用,其他公司可能作用很小。当然这两家公司来career fair的时候排的队也非常长,facebook我印象中是有两三百人的长队。所以想要不排那么长的队就早点去吧,把时间留给其他公司,打比方说career fair从上午10点开始,如果8点钟就到的话基本上没什么人,就一直占着坑在那里等着就好,可以看看书或者跟其他人聊聊天。
想拿到面试除了努力优化自己简历之外,找内推也是非常重要的,找内推渠道也很多,比如一亩三分地里的内推版,Linkedin上各家公司去找中国人,找自己的校友,如此等等。投简历尽量趁早,如果太晚了公司里坑都已经快招满了那就很吃亏,比如我们一个学长当时投Amazon投的不那么早,被安排在10月初面试,他去西雅图面试完了自我感觉还不错,都已经准备好要去西雅图租房子了,结果后来发现9月份面试的人发了offer然后10月份面试的人全部发了拒信,公司的人说是因为他们人已经招满了,与学生的面试表现无关,只能来年再应聘。
美国大多数IT公司招程序员的笔面试还是以代码题为主,可能间杂着会考些计算机专业基础知识、系统设计和面向对象设计,自然还是平时多刷题多准备为好。这方面问题在这里就不过多讨论,可以参照地里的找工求职板块。
  • 214
33条回复