【如何学习才能在职申请到美国知名大学研究生,并在校取得优异的

文章正文
发布时间:2018-01-07 05:03

这篇文章是我多年来关于“学习方法”的一些思考。同时也适合于在校学生,留学生,转CS的,CS专业新手,CS专业久久不能入门和在职想要提高自己的人阅读。

“学习”对于很大一部分人来说十分重要,对于学生,软件工程师更是尤为重要。很多人都认识到了这一点,作为学生想要学的更好,拿到好的GPA,考好GRE,托福。在职工作的程序员想要成为公司的技术核心,升职加薪

过去的几年我也经历过同样的历程。一年半以前,我在诺基亚做软件工程师。平时工作中会不断接到新的项目,用到新的技术。怎样才能快速地掌握这些新知识,新技术,保质保量地完成工作。后来我决定申请北美的研究生,大学时候没关注过出国留学。在没有咨询任何中介的情况下,自己一点一点摸索。平时不但白天要上班,下班还要自学托福,GRE。因为没有报任何的英语培训班,所以自己的学习能力就尤为重要。在准备出国留学的过程中也不断地探索学习方法。最后也拿到满意的英语成绩,申请到南加州大学的计算机硕士。

来到美国大学读研究生更是需要良好的学习能力。平时不但要兼顾学校的课程,争取拿到更高的GPA。还需要找实习,找工作,刷算法题,刷公开课,学习系统设计,每一样都离不开“学习”。通过自己探索出来的学习方法,我以GPA 3.9/4.0 的成绩毕业。并且顺利拿到亚马逊的实习,和领英的全职工作

本文就把这些学习经验分享给大家1)大片整块时间

作家格拉德威尔在《异类》一书中指出:“人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成世界级大师的必要条件。”想要达到良好的学习效果,至关重要的一点就是保证学习时间。考过托福,GRE的同学应该都知道,背单词是一条必经路。背单词最重要的一条方法就是用大量并连续的时间不断地重复记忆单词。当时我在准备的时候,也是每天用8~10个小时的时间来背单词,做习题。

后来在美国学习,同样的规律也适合于刷算法题(LeetCode)。对于hard难度的题目,或两个小时甚至更多的时间去理解消化真是家常便饭。准备面试的突击阶段,每天能够保证10个小时的学习时间是非常必要的。

最后强调两点。第一是不要让时间碎片化。第二是短期大量时间学习效果好于每天一点时间。a)不要让时间碎片化很好理解,可以把人的大脑比作单核CPU,每一次切换任务都有额外的消耗。所以能够长时间集中精力做一件时间很重要。b)短期大量时间学习效果好于每天学一点。我知道有些流派建议大家每天学一点,比如每天背10个单词,一年就是3600个。但是根据我的经验,这种说法并不现实。一是没有人能坚持一件事情那么久,二是人的记忆不是长期的,需要不断重复学习以前学过的内容。为了保证学习速度和质量,必须在短时间花大量的时间学习,并在短期复习之前的内容。

2)学不懂的时候怎么办

可能大家在学习过程中也遇到过类似的情况。比如在学习数学,算法,GRE这类比较抽象的内容的时候,会发现自己的大脑不够用了,感觉像是在读天书。这时候大脑就会释放非常明显的信号,告诉你不要在学了。很多同学可能就会放弃,去看手机,刷剧,或者选择学习更简单的内容了。

一般这种情况有三种解决办法。1)分析具体是哪里看不懂,不能理解;2)重复阅读;3)暂时放下,大脑休息一会再接着读

1)分析具体是哪里看不懂,不能理解。一般我们读不懂,或者不能理解的时候。往往是里面有些知识点在我们的大脑中遗漏了。就像一个金字塔,我们要理解上层的内容,必须要先掌握下面的内容。这个时候建议,能够慢下来,把不会的地方都挑出来单独学习。比如一个符号看不懂,查一下这个符号。一个名词不能理解,查出来单独学习。一段话不能理解,圈出来多读几遍。比如你看到HTTPS,不知道啥意思。你就单独去学习HTTPS是什么。然后你发现HTTPS是HTTP+TLS。TLS你不懂,就单独再学习TLS。这样一点一点把轮廓构建出来,直到自己能够正常理解原文的内容。

2)不断重复。有时候可能会遇到有些内容确实比较绕,读一次我们的大脑可能无法处理。这个时候你如果去多读几遍,神奇的事情可能会发生。在某一次,你会发现突然自己就能够理解了。

3)暂时放下,让大脑休息。我们的大脑不是机器,它会有状态好的时候,状态差的时候。有些内容比较难,大脑也会疲劳。这个时候如果能休息一会,放松一下。待大脑清醒的时候,再去攻克那些难题,会收到意想不到的的效果。

3)如何集中精力

怎样集中精力也是很多人在学习中遇到一个难题。有些时候我们明明想好好地学习,但是就是管不住自己。手机放在旁边,有新的微信,新的剧集又弹出更新,经不住要去查看。刷刷微博,刷刷知乎。更有甚者,一遍一遍地告诉自己这是最后一把游戏,可是始终不愿退出。

集中精力有几个办法:1)养成良好的习惯;2)设置阶段目标deadline;3)奖励自己,建立成就感。

