---2018.09 原答案----
' `8 z0 g9 {/ `和题主的计划类似,以个人经历试答一波。
2 H6 Q/ X4 G9 i8 y; ]" Y7 Y90年大叔一枚,研究生毕业两年后转了IT,半年后27岁才决心转CS。本科上财数理经济+工商管理双学位,硕士在美国水了个排名50的金融计量。年轻时爱冒险闯荡,在Texas做过餐厅服务员和cashier,切过水果炒过菜,当过外卖出租车司机和机场接送,却始终没能在专业中找到理想的职业规划。毕业后去日本东京做了一年商业投资咨询,后辞职回国转战技术岗,目前一直在加拿大最大的保险公司做码农开发。当初是因为看透了亚洲金融行业与商业模式的本质,认清了消费主义社会的趋向,确信自己不合适,不想只为赚钱与追名逐利而活,于是铁了心转做技术。同时,国内浮躁的生活模式我也很不喜欢,想给未来的孩子一个更好的教育成长环境,所以16年底开始筹备出国读CS+移民的计划。然而非科班出身什么都没学过,对计算机一窍不通,起初连什么叫编译都不知道,完全是从零开始肉搏。唯一算得上点竞争力的,也就只有数学和统计基础还比较扎实,GPA高英语基础较好,有日语一级和口译证书,过了北美精算三门考试,以及所在的加拿大公司这个靠山了。
- j' \3 b9 W$ }9 J我也考虑过回美国读CS,拿OPT去湾区干几年。然而存款不足,学费实在太贵,全自费无奖学金,找工作竞争也越来越激烈,H1B是一年比一年难拿,川姥爷上台以后政策更是严峻。当年不少美国金融同学OPT到期都回国了,没能留下来。考虑到自己大龄,要为结婚生子做好铺垫,为父母退休养老有所准备,且主要目标是移民,遂放弃美帝,看上了移民政策大好的加拿大。如果是出于移民考虑,真不推荐美帝,我有好几个还在美国读cs的学弟都说,明年毕业大概率都得要回国。个人觉得,加国澳洲欧洲都是不错的选择,风险小点。2 N7 o) Y. H" d3 f y7 i2 s
题主既然学习能力和英语都没问题,准备两年还是有一定把握的。我也是0基础拼了过来,为了申请学校花了整整两年。这两年真的很累很苦,白天上班码代码debug,业余自学补基础。到最后申请时在coursera上刷了40门CS相关课程,datacamp/CodeAcademy这类网上教程也都没少看,积累了一堆作业和项目代码。去年为了提升背景自费参加了个UC Berkeley的online research lab,练习kaggle的机器学习竞赛,总算是勉强凑了一封美国CS老师的推荐信。平时一直在看Github别人的代码,研读各种技术博客,然后又花了血本重新考了TOEFL和GRE刷高分,之前还顺便考了个SAS初级高级的资格证。不得不说转CS还是很费时间精力的,一定要做好吃苦的准备。有的人基础好可能轻松一点,但我这两年基本是放弃了所有的晚上下班时间和周末节假日在上课做作业写notebook,搜google和stackoverflow就花了不知道多少时间了。
" {4 [5 r# A4 V: ?5 r题主现在准备的话,我建议先找份IT入门工作比较好,毕竟不可能辞职在家自学一两年,而且转行没有基础很容易绕弯,坑不少。虽说IT和CS重叠度不大,但如果有份软件开发的工作,会直观地加深对知识的理解,对自学很有帮助,哪怕编程语言不同问题不同,很多概念道理都是相通的,尤其当有了扎实的coding和debug能力,以及对系统架构的sense,举一反三,能很大程度上提高自学效率和对知识的理解,同时多试错积累经验,让你能从容解决各种报错,应对喜欢git push -f的同事。我觉得,学CS不仅是逻辑思维,还有开发效率速度是要靠练出来的,knowledge是一码,skill又是一码。
, w* r `! Q9 Q% q说到自学,真的建议不要去看书,纸质书效率太低还难坚持。也不要去培训班,性价比极低,并学不到什么。相比之下上课更加划算,现在的MOOC教育这么发达,视频资源太多了,实际练习也很全面,通过课程能拿证书,也是对能力提高的一种测试。CS范畴太大,很容易走偏,最好有一定了解了之后早点定方向,有了定位这样才能学深,和教授套磁也能更深入。我就是浪费了不少时间在VBA上,结果发现没什么用。CS范围再大,关键还是要打好基础,主流编程语言c++, Java至少会一种,Python必学,然后好好学操作系统,principles of computing,编译原理,数据结构和算法,系统架构,基本的机器学习模型和框架,当然有些基础比如sql, shell, git, linux和各种IDE工具,是肯定要先学的。至于类似web应用和swift iOS开发这种,个人感觉以后有余力了再玩比较合适。申请学校的时候,如果有明确的research interest会很有说服力,到底是做data science,HCI,算法优化,还是CV,robotics,并行分布式计算,越早决定越好。有余力的话,可以找战友一起开始刷leetcode,或是去wiki找开源项目开干。近年转专业申CS难度越来越大,能想到的提升背景的最好都去试试。既便如此,开始网申的时候你会发现,很多学校根本不用考虑,无论你准备了再多都没用,很多学校在网页上明确表明对转CS非常不友好,严格限制录取学生的CS/EE背景。不要觉得苛刻,事实上正统科班出身与开始自学没几年的人差距真的很大,即使你能用Java刷了不少leetcode算法题,拿了好多mooc证书,知识储备还是要比科班同学差一截的,除非你已经自学通了整个MIT OCW的公开课列表:
+ E( b( K6 H; z9 ^2 O# R s0 qhttps://ocw.mit.edu/courses/electrical-engineering-and-computer-science/总的来说,27岁不算晚。转CS是一场持续战,但我觉得值得,毕竟闲着你也要工作加班,面临着国内的高房价,也没什么意思。像我们这种大龄转CS的人并不少,趁着现在尝试一拼,起码自己不会后悔。但是呢,也可能有更好的途径,可以多探讨思考一下。就算父母支持题主留学,27岁了你是不是还要连累他们做付出,这个我觉得应该再想一想,人人情况不同。
4 w- @8 A$ t% Y4 M" t& ?' c0 u: s5 c: U5 K
----2018.10 更新----& S8 C, B( F3 b& @9 W1 m* J0 M0 y
另外,逛久了寄托论坛和一亩三分地,我发现其实每年都有大量学生转CS去加拿大,通常都是研究生学历为了移民,去倒读CS本科二学位。不过个人认为,大龄倒读是非常不划算的,25岁去倒读还能理解,28岁就真的很得不偿失。
- }, Z$ J2 E" [' x* i$ R% {倒读CS二学位虽然可以保底,可以进名校,也能省事,但是成本也很大。首先,在已有的研究生学历上多了个二学位,增值不大,本科阶段的CS课程完全可以在线自学,没必要去读二学位。其次,大龄倒读,尤其是单身和妹子,即使录取也极有可能被移民局拒签,到时候这条路就基本走死了。最主要的是,读二学位需要的自费代价很大,学费生活费至少也要60万以上,耗费两三年的时间,年轻也就算了,还可以啃父母,但大龄是真的伤不起,肯定要有人帮忙买单,靠工资存款通常是不现实的,要么自己贷点款,要么亲戚朋友凑钱,其实都是变相地拖累了家庭,除非条件好不在乎。如果是自己辛辛苦苦工作加班攒下的钱,自然是舍不得这么大额花销的,尤其是已婚的拖家带口,连累了老婆孩子也不一定能有个明确的结果。哪怕倒读不花一分钱,都是亏的,因为时间更贵。可以简单的算一下,我们作为快30岁的人了,在自己身上投资了这么多年,现在,怎么说每年也要用自己的能力兑换一些价值,为家庭做一些物质上的稳定输出。但是倒读是没有输出的,只有继续投资输入,倒读这几年本来能赚的年薪和经验都是巨大的机会成本。等到毕业,又会和同龄人在收入存款以及工作经验上拉开好几年的差距,而以前花了六年时间读的本硕学历的价值也基本上完全是打了水漂,投资失败。我觉得本科学的知识也不够,最后出来工作了,还是要靠技术硬实力,想找好工作多赚钱,那就只有在以后继续补知识了,当然好处也有,那就是二学位同样提供工签,这也是很多人看重的,至于成本每个人看情况衡量。
7 d x9 i6 u k n5 @5 N7 @( A相比之下,能申请到master肯定是最好的,加拿大的master项目时间短,通常4个学期16个月毕业,不需要三年。而且多数项目有奖,thesis-based是全奖,course-based是自费,但是授课型也有很多做coop和intern的机会可以赚钱,有些授课型是professional或是project-based,提供的coop长达1年,经济收入和经验提升还是很赚的。当然最好的还是,申请授课型被录取,过去争取第一学期拿高GPA然后找系教授转研究型,那么读研的一年半基本上和工作赚钱积累经验是等价的,而不只是被动的上课。能读研究型项目出来,毕业后工作和移民的机会,自然也容易得多。当然这只是一方面,我觉得转CS最好的选择,还是把自己原有专业的知识技能和CS有效融合起来,比如CS+机械,CS+金融,CS+生物,这样损失的少。转CS难度大但也不乏机会,有付出就有收获,很多学校有设置一年的pre-master给转专业的同学补基础课。! ]" q7 s9 `' `1 V. a/ G# Y
我相信大龄转CS多数人是出于生活考量,只想以读书为跳板移民,对很多人来说,直接走EE移民项目我觉得更合适。通常假设大龄是硕士学历+几年工作经验,只要雅思均分拿到8,基本上已经够EE快速通道的移民邀请分数线了,这样省了几十万学费和几年读书的时间,省下的时间里你还有工作经验和工资收入呢。相比这些成本来看,我觉得专心考雅思冲8最划算,G类雅思比学术类简单很多,拼一下冲8并不是难事。如果英语是真的不好,我倒觉得读二学位也没什么用,走中介进college可能要更稳妥一点(不过最近能提供工签的college也人多爆满了好多都在无限期waiting list中)。另外近年不少北美学校推出了在线读的CS master项目,门槛低了很多了,今后可能会是更好的选择和趋势。
0 }& ~) b5 F) y G- A) J3 L不得不说,想学好CS,需要很多的毅力和坚持。知识数量是庞大的,需要的熟练度和大量训练也是必不可少的。相比其他专业,读CS我感觉是在和时间赛跑,最缺时间。算法是最重要的,leetcode越早刷越好,到了后面时间只会更紧张。毕业,找实习找工作,办身份,每道程序都是很折腾人的。" x6 x0 y$ q; G) M" E& \. \' [
最后,无论选择走什么样的路,一定要有足够的理由和动机。和怎么做比起来,做什么和为什么去做要重要的多。转CS如果只是出于现实原因考虑,确实很容易半途而废,有强烈的兴趣向往和一定的数理逻辑基础,是非常必要的。
* a' J. T9 I. K4 P& Y. p如果让我选自己真正最感兴趣的专业,如果我完全不用顾虑做什么工作赚钱,如果我根本不需要为未来生活规划担忧,如果现实允许我去自由地追求喜欢的方向,其实我会选择astrophysics, cosmology,而不是computer science,但是现实并没有那么多选择。其实我也有考虑同时申一些澳洲欧洲保底校,门槛相对低很多,遗憾的是,我的经济能力有限,无法负担30万以上的留学成本。这两年的自己,心思都在CS上,没有选赚钱的工作,也是变相的在用金钱投资时间和自己来赌一把了。不过我并不迷茫,因为除了这条路之外,如果我想追求自己想要的,我并没有其他选择。不过好在CS应用范围广,和什么行业都百搭,虽然我个人更倾向于做纯技术,但如果不顺利,至少还会有一些机会的。每一个不断为了追求而努力并执着着的人,都是闪耀的,我想做的,也只是找到自己的方向与价值吧。
3 G( x) Z9 T0 D* Q C- A% q, c8 l; Y
----2019. 4月更新----. S) @" d7 z" D, q$ V# d4 ?
收到这么多赞有些意外,似乎还被许多人划为了励志类收藏,看到这些,本想说谢谢大家,然而其实,我是非常失落的,只想告诉大家,自己就是个彻底失败的例子。
, P" T" }% t' Z) V转专业申CS,包括在线项目在内的11所学校全拒,也算是意料之中,不过我不后悔,至少自己真的尽力了。关于经验总结,我觉得首先转cs还是要专业相关,只有软工通信自动化EE这类有用,数学统计专业认可度似乎不高,成功率不大,多数项目还是对背景卡的很严,本科专业是否相关有多少CS课太重要了。其次,GT高分并没有太大用,提高不了多少竞争力,事实证明,T110+G330一样无法弥补专业劣势,这上面花了巨大时间可能也竞争不过托福90分的双非学校cs本科生,毕竟教授知道你能做的事情没有他们多,这也是事实。另外,我要提醒大家,再多的coursera课程证书也不会被认可,最多只能写在CV上,对于学校来说,无论你学了什么拿了什么证书,能被认同的只有credit-bearing的课程,其他的全是废纸。如果真的想要放手一搏,请把时间全部用在备考GRE subject test上。% F5 c/ c: L& C
我仔细反思了一下,失败主要在于背景劣势,文书内容我打磨了一个月,用LaTeX按照会议论文标准做的格式排版,只能说尽力了,然而推荐信,确实是极大的劣势,毕竟离校太多年找不到人写推荐信,我想很多大龄转专业都会遇到这个问题,比较无奈。之前在寄托上留了微信,也和几个网友交流过,听说现在许多学校的金融经济专业,也都会开设机器学习,编程,数据科学相关的课程,未来95后00后转cs或许会方便点,只能感叹时代变了,曾经在那个没有智能手机没有微信的大学时代,学到的最多只有excel。此外,这两个月求职软件上逛下来,发现AI岗位也并不好找,当前AI正是泡沫期,初级职位很少,缺的都是中高端人才,不管是广告推荐文本分析知识图谱还是数据挖掘,通常都会对求职者的编程能力,框架平台经验,NLP/CNN/RNN和分布式计算开发等方面有工作经验要求,或是有顶会文章发表,不过感觉好多职位要求都是互相抄袭别人的,大同小异。我觉得,fintech机会肯定是有的,但要看机遇慢慢来,反倒是金融行业更加不景气的多,听学弟学妹说今年秋招特别凄惨。经济周期时刻在变。尽管如此,学习还是要继续的,目前寒冬期,我们能做的就是做好准备,关注着业界动态,等待下次机会来的时候,争取能抓住它。
9 k' A& b, d8 U" S其实还是想提醒一句,对于年龄偏大的单身妹子,除非你人在国外,自己又是INTP/INTJ/INFP这种不妥协人群,否则最好真的还是别来转了,对于结婚生孩子如此重要的事而言,转cs不确定成本真的太大了,别做后悔的事。至于才23,24岁的同学,想拼就拼不用太顾忌与迷茫,年轻有的是时间机会,拼一下没关系,虽然我是真的很想劝退你们。, R) }6 `; p5 d) X
人生充满了不确定性,比起努力更重要的是选择,努力并不必然带来结果。不过,选择也并不总是利益权衡的现实决策,并不总是为了财富物质生活的规划,人除了追求财富、权利和名誉之外,也会有想要成为理想的自己的野心。总有那么一些选择,就是一个人存在的定义本身,换一种选择,自己就已不再是真正的自己的。我知道对于一部分人来说,转CS就是这样的一种选择,虽然同样都是转CS,但对于不同背景的人来说,这个选择的意义和终点都是完全不同的。能找到最好答案的,只有自己。我希望,这个回答不会被当作是励志贴,至少我想表达的只是一种感情,也和成功没有半点关系。两年多下来,总算是走完了这条路,做了一切能做的尝试,所以结果也变得无所谓了。之前在日本工作被摧残的那一年太伤身,而现在更加感觉到体力脑力智力动力各方面的衰退,两年来放弃了太多休息时间,放弃了更赚钱的工作机会,耗费了数不清的时间和脑细胞,承受了太多压力,不断过关斩将参加考试,研究着各种政策,DIY每一步的详细规划,真的也累了。学生时代还体会不到,公司做项目期间不得不连续加班,每天晚上10点多到家再开始刷GRE练作文是种什么感受,总是到毕业后才慢慢发现,在校的全职读书机会有多宝贵。至于花费的成本,参与项目、考试费、课程及证书、申请费、寄送费、高铁票、订酒店、买考试材料、各种办手续的费用……加起来5万多血汗钱就姑且当作是捐了慈善吧,总也比吃喝玩乐买买买花的值得的多。接下来就只有苦刷雅思8777走EE移民申请,不过等着的又是一关关的挑战,刷分、认证文件、准备材料……我心里知道,大概率如果被卡的话,应该就是工作经验类别和学历不匹配的原因了,这是转行的最大痛点,即使最后拿到了PR,过去求职还是举步维艰,免不了被非CS专业卡,这就是转行的无奈。一切都变成了往日风景与经历,至少青春没有留下遗憾,是我最大的欣慰。5 r) ^8 \! V( z' K) X
还差8个月满30岁,至今一事无成,在同学圈里是唯一还未婚没孩子的单身狗,和所有同学比起来,自己拿着最低的工资收入,家里无房无车,和妈妈一起住,存款也微薄,职场也未有起色,确实因为我出国加转行导致了工作太晚,经验不足,不过这种境况,应该是对一个人逆商有多强的最好考验了。至于单身的原因,是在一年多前,在GRE考前两周被前任出轨她的初恋,否则去年28岁就已经结婚了,过往恋爱经历当然没什么谈的必要,只是尴尬的地方在于,这一次的感情失败,就注定了我要成为大龄剩男,如今努力到了一半,无法轻易放弃过去几年的成本努力而中途退出,选择的艰难性也决定了,我至少三年内生活难以一锤定音和确定,连今后会稳定居住的城市坐标都无从得知,不得不继续拼搏着,眼前包括时间都几乎一无所有,所以也不存在谈感情的基础条件和资本,等到再次谈感情,至少也要32岁以后了。尽管如此,让我降低标准和要求,在生活各种方面求妥协,那是永远不可能的。充满了各种不确定性,这就是人生,每步且行且珍惜,做了选择,那么或许有些事情必然是注定的。
7 S( I. y7 J, I到底要不要转CS? 答案因人而异,但你必须要考虑以下几点:你的性格与追求,你的学习能力与专业基础,你的婚姻情感规划,你的家境和财力,以及最重要的一点,那就是时局。作为一个30岁没房没车没钱的过来人,虽然我不缺努力付出与坚持,也不缺充实与追求,但我在现实维度比周围人更加凄惨,被很多人认为一无是处,当然也在某一维度,比循规蹈矩生活再无变化的人多了一份选择和洒脱。仅希望以个人经历为鉴,给他人带来一定参考。无论怎么选,那都是人生。- p4 w3 k! |$ R: f, O" o. J" {
3 a$ R/ J% K6 n# Z, @----2019.7月——
' Y/ ~+ Z8 ~( v8 p4 {最后一更了,简单回答几个被质疑的小问题。0 A* n. X1 c1 f) A" ?
关于移民,加拿大无非是毕业后拿PGWP边工作边申请EE,只要找到工作了那后面只是时间问题。英语好的人可以直接EE移民,但过去以后就业会是最大的障碍,如果工作经验未积累到一定年限,要做好长期(半年以上)都找不到工作的预防措施。至于魁省PEQ,门槛是低了点只要法语B2,但政策变化谁也说不准,而且B2只能保证你拿到绿卡而已,如果想要稳定不错的工作,起码B1是逃不掉的。至于美国的情况,我已经不了解了,总体上是越来越难,G20峰会,hr1044法案,聪明学生计划……总之是见仁见智了。
3 K. u( J P; F$ X3 @关于名校光环,我个人觉得CS专业不那么依赖学校排名。找工作还是看努力程度,前几轮OA测试主要靠刷题,后几轮就是技术实力硬碰硬的,比商科公平得多。当然,第一梯队学校的毕业生肯定有优势,但并不是单纯的名校光环,真正贵重的是名校所附带的coop机会,科研团队和资源,优质校友资源和人脉,以及大量有价值的内部信息交流与共享。因此对于大龄人士来说,性价比是需要重点考虑的因素,毕竟这已经不是你的第一笔大额投资了,而且你也有了相当的现实包袱,实用性多权衡下。至于学生族,考虑性价比是次要的,首笔投资,就选自己能去的排名最好的学校,实用性也没必要太纠结,毕竟你不知道自己未来会不会读phd走科研这条路。
# E8 l7 j8 x$ z5 C j关于自学,我是说了不建议看纸质书,因为太耗时效率不高,但不代表看书无用。对于刚转行的人来说,视频网课更加新手友好易于上手,内容精简难度适中,起码不那么打击人的兴趣。你让一个新手上来就从图灵系列丛书看起,打基础学原理,怕是很多人坚持不了一个月,哪怕是有几年开发经验的,也不可能一开始就去啃书钻研形式语言自动机,每天研究内核API虚拟内存和各种信号之类的,这样无异于劝退。对于新手,刚开始把基础工具学好,基本算法掌握好,再去尽可能多涉猎cs的方方面面,这样才有利于对这个学科有更好的认知。当然,在知识面达到一定breadth之后,再去精读经典书籍才是提升的捷径。从已经入门再到进阶,总归都要刷一些实打实有分量的大学公开课,多读开源项目源码,翻书深度钻研,直到最后能写出自己的有用项目,而不只是课堂final project那种玩具。但那毕竟是后话了,对于刚刚转码的人来说还很遥远。" N7 S- G9 s2 l% p
关于我如此正统的金融背景为何要转cs,很遗憾,我是真的能力不足。不仅没有资产背景和人脉,性格偏内向,而且口才、情商和玩人际关系也不是我的特长,我没有优秀的销售能力,也不会钻空子,在体制内只能做一名实在的民工。这只是因人而异的问题,事实上,我看到更多的是从cs转金融的,有时候真想和他们换换。
1 m O. U g: j! o4 H+ z在陆家嘴的金融机构中上班是一种什么体验?最后还是要声明一下,对于家境比较优越不需要考虑钱的人,以上观点均不适用。美国的学校那么多有的是选择,去UCSD或USC读个曲线搭边专业什么的都不是事儿,在国内也不需要上班,毕业后在家闲待两三年舒舒服服自学准备就行了,移民简直轻而易举甚至远比不上国内生活优越。对此,我也真给不了什么建议……4 ]6 ~1 R& `2 {4 C6 ~/ Z
新的一年,希望每个人都能拿到梦校的offer……6 B$ C0 ~1 ?0 W2 k1 Q& K) d( {
' E, {+ \5 K D! U- z- }. L3 G
----2021.9月——. {& `; f! n" z5 ^
过了三年多了,想不到还会有人看这个回答,随手更一笔吧。
7 ^! u5 F% a! E" C7 j: p5 s# D谁都没想到去年开始的新冠这么迷幻,现在的局势我也是完全看不清了,不过疫情的结果也是有好有坏。转眼间我也已经毕业了,正在全力做独立游戏项目和物色工作中……
2 _' N2 E0 V' b3 k- Y简单来说,疫情后的当今,只要人在加拿大境内,绿卡都是白菜价了,每个人拿到都只不过是时间问题,但重点还是在于好的工作和公司,没有高质量的好工作,绿卡也只是一张废纸。
3 k+ t' F- R b, o6 G5 F回头来看,绿卡和移民我其实并不那么关心了,不过我走到今天,觉得最最最让我庆幸的一件事,就是在这里找到了我真正热爱的方向,3D游戏和图形学开发,未来仍需努力,但我已经再也没有一点迷茫了,所有的定位和目标都变得非常明确。图形学真的太好玩了,新出的GAMES101,GAMES202系列,简直就是为我量身订造,比天文还有趣,果然我这种性格,就适合做这种死脑筋钻研抽象知识的行业,门槛越高越没有内卷,别人觉得痛苦我却乐在其中,总算是没有浪费这些年的选择,大家都加油啦~! |