开通VIP,畅享免费电子书等14项超值服
首页
好书
留言交流
下载APP
联系客服
2022.07.26天津
那想成为编程大神,学会编程语言就够了?
编写机器语言和计算机算法说的是同一回事吗?
1.学习编程就是学编程语言吗?
很多同学在开始有意向学习编程的时候,很粗糙的认为学习编程就是学编程语言。以为学会了编程语言的句法、语法就会编程了。
这里有一个很重大的误解,就是简单地把编程语言等同于自然语言了。
大家都有学习外语的经历吧,回头想想,中小学学英语的时候,我们要做的事情不过就是:认字母,背单词,记语法——什么时态、语态、主格、宾格、定语从句、状语从句等等。
每当被动词变形、虚拟语气,和英语阅读时半篇儿不认识的单词搞得七荤八素的时候,就觉得:记住了足够多的单词和语法,自然就会用英语听说读写了。
至于听说读写的内容,我们并不用操心,反正我们每天中文也要说话、阅读、写作,学会了英语,不过就是用哇哩哇啦的发音和曲里拐弯的字母来代替声韵母、方块字做同样的事情罢了。
中文和英文(或者任何一种自然语言)最基础的部分都是用来应对日常生活的。我们每个人都对自己的日常生活十分熟悉,对于需要输入(听、读)输出(说、写)的内容早已掌握。而自然语言的形式又特别复杂,所以在学习外语的初中级阶段,大都会将绝大部分精力放在词汇语法上。
但是编程语言这种东西,它的作用不是用来日常聊天或者生活用语的。
虽然不管那种语言第一个程序都是“HelloWorld”,但那是运行环境因为自己能够正常实现功能而对世界发出的欢呼,并不是人与人之间打招呼。
那么多编程语言,无论学其中哪一种,我们都不是为了去问邻居“吃了吗”,跟超市导购讨价还价,或者撩哪个心仪的妹子/汉子……
算法和编程,又是怎样的关系呢?其实,很简单一句话就能给大家说明白,那就是:
所谓编程,就是实现算法的过程。我们学编程,实际是为了以编程语言为载体来学习算法!
2.算法是什么?
广义而言,做一件事情/解决一个问题的方法,就是算法。
所有的算法都体现为一个过程:这个过程由若干工序(或称为步骤)组成;这些步骤按照一定的流程来加工某些原料;最终产生某种结果。
那么总结一下,算法的几个重点要素就是:
作为广义算法的一个分支,计算机算法自然也要解决问题或者完成任务,并且也同样具备上述几个要素。
算法的要素——计算机算法的流程实则是一个有限的操作序列,具体操作通过计算机指令来实现。计算机算法的输入和输出则都是数据。
那么把上面几点综合起来,计算机算法就是(划重点):
一个有限的、通过计算机指令实现的可执行操作序列;
3.经典算法
人类要解决的问题无穷无尽,那得有多少种算法呀?
计算机领域的科研人员、开发者,在几十年的工作中,针对一些历史悠久,应用广泛,经常高频出现的问题,研发出了对应的精致、高效的算法。这些算法我们称为经典算法。
计算机的经典算算法也有多种,但其中重要且常用的也相对有限:
掌握了这些,就好像习武掌握了最基本的站桩、马步和套路,其他部分都是为了将“套路”落到实处,使其可以用来处理现实问题。