算法学习和算法面试
(本文节选自我的YouTube视频:程序员必须掌握哪些算法? 如何系统性地学习算法? )
算法学习有两个主要的场景:1. 算法入门:系统性地学习算法 2. 算法面试: 高效复习算法。本文将覆盖两种场景,并推荐对应的学习资源。
This post contains my affiliated links. I may receive compensation if you make a qualifying purchase through my link.
本文提到的算法学习资源链接
- 算法实战项目课 https://schelley.co/algo可在这个页面领取课程折扣码(最多可省75%)
- 高效准备算法面试 https://schelley.co/algomonster (折扣码 SCHELLEY)
- 与Google, Facebook的资深面试官进行模拟面试 https://schelley.co/mock-interview 链接自带10%折扣
算法入门:如何系统性地学好算法
如果你处在算法入门的阶段,或者你刚刚开始转码学CS,想系统性地学习各种算法和数据结构,那我推荐Udacity的Data Structures and Algorithms。这门课可以通过这个页面领取折扣码,最多可拿到二五折优惠(75% off!)。
这门课的视频讲解,是带中文字幕的。课程最大的特色,是带你做一系列高质量的算法实战项目,实现你在现实生活中经常会用到的各种硬核技术,来巩固你的算法技能。
这门课程的final project,是运用A-star算法,实现Google Map导航的核心功能route planner,就是能算出你到任意目的地的最优路线。这个route planner项目,它的含金量和深度,要远超美国很多高校算法课的final project。把这种项目放上简历,你的简历在求职市场上会更容易脱颖而出,为你挣得更多的面试机会。
除了用实战项目帮你挣面试机会,这门课还在各个章节安排了总共80多道经典算法面试题。把这些题做完,你通过算法面试的机率也会大大提升。一门课程,既能帮你补简历,又能帮你准备面试,这对时间很紧张的小伙伴,特别是转专业学CS的同学们,就再适合不过了。另外,跟Udacity其它nanodegree课程一样,你在这门算法课里做的每个实战项目,都会有专人审阅, 并以很高的标准对你的代码提出改进意见。你可以无限次提交, 不断获得新反馈。这种无限良性循环带来的提升, 会远远超过你在学校上课时获得的提升, 因为学校的作业和项目只能提交一次。
如果你正在准备算法面试
我评论私信里有很多刚开始刷题的小伙伴跟我说,上Leetcode刷题就是两眼一抹黑,1000多道题不知道从哪里开始刷起,几百条答案不知道该看哪个,有些高赞答案为了炫技而过于简略初学者看不懂,有些答案不是自己会的编程语言也看不懂。
所以,对想要高效复习算法面试的小伙伴,我推荐去订阅AlgoMonster(链接:https://schelley.co/algomonster 折扣码:SCHELLEY)。
AlgoMonster由几个Google的工程师创办,它最大的特色,就是帮你用更少的时间精力,来把算法面试准备好。AlgoMonster一开始就通过分析各种算法题型在各大公司的真实出题频率,来告诉你,哪些题型你最应该花时间准备,哪些题型你可以少花精力。这样你在复习的一开始,就能针对你的面试目标,轻松制定出一个投资回报率最高的学习路线。接着,AlgoMonster会带你快速过一遍算法面试需要的数学知识,各种题目关键词对应的算法题型,以及对各大数据结构的复习。每种数据结构的用法甚至都用4种语言帮你总结好了,这样你不用额外花时间到处去google。然后,是对各大算法题型的精讲精练。用最少的题目,把每种题型讲透,而不是让你走题海战术。AlgoMonster自带完整的编码环境,支持8种语言。它还很贴心地把很多题型的代码模板帮你总结好了,省得你花时间自己去总结。总之,如果你想高效准备好算法面试,我强烈推荐AlgoMonster。
如果你想进行模拟面试
如果你刷题刷得差不多了,想通过模拟面试进一步提升你的成功率,你可以通过Exponent平台(链接:https://schelley.co/mock-interview )预约一名Google或者Facebook的资深面试官,来给你做几次模拟面试。与这些资深面试官进行模拟面试的最大价值之一,就是获取他们的真实feedback和建议,从而帮你进一步提升你的面试技术,特别是你在面试现场的沟通应变能力。这样无疑能增大你通过面试的机率。
Exponent的模拟面试链接是 https://schelley.co/coach 该链接自带10%折扣。