"IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业、实用的知识与技能,快速提升职场竞争力。 点击蓝色微信名可快速关注我们!
相信每个程序员对算法通常怀有复杂情感,程序的灵魂是算法,它是计算机科学领域最重要的基石之一。软件开发不是按部就班,而是需要选择算法去更快更好地实现一些功能,这是大家能够共识的。
01
算法的特征
在1950年,算法(Algorithm)一词经常同欧几里得算法联系在一起。这个算法就是在欧几里得的《几何原本》中所阐述的求两个数的最大公约数的过程,即辗转相除法。从此以后,算法这一叫法一直沿用至今。
随着时间的推移,算法这门学科得到了长足的发展,算法应该具有如下5个重要的特征:
- 有穷性:保证执行有限步骤之后结束。
- 确切性:每一步骤都有确切的定义。
- 输入:每个算法有零个或多个输入,以刻画运算对象的初始情况。所谓零个输入,是指算法本身舍弃了初始条件。
- 输出:每个算法有一个或多个输出,显示对输入数据加工后的结果,没有输出的算法是毫无意义的。
- 可行性:原则上算法能够精确地运行,进行有限次运算后即可完成一种运算。
02
学习算法的重要性
许多小伙伴看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。
编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论。例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。
这些基础课程更可以称之为为“内功”,而新的语言、技术、标准则更像是“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。
所以,程序员唯有掌握了算法,才能轻松地驾驭程序开发。
03
学习算法的注意事项
1.要想学得深入,基础要扎实。
基础的作用不必多说,基础的重要性在大学课堂上老师曾经讲过很多次,在此重点说明“深入”。职场不是学校,企业要求你能高效地完成项目功能,但是现实中的项目种类繁多,需要从根本上掌握算法技术的精髓,入门水平不会被开发公司所接受,他们需要的是高手。
2.要有恒心,不断演练,举一反三。
学习算法的过程是枯燥的,成功的关键就在于能持之以恒。另外,注重实践,不要闭门造车。每一个语法,每一个知识点,都要反复用实例来演练,并做到举一反三,这样才会有深入的理解。