程序员千万不要学算法!

“程序员必须会算法 ?”

程序员对算法通常怀有复杂情感,算法很重要是共识,但是否每个程序员都必须学算法是主要的分歧点。

很多人觉得像人工智能、数据搜索与挖掘这样高薪的工作才用得上算法,觉得算法深不可测。但是这些其实都不是具体的算法,而是一系列算法的集合。

对初学者来说,为避免片面或抽象地理解算法,可根据几个问题评估自己是否适合学习算法

学习算法最重要的是什么?

在学习算法的过程中,一能解决问题,二对自己有用,是最大的推动力。而那些抽象的,与程序员日常工作关系不大的竞赛题,很难提起大多数人的学习兴趣。最好能通过工作中应用的一些案例来切入,利用碎片化时间入门算法,提升技术竞争力。有了兴趣之后就可以尝试将算法尽可能的优化,并套用到一个完整的项目中。

“学习算法很难”,怎样降低难度?

从基础来讲,要学习算法,至少要非常熟练地掌握一种排序算法,各种线性表的插入、删除算法,树的遍历和插入、删除算法,图的遍历算法等。

多学习掌握一些常见问题的解决模式,比如穷举算法如何应用,动态规划算法如何应用。最后要勤思考已经掌握并解决的算法,复盘为什么用这种方法解决,有没有其他方法,类似的问题怎么办,提高举一反三的能力。

编程和数据挖掘算法的区别与联系?

编程算法只是算法的一种表达形式,还可以用表格或流程图来表达算法。数据挖掘领域涉及的算法和其他领域算法只是问题域不同。数据挖掘和机器学习常用的方法,比如决策树、贝叶斯学习、神经网络、遗传算法等,在其他领域也有应用。

在人工智能领域或各种专家系统中,决策树算法也是常用算法。各种算法在不同领域扮演不同角色,本质上没有区别,一通百通

算法实现是否有通用思想?

人们设计各种算法的目的是解决现实问题,虽然各种算法的实现五花八门,但算法设计模式却有一些通用的方法或思想。归纳起来,这些常见的算法设计方法有迭代法、穷举搜索法、分支界限法(剪枝法)、递推法、递归法、回溯法、分治法、贪婪法和动态规划法等。

如何开始算法学习第一步?

没有理论指导的实践是盲目的。

没有实践验证的理论是空洞的。

既然是入门算法,首先就要会玩,否则只会被算法“玩死”。很多朋友啃完了《算法》、《算法导论》或其他算法书籍,对各种排序、搜索、遍历等常用算法了如指掌,但是遇到问题还是束手无策,都知道堆排序和最大最小堆,但是却不能有效地应用到实战。

原文发布于微信公众号 - GitChat精品课(CSDN_Tech)

原文发表时间:2018-08-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

Hinton 谷歌大脑新作:通过给个体标签建模来提高分类能力

图片来源 oregon center for nursing AI 研习社按:Geoffrey Hinton 于 2013 年加入谷歌,目前在谷歌大脑团队致力...

362110
来自专栏牛客网

腾讯暑期实习生面经

1.前言 终于也可以写面经啦,虽然只是去打个酱油。我是内推的,没有经历笔试。当时好像是学校bbs论坛上看到的消息,就把基本信息发给人家了,很迅速的回了我,非常感...

445100
来自专栏AI科技评论

谷歌推出基于注意机制的全新翻译框架,Attention is All You Need!

AI 科技评论消息,谷歌最近与多伦多大学等高校合作发表论文,提出了一种新的网络框架——Transformer。Transformer是完全基于注意力机制(att...

33360
来自专栏智能算法

鸟群的启发--粒子群算法

看文章之前先看一个相关小视频(55s, 2.86M): ? 1. PSO的基本思想: “自然界的蚁群、鸟群、鱼群、羊群、牛群、蜂群等,其实时时刻刻都在给予我们以...

401110
来自专栏计算机视觉战队

简单易懂的讲解深度学习(入门系列之一)

于是,我们推出深度学习的入门系列。在这个系列文章中,我们力图用最为通俗易懂、图文并茂的方式,带你入门深度学习。我们都知道,高手从来都是自学出来的。所以,这个深度...

16720
来自专栏量子位

Hinton号召AI革命:重头再来;李飞飞等赞成:深度学习不是唯一

李林 允中 编译整理 量子位 出品 | 公众号 QbitAI ? △ Hinton等合写的反向传播论文 1986年,39岁的Geoffrey Hinton与人合...

34850
来自专栏向治洪

[置顶] 机器学习简介及常用算法

概念 什么是机器学习? 机器学习是英文名称Machine Learning(简称ML)的直译。机器学习涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多...

22580
来自专栏灯塔大数据

福利|清华大学开源神经机器翻译工具包THUMT

机器翻译是自然语言处理的重要组成部分,其目的是使用计算机自动将文本翻译成其他语言的形式。近年来,端到端的神经机器翻译发展迅速,已经成为机器翻译系统的新主流。近...

36950
来自专栏人工智能头条

深度学习相关最新图书推荐

16040
来自专栏向治洪

机器学习

概念 什么是机器学习? 机器学习是英文名称Machine Learning(简称ML)的直译。机器学习涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学...

212100

扫码关注云+社区

领取腾讯云代金券