你离攻克数据结构与算法,只差这一步
在各个技术社区或者技术上,我们总是喜欢谈论一些高大上的话题,比如高可用架构、人工智能、云原生应用、跨平台框架、区块链。虽然这些时髦的词代表着行业的趋势,但也在无形之间给我们传递着焦虑,我们不知道怎么才能快速掌握这些新技能,以跟上时代发展。
事实上,回答这个复杂问题的答案也很简单,那就是“专注于学习那些不变的底层知识”。曾经认识一位在硅谷工作了 8 年多的工程师,他从事的是前端方面的开发工作,但后来自己却创业做了 AI 相关的产品。
让人惊讶地是,他仅仅用了半个月时间就掌握了机器学习、深度学习相关的知识,并且成为了一名熟练工。可能你会像我一样问他:你是半个月时间不吃饭不睡觉地学习吗?他说,其实,AI 对于他来说,并不陌生,虽然这个词比较新,但是当他深入进去学习的时候,发现全都是他在之前工作中擅长的那些知识。比如数学、数据结构与算法、计算机组成原理......
所以不得不感叹,“任他东南西北风,我们都要持续专注于学习那些不变的底层知识”。
从这个角度,我们也就不难理解为什么那些大公司面试的时候都喜欢问算法类的题目了。但理解归理解,当大家真正学习算法的时候,又是另外一番景象,因为真正基础、真正核心的东西肯定是个硬骨头,学习的难度也相对会高。这也是很多人不愿意深耕基础知识的原因所在。
那么人人都说“难”的算法,到底应该怎么学呢?
我给你推荐一个人——覃超。他从美国顶尖学府卡内基梅隆大学计算机专业毕业,曾经在 Facebook 工作三年,作为 Facebook Messenger Tech Lead,参与了 Facebook App、Facebook Messenger、Facebook Phone 等产品的研发工作。
覃超在 Facebook 期间面试过很多人,也面对面教过很多人学习算法的朋友交流,他分享给我几点自己总结的经验:
知道分子,一无是处,专业和熟练才是关键。面试的时候,他喜欢问候选人动态规划类型的题目,很多人审完题之后都能大概知道考点是动态规划,但是再让候选人往下说,就会卡壳。这样的状态很多人都经历过,本质还是不熟练,所以说你想成为顶尖选手,前提条件就是应该专业,应该熟练,只是知道这件事情其实并没有价值。
刻意练习,持续刻意练习。如果想要深耕,我们就要成为“熟练工”,那怎么成为熟练工呢?诀窍就是刻意练习,比如你对二分法不熟悉,那就每天都做一些二分法的题目,然后总结出一些适合自己记忆和理解的解题方法,让这个知识点能真正融入到你的知识体系中。
锻炼分析、解决问题的能力。我们学习基础知识,我们刷算法题,本质上都是希望能够提升自己解决问题的能力,要不然,做再多的“刻意练习”都是徒劳。在学习类似算法这样的基础知识的时候,我们一定要心中有数,知道终局是“解决问题”。这就要求你能够有抽象问题、分析问题的能力。
基于此,极客时间和覃超老师共同推出「算法训练营小课」,用 7 天时间,带你掌握 7 种常见数据结构实现原理和特性,理解Java源码如何实现数组、链表、栈和队列,精讲高频、热门面试题解题思路和代码,熟练运用“四步切题法”和“五遍刷题法”。
重点是:算法小课,仅需 ¥9.9
详细课程内容包含:
为了帮你顺利完成 7 天学习,极客时间还配备了全方位的学习服务:
覃超老师会从 LeetCode 海量题库中,给你精选出最值得练习、最高频出现的算法题
来自一线互联网企业的助教老师每天在群内为你答疑,
配备专属班主任全程带班,打造高效学习社群,收获学习伙伴
往期优秀老学员分享,传递给你高效的学习方式和最精华的知识点总结
限时福利
价值 ¥299,限时特惠仅需 ¥9.9。报名后你会获得:课程视频无限期回放、讲师精选 LeetCode 高频题目、助教在线答疑指导、高效学习社群。
(扫描二维码,了解课程详情,立抢特惠名额)
报名后如何开始学习
注意,报名后,务必添加班主任微信,加入班级社群。
千万别把算法看成“炼狱”。跟对老师,找对教程,学会方法,一步一个脚印去攻克,哪有迈不过去的坎儿呢?
点击“阅读原文”,一起跨过算法那道“坎儿