如何学习算法?

article/2025/9/15 23:17:40

640?wx_fmt=png

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

  • 算法怎么学?

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

  • 算法学会了有什么用?


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

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

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

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

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

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

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

1 完全明白算法的运作原理
2 能白板编程
3 知道它在实际应用中能有什么用

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

那具体要怎么学算法?

1 初学者跟着视频学习

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

640?wx_fmt=png

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

2 啃书刷题

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

640?wx_fmt=png

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

3 参加算法比赛

640?wx_fmt=png

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

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

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

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

想 加入 痴海日报群的同学,扫描下方二维码添加我的微信,回复「算法」即可。

除了能每天获取最新优秀资源,痴海还给大家准备了算法资料大礼包,不要错过~

640?wx_fmt=png

5 这世界非黑即白

那就有读者可能好奇痴海你对学习算法这么有心得,那你也一定是个算法大神吧? 巧了,曾经我的内心也是这样想的,我以后也一定会是个算法大神。 但现实却啪啪的打着我的脸,我算法能力非常一般。

这世界并不是非黑即白,不是说你不会算法就无法成为大神,就无法赚到钱。 一定要认清自己的能力边界在哪里。就像我自身,我知道自己很难把数学学好,而学算法一定是要把数学学透。 不然你永远只知招式,不得要领。 而我就是因为这点,在我研究算法如何学习并坚持一段时间之后,我就逐渐放弃学算法。 这条路对我来说是没有任何结果的,就像抖音上那么多漂亮的小姐姐一样: 臭弟弟,别爱我,因为没有结果。

那我放弃了学算法这条路得到了什么?

我用更多的时间用来运营公众号,一年时间内从零增长到如今的 4.6W。

我用更多的时间打磨我的内容创作,一直关注痴海的读者,应该能感受到痴海最近的文章质量越来越高。

我用更多的时间尝试新的赚钱策略,到如今赚的不多,但早已足够我日常的开销。

这条路我们走不通,咱们就换条路走。条条大路通罗马。


-END-

我是痴海,一位 96 后技术博主,终身学习者。

臭弟弟们,不点个在看吗?

640?wx_fmt=gif


http://chatgpt.dhexx.cn/article/tDP0RvIn.shtml

相关文章

突发!大连理工大学研三学生自杀,遗书曝光,研究生的压力应该谁来化解?...

点击上方“码农突围”,马上关注 这里是码农充电第一站,回复“666”,获取一份专属大礼包真爱,请设置“星标”或点个“在看” 来源:科研干货 10月13日,微博上一个名为“红烧土豆叶”的网友引起广大网友关注&a…

英雄算法学习路线

文章目录 零、自我介绍一、关于拜师二、关于编程语言三、算法学习路线1、算法集训1)九日集训2)每月算法集训 2、算法专栏3、算法总包 四、英雄算法联盟1、英雄算法联盟是什么?2、如何加入英雄算法联盟?3、为何会有英雄算法联盟&am…

算法如何学习?别想太多,两个字

文章目录 前言一、语言基础1、「 光天化日学C语言 」 二、刷题必读1、「 LeetCode零基础指南 」2、「 九日集训每日打卡 」 三、语言入门1、「 C语言入门100例 」 四、算法入门1、「 算法零基础100讲 」 五、算法进阶1、「 画解数据结构 」2、「 LeetCode算法题集汇总 」3、「 …

YOLOv5剪枝✂️| 模型剪枝实战篇

本篇博文所用代码为开源项目修改得到,且不适合基础太差的同学。 本篇文章主要讲解代码的使用方式,手把手带你实现YOLOv5模型剪枝操作。 文章目录 0. 环境准备1. 使用YOLOv5训练自己的模型2. 对训练好的模型进行稀疏训练3. 对稀疏训练后的模型进行剪枝4. 对剪枝后的网络模型微…

决策树——预剪枝和后剪枝

目录 简析 为什么要剪枝? 剪枝的基本策略 预剪枝 后剪枝 剪枝的优缺点 预剪枝的优缺点 后剪枝的优缺点 实现 数据集 剪枝前 预剪枝 分析 代码 简析 为什么要剪枝? “剪枝”是决策树学习算法对付 “过拟合” 的主要手段 可通过“剪枝”来…

网络剪枝通俗解释

论文链接:Learning Efficient Convolutional Networks through Network Slimming 视频链接:唐宇迪 基本思想 我们在模型生成通道数为[64,128,256,512]的特征图,但是这些特征图不一定都重要,我们希望能够体现特征图的主次之分&…

α、β剪枝法

