图解什么是编程语言类型
![cysgjj](http://www.wnpsw.com/zb_users/avatar/0.png)
程序员是怎么学习算法的?
- 问题驱动型, 当你碰到特定问题时, 去学习该问题相关的算法; 例如当你碰到某段程序排序运算特别慢的时候, 就会去了解有没有高效的/利用更多内存的排序, 以空间换取时间. 进而你会了解到冒泡排序, 插入排序, 堆排序, 快速排序等等.
- 领域驱动型, 当你的工作遇到了新的领域, 例如你接手一个项目, 需要对一些信息进行加密和解密. 可能你从来没做过加密解密的算法, 这个时候, 就需要较好的理解学习一下对称加密/非对称加密, 加密的本质, 提高加密安全度等等.
- 面试驱动型, 最后一个很多程序员特色哈, 是为了面试而准备的. 比如现在面试题动不动就问红黑树, B-Tree, 平衡二叉树/非平衡二叉树, 哈希算法, 任务分发等. 可以说程序员大部分时间做着CRUD和UnitTest, 只有到面试前了, 才去看那些有的没的各种算法.
将真没有基本的专业知识直接学习算法还是比较吃力的,尤其是到了做后做性能优化的时候。可以从数据结构,计算机原理学起,如果只是简单应用,找一些源码看看即可满足基本的开发使用。
其实你我都心知肚明,除非特殊场景,在中国的 IT 环境里,大多数场景下,学习算法的目的在于通过笔试算法题。
但算法书林林总总,有时候乱花渐欲迷人眼。
杜甫有诗云:读书破万卷,下笔如有神。不管选择哪本书,只要深入学习,分层次,逐层进阶,一定可以将算法攻克。
笔者强烈推荐一个 Github 开源项目 LeetCode-Go,你不仅可以把他当做一本开源算法书,也可以当做一个学习和交流的平台。
github 地址:***s://github***/halfrost/LeetCode-Go
作者写算法书的目的很利他:
刷题刷了一年了,想和大家分享分享一些做题心得,解题方法。想和有相同爱好的人交个朋友,一起交流学习。对于自己来说,写题解也是一种提高。把一道深奥的题目讲给一点都没有头绪的人,并能让他完全听懂,很能锻炼人的表达能力。在讲解中很可能还会遇到听者的一些提问,这些问题可能是自己的知识漏洞,强迫自己去弥补。笔者在公司做过相关的分享,感受很深,双方受益都还不错。
首先基础知识要牢固
基础知识包括数学基础,计算机基础;数学基础研究生以前的数学都是基础数学,严谨的数学逻辑思维。计算机基础包括计算硬件知识,计算机网络知识,计算机软件知识。
最起码要擅长两三门编程语言技术,熟悉他们底层开发逻辑原理,熟悉常见的数据结构和算法。
算法研究
熟练使用常见的各种算法,不但学习和研究新的算法逻辑,从开源算法研究中归纳总结和改进提出自己的意见。
程序员最重要的是学习能力, 算法只是其中一环,至于是否必须我的看法是不一定,只需要理解掌握基本算法即可, 因为很多算法都已经现成集中在很多库中,例如排序,只要会使用就行。
考验程序员的关键还是如何合理的 有效的利用 各种接口来实现具体需求,最重要的还是学习能力。基本的数据结构全要掌握。慕课网实战搜一下相关的[_a***_]。买本程序与数据结构慢慢研读,提升数学水平,结合进行实战
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/19289.html