闲着没事?你可以这样学学算法

栏目: 编程工具 · 发布时间: 5年前

内容简介:对于很多码农来说,算法总是显得有那么一点高深莫测,好像是一道难以跨越的坎。造成这种现象的原因,一是因为我们对算法的了解和对自己能力的了解不够,还没入门就被吓退了,另外一个原因是,大部分人实际工作中很少用到算法,很多算法都已经被封装到函数库或接口里面了,只需要调用就行,而为了能早点完成任务,我们一般都不会去想接口里面的算法如何实现,只管调用来完成任务,顺利交差就万事大吉了。“不管用什么方法,能够完成任务就可以”,其实我觉得这种想法也是可以的,毕竟我们搞技术的都比较崇尚实用主义。但是如果我们懂得背后的原理,可能
闲着没事?你可以这样学学算法

对于很多 码农 来说,算法总是显得有那么一点高深莫测,好像是一道难以跨越的坎。造成这种现象的原因,一是因为我们对算法的了解和对自己能力的了解不够,还没入门就被吓退了,另外一个原因是,大部分人实际工作中很少用到算法,很多算法都已经被封装到函数库或接口里面了,只需要调用就行,而为了能早点完成任务,我们一般都不会去想接口里面的算法如何实现,只管调用来完成任务,顺利交差就万事大吉了。

“不管用什么方法,能够完成任务就可以”,其实我觉得这种想法也是可以的,毕竟我们搞技术的都比较崇尚实用主义。但是如果我们懂得背后的原理,可能心里会舒坦一些,而且在使用别人接口达不到理想的性能要求时,可以分析是否是接口的实现有问题,从而懂得去选择其他实现版本或者自己动手写,而自己动手写,就必须懂算法了。此外,很多大公司在面试中,往往也会考你算法,很多很多人都倒在算法这个环节上,尸骨遍野。这就是作为码农,即使你的工作不是算法研究,也需要了解一些基础算法的原因。

基础算法,我觉得对于大部分 程序员 来说,通过一定时间的练习,是可以学会的。了解了这一点,我们才不至于很容易被算法吓退。如果你是个算法小白,现在要开始学习算法了,可是又不知道从何学起,那么我这里给你一些建议。

首先,去找大学的数据结构和算法教程来看。我为什么不推荐很多人都知道的大部头《算法导论》呢?我是怕这大部头又把你吓退了,所以还是先从简单一点的开始吧。数据结构和算法是分不开的,一般来说,每种算法都是为某种数据结构服务的,不同的数据结构,往往需要使用不同的算法。数据结构,可以理解为,我们存放一堆数据时,要以某种结构形式存放,而算法,就是要从这堆数据中寻找到你想要的那一小坨数据的方法,而衡量算法优劣的,是空间和时间复杂度,也就是如果你能使用更少的时间和更少的空间(比如计算时需要使用的内存)就能得到答案,那么这个算法就是更好的。

假设你已经学过教材了,练习过教材上的一些算法题目,那么现在你可以尝试去刷刷LeetCode上的题目了。LeetCode上有很多算法题,按难度分为初级、中级等,练习时可以从简单的到难一点的,这样容易让你练习的过程中保持信心。很多公司在面试算法题时,也是直接使用LeetCode上的题目。我本人曾经在远程面试一家不错的外企时,被要求线上完成3道算法题,因为当时已经有比较长时间不接触算法题目了,所以没能很好完成,也错失了一次机会。然后第二天,我就去LeetCode上看题目,恰巧看到了这家外企出的算法题目,我再尝试去解决,没想到顺利把这些题目完成了。如果我在刷这几道题目之后接受那家外企的线上算法题笔试,也许Offer早就收入囊中了。现在,你应该知道,想要获得好的机会,为什么刷刷算法题可能也是必要的原因了。

除了LeetCode,还有一个我推荐你学习算法的网站,这个网站叫做:GeeksForGeeks,随便搜下就找到了。这网站上面有不少巨头公司的算法题目,包括微软、谷歌、亚马逊、Facebook等等,并且给出了解法,同时有不少面试者分享他们去这些公司面试后的面经,你可以参考参考。我曾经在这个网站上呆蛮长一段时间,现在很久没上去看了,写这篇文章时,我再打开这个网站,已经很难打开了,貌似需要你会轻功才能顺畅访问,哎,我就不说得太直白了。

以上提到的那些学习资料或网站资源,在你学习时,可能也会觉得学是学了,可惜缺乏使用场景,还是无法感受到这些算法的威力所在。现在也有一些付费的算法专栏,号称根据使用场景带你学习算法,让你真正明白算法是如何在实际项目中使用的。因为我没有订阅这个专栏,目前也不想免费给他们做广告,因此还是先不提了,如果需要这种学习方式,可以自己去搜索了解下这些专栏,或者私信我,我会告诉你去哪里订阅。

作为程序员,如果你还有蛮多闲暇时间,除了打游戏不知道干嘛的,建议这样去学学算法吧。不过提醒一下,我这些建议主要是给没有算法基础或者算法基础薄弱的技术人,高手路过时,还望理解,如能笑纳,本人将倍感荣幸!

微信扫码,进入【技术人成长】社群逛逛。

闲着没事?你可以这样学学算法

以上所述就是小编给大家介绍的《闲着没事?你可以这样学学算法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

如何求解问题

如何求解问题

Zbigniew Michalewicz、David B.Fogel / 曹宏庆 / 中国水利水电出版社 / 2003-2-1 / 35.00元

《如何求解问题:现代启发式方法》通过一系列贯穿于章节间的有趣难题,《如何求解问题:现代启发式方法》深入浅出地阐述了如何利用计算机来求解问题的一些现代启发式方法。全书包括两部分,共分15章。一起来看看 《如何求解问题》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码