前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「大学生学编程系列」第九篇:如何学习算法

「大学生学编程系列」第九篇:如何学习算法

作者头像
程序员互动联盟
发布2020-04-03 17:59:23
9440
发布2020-04-03 17:59:23
举报

作为一个标准的程序员对于算法需要有一个基础的掌握,而且算法几乎渗透到编程的各个方面,具备良好的算法基础对成为一名优秀的程序员有着非常大的好处,很多做了多年的程序员对于算法还没有一个很好的概念,觉得自己算法基础很一般还不是照样做的很不错,编程是一个种类极多,技巧非常多的,解决同样一个问题不同的人会给出不同的解决方案,而且效果差别也会非常大。随着人工智能的拓展算法又重新被很多企业重视起来,现在很多还没毕业的硕士只要是算法相关专业的很多企业都能给出非常高的薪水,证明市场对于算法的需求在提升。

对于很多初级的程序员来讲不会觉得算法有多重要,但在面试的时候或多或少的涉及到算法题目,越是一些大公司越是重视算法类的考查,算法属于程序员编程技能的灵魂,同样的解决一个问题,不同水平的人给出的结论是不一样的,对于初级的程序员如何下手学习算法,开始编程意识比较模糊阶段如何确定自己的算法学习方向,先不讲复杂的算法,每个初学者都会接触到数据结构这本书,数据结构里面已经开始涉及到数据模型的概念,开始阶段讲到最基础的数据类型,像常见的队列,链表,栈,二叉树等等概念。

作为初学者最初的接触的是编程语言,还没有数据结构的概念,只是接触到编程语言的基础语法怎么实现一个简单的功能,编程语言相当于是打造地基的零件,数据结构就是把这些按照某种方式组合起来,算法就是具体在组合过程中指导思想,所以普通程序员必须在掌握了一门编程语言的基础上进行数据结构的学习,学习编程要的循序渐进,不要贪图求快忘了学习的本质。

说到数据结构可能大家都有所留意,有C语言版本,有C++版本,也有java版本,不同的编程语言配套的数据结构有所差异,但本质指导思想是相似的,学习了一门编程语言弄明白了数据结构再去考虑学习算法,数据结构属于算法的基础,很多人直接在网上买本算法导论研究起来了,但关键是里面语法细节并不能彻底的掌握,所以欲速则不达需要具备一定的基础上再去考虑如何学习算法。

学习算法需要做哪些准备?

很多人觉得算法学习起来应该比较简单,直接在网上买本书就可以开搞了,算法是编程是指导思想,具体操作哪种编程语言来实现是第一步,如果都不懂的编程语言直接上来学习算法,只是单纯的理论学习意义不是很大,学好算法的关键是实践落地化。

如果在懂得一门编程语言的基础上,数据结构也能学的不错了,就可以切入到算法的学习了,很多人觉得算法就是单纯的里面的一些技巧,算法离不开编程语言而单独存在,单纯的理论学习很难说成是真正的掌握算法。

支撑算法的还有一个非常重要的基础,数学基础,很多人问数学不好对于编程有多少影响,要说直接的影响就是算法,通常意义上编程不是每个地方都能用到算法,但在稍微讲求效率的地方不可能把算法孤立,从一个标准程序员的角度考虑,算法是必须要掌握的基础。

如何学习算法

任何知识点的学习都没有固定的方法,在这只是以多年写程序员的经验总结这么几条分享给大家

1.掌握一门编程语言。不要尝试着上来就学习算法,至于选择哪种编程语言要根据自己的兴趣爱好以及市场需求,脱离编程语言直接学习算法,属于空中楼阁,编程语言的学习先从基础语法开始,有多少自学编程的人在第一步就倒下了,编程行业属于长期积累的过程,有多少人还没等到开花结果就选择了放弃,很多人头脑一热直接买了几本书,开始看的还比较简单觉得很有意思,后来难了就直接搁浅了,下次再次发现这本书的时候已经是几个月甚至半年之后的事情了,学习编程没点耐心,建议就不要重复浪费时间了。

2.学好对应语言的数据结构。其实从学习数据结构开始就已经对编程语言开始使用了,很多人直接接触到数据结构就觉得里面的东西太抽象了,这个阶段需要突破的一个心坎,如果选择的编程语言是C/C++会觉得里面的数据结构里面的串联起来非常费劲,建议回去把指针彻底搞明白再去切入数据结构的学习,数据结构的一般开始阶段都比较费力,最后越玩越有感觉的,数据结构的二叉树,树,等概念已经开始慢慢触及到基本算法了,在编程语言中对这块很多封装成成品库,简单的排序算法,删除算法等等都是在基本数据结构的基础上进行扩展出来的,C++里面泛型编程已经开始大量使用基本的算法了。

3.算法学习。算法学习第一个阶段是要掌握基本的理论,在掌握基本的理论之后再去实践,算法概念都不理解去实践没有任何意义,照着自己理解的场景利用代码去实现,这个过程一般比较痛苦,如果数学基础好点可能会理解的快一些,这个阶段主要思考的比较多,思考认知上升之后就可以展开真正的算法实践。

要学好算法以上三步缺一不可,成为一名优秀的程序员,算法基础是必不可少的,算法学习的过程中可能会比较枯燥,但要想真正实现收获,过程必然艰辛在这个过程中还能培养编程兴趣,不是每个人生来就对某项事物感兴趣,接触多了自然就容易产生兴趣,编程从来就是循序渐进的过程,不可能一蹴而就,如果没有足够的耐心不建议进入这个行业的学习中,希望能帮到你。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-18,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 学习算法需要做哪些准备?
  • 如何学习算法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com