首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何学习算法?

今天在群里刚好看到有人在讨论算法的问题,刚好自己曾经也有一个算法大神的梦,来说说自己对算法的理解。

算法怎么学?

什么样程度才算把算法学透?

算法学会了有什么用?

算法的学习是非常重要的,那算法学到什么程序才算学通?很简单学算法的有个必备的基础功「白板编程」,即用笔和纸就可以把一个算法手写出来。举个例子快速排序,这个算法你脑子里能第一时间把它理清思路吗?随后还能手写的出来吗?

算法是一门非常深奥的学科,除了一些基础的算法,还有非常多更高阶的内容。但要知道所有的编程技术,都是为了解决现实生活中某个实际问题。算法也是如此。

很多人学算法学不明白或者觉得很难,就是因为这些晦涩难懂的算法,在实际的编程中你很难应用到。做编程 90% 的人是没学过算法,但不妨碍别人开发做的牛逼。然而不懂算法的人,是很难进阶到高阶的岗位,也就是我们俗称的码农。

那算法在实际应用中有什么用?举个例子布隆过滤器算法(Bloom Filter),非常经典的一个去重算法。它能非常高效的进行各种去重,提高你的运行效率。

程序的效率提高它能得到收益?再来看个例子 2018 年淘宝双 11,开场 21 秒交易额超 10 亿,每秒就是 0.47 亿。淘宝的程序多优化一秒就能多带来 0.47 亿交易额。

而在我们现实生活中有无数这样的例子,多优化这一秒就能给公司带来巨大的收益。

回到最初的问题,什么样才算把算法学通?

1 完全明白算法的运作原理

2 能白板编程

3 知道它在实际应用中能有什么用

把这三点弄清楚你的算法已经比绝大部分人都强了。

那具体要怎么学算法?

1 初学者跟着视频学习

算法有很多经典的书籍,但这些书籍都是劝退杀手。当年我在学算法的时候,每看一本算法书,就多产生一点不想在继续学算法的冲动。这些书是非常经典非常好,但对于小白来说太难理解了。

初学者学习算法最好的方式就是跟着视频学,这里我推荐慕课网的bobo老师的算法课。他的算法课通俗易懂,并且每个算法都配有动态演算过程。是我接触到最好的算法入门视频了。

2 啃书刷题

学完了bobo老师的算法课,就可以开始找本经典的算法书籍,开始啃书之旅。这里推荐《算法》第四版这本书。书一定是要啃的,这样你才能进一步提高。当然这时候的学习不能是傻啃,从头看到尾的那种。一定是要带着问题去时常翻阅书籍。

这时候就要开始配合刷题了,学的东西你不用起来,过一段时间一定会忘记的。你就可以去 leetcode 开始刷题,最开始从简单的难度刷起,逐步到最难等级。

3 参加算法比赛

前两步你都坚持下来并认真的去做了,那么普通难度的算法对你来说已经没有什么挑战了。这时候你就可以去参加各种算法比赛了。比如蓝桥杯,ACM,LeetCode周赛等等。这些比赛不仅含金量高,而且往往有丰厚的奖金。如果你能在 ACM 上拿到名次,国内的大厂基本就对你敞开大门。

4 时常关注最新互联网动态

回归本质算法最终也是用来解决生活中的问题,所以你也要时常了解最前沿的技术。看看大厂们又发布哪些产品,他们都用了哪些最新的技术,学习借鉴。

学术要研究,实际应用也要持续关注。那要怎么关注到这些最新的前沿动态呢?这里就要给大家介绍我痴海日报群了,从开始到至今已经运营了 95 期。每天痴海都会在群里给大家提供 3~5 篇优质的文章,中英文都会有。不只局限在编程相关话题,还包括互联网见闻、增长黑客、技术变现、个人能力提升等等。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190914A0A6T100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券