高手问答第 267 期 —— 程序员怎样快速攻克算法和数据结构?

白开水不加糖 发布于 09/06 10:06
阅读 5K+
收藏 12

网络上流传着一句段子“程序员两条腿,一条是算法,一条是英文,想跑的更远,这两条腿都不能弱”。英文,我们暂且不谈,我们先来谈谈算法。

算法之难,在于将精巧的逻辑,通过合适的数据结构,用编程语言展开。在某种程度上,数据结构和算法可以说是计算机应用领域的底层逻辑,他也是程序员修炼内功的必备,是其中最为基础的。

程序员无论身处什么阶段,都需要提升数据结构与算法的能力。那么如何学好数据结构和算法呢?欢迎来一起探讨~

OSCHINA 本期高手问答(9 月 6日- 9 月 12日)我们请来了 @小争哥 和大家一起探讨关于算法以及算法面试相关的问题。可讨论的问题包括但不限于:

  • 算法和数据结构的学习
  • 算法面试技巧
  • 算法学习经历分享

或者其它关于算法学习效率的相关问题,也欢迎大家积极提问

嘉宾简介

王争,前 Google 工程师,微信公众号【小争哥】作者,GitHub 上算法教程 Star 数排名前列。热衷分享,致力于通俗易懂地讲解数据结构和算法,帮助广大程序员攻克算法学习、算法刷题、算法面试三项难关。

为了鼓励踊跃提问,《人民邮电出版社》会在问答结束后从提问者中抽取 5 名幸运用户赠予 《数据结构与算法之美》 一书。

购买链接:https://item.jd.com/13293434.html

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就相关问题向 @小争哥  提问,直接回帖提问即可。

加载中
0
白开水不加糖
白开水不加糖

高手问答第 267 期 —— 程序员怎样快速攻克算法和数据结构?

@Morty777@wy65@赤脚小子@empireghost@孙召宏

恭喜以上五位网友分别获得《数据结构与算法之美》 图书一本
请私信 @白开水不加糖  告知快递信息(格式:姓名+电话+地址)

1
萌唬吓删
萌唬吓删

@小争哥 老师您好,刚参加工作的时候真的接触的比较少,现在发现算法和数据结构真的太重要了,完全决定了你的代码逻辑质量啊,尤其现在大数据人工智能机器深度学习算法,数学建模啥的已经搞破脑袋了。。

小争哥
小争哥
👍 认知决定高度。还有一大波人觉得数据结构和算法没啥用,可以不用学😂
1
z
zzy00321

@小争哥 业务开发中没有用到啥算法,刷题很快又忘记了。如何在日常业务中应用算法思想呢?

pyboy58
pyboy58
+1
小争哥
小争哥
算法不像学框架、学语言,无法直接转化成生产力,只能算是脚手架,帮你构建其他直接转化为生产力的技术体系。
1
Morty777
Morty777

@小争哥   你好  有几个问题像你请教一下

  1. 如何 有效的学习算法(循序渐进的方法) ,每次刷题后 过了一段时间 ,还是会卡住,总感觉记不住,都是从简单的往中等,困难刷
  2. 平时长期业务层上很少接触算法, 但是面试长期遇到些,如图的优化,dp,回文,如何有效的应付面试
  3. 您的书籍里面有没有根据实际业务场景实战的 数据结构与算法的例子,我关注到现在后很多动态的gif  算法解析, 感觉方向挺好,更让人容易理解,请问你这有配套的电子资料吗
小争哥
小争哥
1、刷题也是套路、有方法的,需要构建完整的知识体系,随便刷刷,不掌握技巧,就会出现刷了等于白刷的现象 2、只能是针对面试特殊准备,不是所有的基本功在工作中都会一直用到的 3、《数据结构与算法之美》书籍最大的特点就是贴近开发实战。没有配套电子资料。
0
wy65
wy65

@小争哥 以前面试某公司的时候,笔试题都是最小生成树或旅行商问题这样的算法,那么工作中是否需要掌握这样的算法,或者碰到这样的问题再去找解决办法可以吗?

小争哥
小争哥
首先,笔试考最小生成树、旅行商问题,显然有点超纲了。 其次,工作中大概率不会用到这么复杂的数据结构和算法,特别是业务开发,就更难碰到了。或者你只需要掌握这些数据结构和算法的应用场景,遇到问题能联想到,然后再去查找资料深入研究应用即可。
0
被占有的啊洋
被占有的啊洋
@小争哥 数据结构怎么样才能更好的转化为编程实现!以前动理论但是编程就不会了
小争哥
小争哥
理论和实现都要掌握。一般书上讲完理论都会给出代码实现,作为初学者,如果无法完全自主实现,可以先从临摹开始,也就是抄一遍。😂
blu10ph
blu10ph
我觉得数据结构和算法应该被视为对程序的一种更高程度的抽象,类似于编程是对现实的一种抽象,将普遍的现实情况抽象为一种数学题,对数学题应用某种解法,而不是从某种公式来创造一个问题~
0
MR.洋
MR.洋

@小争哥小白如何开始学算法,并能快速融入到工作中?

小争哥
小争哥
建议你看我的这本书,从入门到实战,都有了
0
开源中国首席罗纳尔多
开源中国首席罗纳尔多

@小争哥 您好,请问如何快速入门算法?

小争哥
小争哥
我是从读算法导论,写算法导论上的作业题开始入门算法的。但我的方法不值得借鉴,因为读算法导论对初学者并不友好,当时也算是走了弯路。
0
久永
久永

@小争哥 算法是程序工程师的基本功,但是并不是码农的。很多用人单位根本不需要你算法,只要你把时间耗给他无穷无尽服务于用户就行了。

今天,还能有年轻人出一本关于《算法与数据结构》的书,真是算不忘初心了。

50年前那本经典的《算法与数据结构》的30周年重印本我当年是熟读的,很多思考与经验之谈,到现在也并不过时。

既然这本是同一类的书,不知道能不能谈谈两书的异同与侧重?

久永
久永
回复 @小争哥 : 第一句说的不是认知问题,是在讥讽商业贬低技术的环境。算法当然是基本功,但是问题是,基本功好当然是职业的素养和必备。但是问题是雇佣方不这样看。 就像演员,好的基本功的演员多的是,大家也认可。但是现在都是些啥玩意? 和好的看齐是对的,但是如果知道了生活的现实以后,依然深爱,那才是真爱。 我们不能给后辈制造哪种“技术牛你就无敌”的幻梦,而是要告诉他们,技术牛是你的优势,是你成功的臂膀
小争哥
小争哥
1、你第一句话的认识就是不对的。只要你写代码,那算法就是基本功。 2、有很多好的公司、好的工作都需要好的基本功,我们要像好的看齐,而不是跟差的比。 3、有很多经典的数据结构和算法书籍,现在市面上还继续出版更多的数据结构和算法书籍。我的书籍更贴近实战,每个知识点都结合实战来讲解,读了就知道怎么用。还有更加通俗易懂。
0
ichord
ichord

@小争哥 你好,刷了一段时间算法题之后,工作中用到机会比较少,过一段时间又会遗忘,有什么好的方式可以记忆呢

小争哥
小争哥
遗忘是正常的。任何知识一段时间不用都遗忘,不仅仅是算法。我们再学习算法、刷题的过程中,一方面是学知识,另一方面是锻炼能力,知识会忘,能力不会。
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部