从小白到 6 个 offer,我究竟是怎么刷题的?

最近自习室里又兴起了一阵刷题潮,大家相约刷题~


今天和大家系统分享下我去年转行时的一个刷题过程和方法,希望对你有所帮助。

首先介绍下我的编程基础,我学的是金融工程专业,硕士时学过 C++ 的课,这也是我的编程入门课(但我个人非常不推荐用 C++ 入门)。这门课的重点是 C++ 在金融领域的应用,比如给 Option 定价,基本不涉及算法和数据结构。

所以我是有一定编程基础的,但是对算法和数据结构是小白,也不懂空间复杂度和时间复杂度为何物。

另外说明一下我的时间,我是在工作后才开始刷题,所以是晚上和周末来刷,时间比较紧张,如果是学生的话在我的基础上要多刷一些哟。

下面上干货。


我把我的刷题过程分为 3 阶段。

第一阶段:打基础

时间是 3 个月,做了 128 道题,平均每天 1-2 题。

这一阶段刷题对我来说,是一个学习数据结构和算法的过程。

所以如果是科班的同学这一步就可以跳过了。

经常有同学问这个刷题顺序问题:

我认为在不同阶段是不一样的,那么第一阶段我是按照算法类型来刷,每个类型大概花 1-2 周的时间。

那到底先刷哪个类型呢?

刷 DP?

这不是劝退么?

这里对于小白来说,合理的学习曲线是非常重要的,否则一上来数据结构都不清楚去做难的算法题容易受打击。

那么怎样才是合理的学习曲线呢?

我说的不算,其他人的也只是他个人经验,而应该是看名校的口碑课程是怎么安排的,看教授为你制定的学习计划。

MIT 6.006 Introduction to Algorithms

比如第一周,我们去刷排序算法。

那在这个具体的分类下,题目按什么顺序来做呢?

把题目按照频率从高到低的顺序来做,也就是出现频率高,常考的我们先做。

那对于每一道题应该怎么做呢?

首先我会先自己思考 5 分钟,那如果过了 5 分钟还没有任何思路,就不必强求了,看答案吧。

Leetcode 有一个讨论区,里面有非常多的大神给的解答,重点不是看他的代码,而是看他怎么想的,怎么分析的这个问题。

如果还没有理解,那我会去搜一下视频讲解。

这里推荐一个小哥,也是我唯一推荐的 Leetcode 视频讲解:

国内的小伙伴可能不太方便看这个,大家在留言区说下你推荐的视频讲解吧~

对于在北美求职的同学,这小哥的英文对面试也会非常有帮助。

这样就把一个刷题计划落实到了第一个分类、第一周、第一天该做什么。

但是做完题不是就万事大吉了,最重要的一步是需要吸收、内化成自己的。

我喜欢的是写“解题报告”:

<

,
>

把这道题考查了哪些知识点,正确的思路是怎样的,别人是怎么想到的,代码是怎么写的,代码有什么小技巧,都记录下来。

这个是跟我当时一起刷题的小伙伴学的,并且我们互相讲题,这样效果更好。所以这里强烈建议大家组队刷题,互相监督提高。

那么周末的时候复习和总结,我一般会做:

  1. 重新做一遍本周做过的题目,不是背答案,而是自己再去想一遍;
  2. 再做几道新题;
  3. 看书,建立更系统的知识体系。

这里看书不是指把书从头看到尾,而是抓住重点章节,比如排序算法,那就参考 MIT 教授给你画的重点,只看《算法导论》的这些章节,这才是偷懒的正确打开方式啊。

不过,如果你的时间很充足,当然是系统的看书、上课更好了,会有更加平缓的学习曲线。

这样 3 个月后我把基本的算法类型都刷过了,数据结构也都深入理解了,刚开始做的题目也差不多都忘了,那么开始第二阶段。

第二阶段:拓展思路

这一阶段我花了 1 个半月的时间,复习了第一阶段的题目,并做了 100 道新题。

  • 平时工作日的时候,我会去复习第一阶段的题目,并且用英文把它讲出来,毕竟我要参加英文面试,如果是国内面试的话中文就好了,然后你就会发现,自己是不会说话的,不信你录音听一听。
  • 周末时,我会限定时间去做新题,模拟考试或者面试的感觉,在有时间压力下去思考,否则给充足的时间大家都能做出来。

这一阶段我是记录在 Excel 里:

第二阶段做的差不多的时候,就把 Linkedin 设置为 “open to market“,就会有猎头找我了,那一旦拿到面试,就到了第三阶段。

第三阶段:面试

这一阶段的重点是找到面试的状态和感觉,并且快速写出代码。

那么我的方法是

  • Mock interview
  • 参加 Leetcode contest

这一阶段的刷题顺序我会按公司分类来刷,Leetcode 上有 company tag,如果是国内的小伙伴可以参考这个 Github: https://github.com/afatcoder/LeetcodeTop,列举了国内几大互联网公司常考的面试题,那么就会更有针对性的准备面试。

这一阶段又陆陆续续做了 100 题,同时面完了所有的面试,就收工啦。


最后呢,再送个大家 3 个很好用的 Github 资料:

  1. 按国内公司分类:https://github.com/afatcoder/LeetcodeTop
  2. 按照算法类型分类:https://github.com/wisdompeak/LeetCode
  3. Leetcode 1-919 题的解析:https://github.com/grandyang/leetcode

另外还有一份精选的刷题笔记也想送给大家,之前在视频号里推荐过了,还没有领的小伙伴在公众号后台回复「笔记」就有啦。


那以上就是我刷题经验的整个过程啦,如果还有任何问题欢迎留言或者私信告诉我,如果想加入自习室和大家一起刷题的也欢迎加我微信,备注:自习。

我是小齐,纽约程序媛,点击下方视频了解我的故事吧~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352