在讲α、β剪枝法之前,我们先了解一下极大极小值算法;因为α、β剪枝法是为了简化极大极小值的计算而提出的。 极大极小值法 Minimax算法 又名极小化极大算法,是一种找出失败的最大可能性中的最小值的算法(即最小化对手的最大得益…

决策树的剪枝

目录 一、为什么要剪枝 二、剪枝的策略 1、预剪枝(pre-pruning) 2、后剪枝(post-pruning) 三、代码实现 1、收集、准备数据: 2、分析数据: 3、预剪枝及测试: 4、后剪枝及测试&#xff1…

决策树算法和剪枝原理

决策树算法和剪枝原理 本节我们对决策算法原理做简单的解析,帮助您理清算法思路,温故而知新。 我们知道,决策树算法是一种树形分类结构,要通过这棵树实现样本分类,就要根据 if -else 原理设置判别条件。因此您可以这…

决策树(decision tree)(二)——剪枝

决策树(decision tree)(二)——剪枝 **注:本博客为周志华《机器学习》读书笔记,虽然有一些自己的理解,但是其中仍然有大量文字摘自周老师的《机器学习》书。 决策树系列博客: 决策树(一&#x…

机器学习--决策树二(预剪枝和后剪枝)

一、什么是决策树的剪枝 对比日常生活中,环卫工人在大街上给生长茂密的树进行枝叶的修剪。在机器学习的决策树算法中,有对应的剪枝算法。将比较复杂的决策树,化简为较为简单的版本,并且不损失算法的性能。 二、为什么要剪枝 剪枝…

关于剪枝对象的分类(weights剪枝、神经元剪枝、filters剪枝、layers剪枝、channel剪枝、对channel分组剪枝、Stripe剪枝)

文章目录 剪枝对象分析:1.weights剪枝:2.神经元剪枝:3.Filters剪枝:4.通道剪枝5.Group-wise剪枝6.Stripe剪枝 剪枝对象分析: 剪枝分为结构化剪枝和非结构化剪枝,细化可分为weights剪枝、神经元剪枝、filte…

决策树——剪枝处理

剪枝处理 1:剪枝处理的原因 “剪枝”是决策树学习算法对付“过拟合”的主要手段,因此,可通过“剪枝”来一定程度避免因决策分支过多,以致于把训练集自身的一些特点当做所有数据都具有的一般性质而导致的过拟合 2:剪…

【ML】决策树--剪枝处理(预剪枝、后剪枝)

1. 剪枝(pruning)处理 首先,我们先说一下剪枝的目的——防止“过拟合”。 在决策树的学习过程中,为了保证正确性,会不断的进行划分,这样可能会导致对于训练样本能够达到一个很好的准确性,但是…

深度学习剪枝

一般来说,神经网络层数越深、参数越多,所得出的结果就越精细。但与此同时,问题也来了:越精细,意味着所消耗的计算资源也就越多。这个问题怎么破?这就要靠剪枝技术了。言下之意,把那些对输出结果…

决策树后剪枝算法(一)代价复杂度剪枝CPP

​  ​​ ​决策树后剪枝算法(一)代价复杂度剪枝CPP  ​​ ​决策树后剪枝算法(二)错误率降低剪枝REP  ​​ ​决策树后剪枝算法(三)悲观错误剪枝PEP  ​​ ​决策树后剪枝算法(四&…

机器学习-预剪枝和后剪枝

一棵完全生长的决策树会面临一个很严重的问题,即过拟合。当模型过拟合进行预测时,在测试集上的效果将会很差。因此我们需要对决策树进行剪枝, 剪掉一些枝叶,提升模型的泛化能力。 决策树的剪枝通常有两种方法,预剪枝&a…

【机器学习】Python实现决策树的预剪枝与后剪枝

决策树是一种用于分类和回归任务的非参数监督学习算法。它是一种分层树形结构,由根节点、分支、内部节点和叶节点组成。 从上图中可以看出,决策树从根节点开始,根节点没有任何传入分支。然后,根节点的传出分支为内部节点&#xff…

决策树的预剪枝与后剪枝

前言: 本次讲解参考的仍是周志华的《机器学习》,采用的是书中的样例,按照我个人的理解对其进行了详细解释,希望大家能看得懂。 1、数据集 其中{1,2,3,6,7,10,14,15,16,17}为测试集,{4,5,8,9,11,12,13}为训练集。 2、…

YOLOv5剪枝✂️ | 模型剪枝理论篇

文章目录 1. 前言2. 摘要精读3. 背景4. 本文提出的解决方式5. 通道层次稀疏性的优势6. 挑战7. 缩放因素和稀疏性惩罚8. 利用BN图层中的缩放因子9. 通道剪枝和微调10. 多通道方案11. 处理跨层连接和预激活结构12. 实验结果12.1 CIFAR-10数据集剪枝效果12.2 CIFAR-100数据集剪枝效…