1)养成良好的习惯。人的意志力有高有低。通过意志力强迫自己学习并不现实。养成良好的习惯才是持续学习的保证。平时尽量不要碰游戏,游戏设计者想了很多办法让你上瘾,普通人一旦开玩就很难戒掉。每天都学习,养成了习惯,学习就不会是一件很困难的事情了。另外健康的生活态度,比如按时就寝,坚持锻炼也是一个人有良好习惯的体现。

2)设置阶段目标deadline。为自己设置阶段目标也是非常重要的。比如学习托福,GRE,可以提前报名2至3场考试,每次考试间隔25天。有了考试作为目标,你的学习动力会更足。刷算法题也是一样,合理安排好面试,每个公司面试有7~15天的间隔时间,这样全力冲刺一场面试,刷题效果就会更佳的。

3)奖励自己,建立成就感。及时地奖励自己,比如刻苦背了几个小时的英语单词,可以奖励自己看半个小时YouTube。刷了一天的题,晚上可以和朋友玩一下,健健身游游泳。当自己掌握了更多的单词,或者刷了一道新题的时候的成就感,也是激励自己不断学习的动力。

搜集,整理学习资料

现在是信息爆炸的时代,不管是想学习任何知识。都能找到无数学习资料,各种资料质量参差不齐。如何搜集,整理学习资料也是非常重要的。

一般我有这几条原则:1)宜少不宜多;2)选择最优的材料;3)整理好学习材料

1)宜少不宜多。很多人在想要学习一样新的知识或技能的时候,总是想要收集很多的材料,给自己制定很多的计划。比如既想学MIT的公开课,又想学Udacity的公开课,同时又注册了coursera,生怕自己漏掉了任何经典课程。但是自己的经验是,人的精力是有限的。一开始选的越多,往往学的越少。我的建议是只选择一种经典的课程学习。相同类似的内容宁愿有所遗漏,也不重复学习。把自己有限的精力用在刀刃上

2)选择最优的材料。尽量选择世界上最好的材料学习,比如学习C++,谭浩强的版本就可以略过。比如学习安卓开发,世面上安卓的书一大堆。各种质量的书,教程和博客层出不穷。我建议只选择最经典的,绝大数人推荐的进行学习。好教材不仅为你节约时间,而且让你的理解更深刻,学习更轻松。

3)整理好学习材料。整理好学习材料也很重要。善用各种网盘,做好学习资料的管理和备份。原则是方便查找,条理清晰。我自己喜欢用Google Drive来存放文档,方便在不同设之间协同学习。国内的同学可以选择用类似的软件。

Google Drive

还有是善于利用Excel。Excel是很好的效率工具,不仅可以用来背单词(我的Gitbub用Excel做的背单词利器),还可以用来整理面试题目。

算法题整理输出的重要性

学习过程中输出也是非常重要的。输出知识不但能帮助自己了解对知识的掌握情况,还能不断加深自己对于知识的理解和掌握。大学的教授每学期讲授同样的内容,对课程的理解就会更深。对于我们,输出也是同样有效。

这里我举三个例子:1)英语口语;2)刷算法题LeetCode;3)准备考试

1)英语口语。托福和雅思都需要考英语口语,在美国学习,工作和面试,好的口语也非常重要。很多同学都想提高口语,提高口语和提高阅读和听力的方法就有所不同。口语是主动输出的过程。想要输出,第一是我们必须要脑中有料,就需要我们要去记忆,模仿;第二,需要我们要多输出,多说,多练。我自己感觉口语进步神速的时候,就是我最后一学期积极参加面试的时候,平均每周有2~3场电话面试,每周要飞去公司现场面试一次。特别是onsite面试,你需要持续不断地从早上10点说到下午3,4点,对口语的提高非常大。如果平时没有机会开口,我建议可以录音,自己反复说,录下自己的声音反复听。我在准备托福口语的时候用过这个办法,感觉非常有效,口语成绩从19提高到了口语22.

2)刷算法题LeetCode。很多人问我应该怎么刷算法题。我觉得刷题主要保证两条:a)见过,了解大量的题,大量的做法,变种题,相似题。b)多写代码。首先见得题要多,刷的题要多,形成体系。各种Tag,各个公司的题的套路要知道。自己知道解法的题,一定要多写代码,可以先看答案,但是自己写的时候千万不要看答案。同一道题,过一段时间以后一定要重新写一遍代码。如果只是去听题,看题,并不写代码,刷题的效果一定不会好。

3)准备考试。最后讲一讲如何准备考试。平时认真听课,做作业这是基础。针对考试,我觉得做大量的题是必不可少的。比如USC的CSCI 570 Analysis of Algorithms这门课,我的总成绩在近600人中排名前20。我的方法就是刷历届的考试试卷,做到每一道题都懂,都能做对。对于往届的习题,一定是真题最重要,年份越靠近的越重要

对于学习,我先介绍这么多。热爱学习的大家平时也可能会有自己的一些心得和体会。希望也能在评论区给予你的见解。谢谢咯。

大家加油哈,爱学习的人永远不会太差

文章评论
—— 标签 ——
首页
评论
分享
Top