题记:当你准备GRE孤苦难熬的时候,当你刷GPA痛不欲生的时候,当你搞申请手足无措的时候,请想想,四大神校在等你,百万年薪在等你……!
如何一步步走上人生巅峰,关键在于被很多所忽略的背景提升!很多同学申请留学有误区,以为申请就是靠各项考试分数刷刷刷……如果真的是这样,招生官为什么煞费苦心的要求你写简历、个人陈述以及三封推荐信呢?好多中国学生觉得做背景提升没啥用,那是因为每个人都不知从何做起,白忙了一通却毫无收获,根本没有真正的做出什么背景提升,以至于让美国的招生官也慢慢认为中国学生就是没有背景,只有分数。看起来很糟是不是?其实不是,在这种情况下,如果你有与众不同、鹤立鸡群的背景,你的申请通过率会大大的提高!
计算机专业的学生准备留学,往往会更加迷茫,别问我为什么!因为我本人申请的时候就是这样的迷茫啊!科研项目到底该怎么着手去做?!我要怎样才能发表论文啊。。。?!我到底去找怎样的实习才好??我是否应该锻炼编程能力呢。。。?
总结一下就是,我不知道如何去做背景提升。
而事实上,这个逻辑很简单,如果你知道出国留学后是什么样的,无论你读PHD还是MS,也无论你到哪个学校上学,你将来的工作都是——写代码。世界上的工作没有区别,区别只是在哪里写代码。公司招人的时候都是要招代码健将,学校录取你的时候,也是希望你能找到好工作,所以也会考量你的编程能力。
你也许会说,我有个学姐都不会编程,还是去美国上学了呀,是的没错,但你的师姐不会告诉你,不会编程在美国学CS是多么的痛苦啊!!学完之后找工作又是多么的痛苦啊!!找工作时候那惨况就是,两眼一抹黑啊!想留美?难上加难!那回国吧?其实你也没有啥优势。
所以,我希望你在大学压力不大的时候,眼光放得远一些,多看一步,不仅要看到一些留学offer,更要看到留学之后你做什么。那么,你需要做的所有背景提升,都要围绕之后的最终目的来进行,那就是,写代码。问题在于:
1. 你需要找到一个快速锻炼编程能力的办法,并且可以较为轻松的坚持下去,因为你的时间很有限,还要做科研,刷GPA, GRE, 托福。
2. 你需要知道学习哪些技术,才能在未来3-5年内一展才华。(因为国内的教育体系相对落后,与社会实际脱节,且并不能因材施教,不能去发掘你个人真正的潜能,所以你也根本无法学到什么前沿的实际技术。)
3. 你需要知道做什么样的项目,参加什么样的实习、科研项目,才能获得美国招生官的青睐,助你拿到名校offer。
那么本文,将逐一回答上面三个另你迷茫的问题。
第一:快速锻炼编程能力的办法
根据这两年我在公司的锻炼以及自己做项目的体验,综合之前六年的求学之路,归纳一个精华版:
A. 熟练掌握一门General的编程语言,我推荐Java或者Python,这是入门最快,名企需求也最高的语言。你可以看视频教学,也可以看《如何21天变成XX大牛》这样的书起步,但你必须吃透经典读物,例如《JAVA编程思想》。这个阶段,从零开始,需要1-3个月。
B. 打牢数据结构与算法的理论知识。市面上有太多的书籍,这个阶段,需要3-6个月,但是可以与第一阶段同时进行。
C. 操练ACM题目,将语言与数据结构、算法融汇贯通。通常来讲,做50-100道题目就有不错的水平,大概是一个寒假的时间。
踏实的走完这三步,至少需要半年的时间,从零开始,但已经是最快的方法了,所以,你越早开始越好。
第二:你需要学习哪些技术
你必须掌握应用层面的技术,例如网站开发,APP开发。在美国的校园里,你会看到教授带领着学生开发很多实用的APP,而中国的计算机课程却充斥着大量模电、数电等与编程毫无关系的课程,甚至连JAVA课都是在纸上写代码。但是你尽量学先进的技术,不要学陈旧的技术。比如网站开发你最好学Nodejs这种虽然小众但是领先的技术,也好过学PHP这种极其大众但是已经十几年了的技术。还有有很多实战技术值得学习,比如数据库,数据挖掘,人机交互等等,都会让你在美国的求学道路受益匪浅。
其次你最好能掌握一些尖端的理论基础与技术,例如人工智能相关的具体技术,可以用机器学习探测用户的某方面喜好,或者可以提取一些游戏的特征。如果你要申请PHD,这既是积累科研论文的好选择,也是锻炼综合编程能力的好选择,更是为你日后拿到年薪20万美金的offer打下坚实的基础。
第三:什么样的项目可以帮你获得名校offer
说了那么多基础性的东西,谈职业发展,好像跟眼前的申请没有什么关系,好吧,那我们现在来说说眼前的申请。
首先你需要建立一个个人编程档案,比如github账号,或者个人网站,让教授可以查询你做过项目的代码量,这是考察的一个重要指标。
如果你成功的走过前两关,有七种方式可以让你提升自己的背景:
A. Independent Project 你可以把任意新奇的想法变成一个可视化的项目,最简单的方式就是Web。或者自己写一些颇为复杂的算法,实现某种结果,并写一个分析文档。
B. 找到你感兴趣的领域的学校教授,然后大胆提出去实验室帮忙,这会是你简历的RA(research assistant助研)的宝贵经历,但一定要注意自己可以主要负责一些东西,避免打酱油浪费时间。
C. 把你的课设完美的做好,并且使用一些先进的技术,最好可以获得一个高分作为证明,然后包装到个人编程档案里,一定要包装,让1-2个星期完成的课程设计看上去像一个浩大的工程。
D. 找一些创业公司做技术实习生,现在中关村有那么多只差一个程序员的创业团队,只要你可以做网站,就有机会全权负责技术,不管创业公司以后是生是死,但你做的东西都变成了自己的编程积累。
E. 在大三的时候,申请暑假实习,目标就是知名公司,例如BAT(阿里巴巴,百度,腾讯),或者一些研究机构,例如微软研究院,你也可以直接给高校研究所发邮件,声明自己想去学习,但怎么申请需要稍微琢磨一番。这会是无需多言,非常有说服力的证明。
F. 参加一些以编程为主的比赛,例如数学建模,ACM,各种编程挑战赛,国际知名的比赛取得不错的成绩会让你直接拿到offer,即便是不知名的比赛,只要名次高,参加人数多,说出来也可能吓招生官一跳。
G. 如果你有海外关系,比如说认识我,可以帮你联系到海外公司的实习,最好是硅谷高科技公司的实习,你会具备强劲的竞争力,因为你的能力已经初步得到了美国市场的认可,学校招你来不用担心你的就业问题,自然会增加招收你的概率,同时说明你获得的教育跟美国教育是十分契合的,校方不用担心你完不成课业。
总结一下,就是你必须编程,这是毫无疑问的,虽然有的学校会录取完全不会编程的学生,甚至有的公司也不要求你会编程,但你总想给自己多留一个选择,更好的提升自己的竞争力。在刷GPA的同时,在自己的编程档案中积累足够数量的项目,通常来讲是3-5个,一定会让你脱引而出。
最后如果你问,如果只找到10万美金的工作怎么办啊?笨,再找一个10万美金的女朋友啊!

