最近一直在培养孩子的计算机算法的能力,也发了一些算法的视频,因此也收到这么多朋友的私信。总结起来,有很多问题可以归类于一种问题,那就是有很多初学者,或者刚刚进入到计算机编程领域、软件开发新手对一些概念还是搞不清楚,不能够正确理解计算机语言、计算机编程、计算机算法及软件开发之间的联系和区别。
我们可以说计算机语言、计算机编程、计算机算法及软件开发都属于软件范畴,最终的目的是开发出一个(套、种)计算机软件,达到某些功能从而满足人们的一定需求。在这个整个的开发过程中,计算机语言、计算机编程、计算机算法及软件开发就有了不同的意义和作用。
计算机语言计算机语言一般是指用来编程、软件开发的计算机高级语言,是一种编程语法和标准的集合。比如我们知道的常用计算机语言有java、c、c++、python、javascript等等。这些高级语言也是有着许多共同点及不同点。共同点就是都有着计算机语言的共同特点,比如变量定义、数组、字符串、循环结构、选择结构、分支结构、函数等等。不同点主要是语法与标准库的不同,什么是语法呢?语法就是用该语言进行编程的规范,比如:java、c++语言等,每条语句以“;”结束,而python语言是以回车作为一条语句的结束。还比如,不同的语言,if分支写法就有所不同,还有定义函数写法也可能有所不同等等。而标准库就是基本语言功能的延伸。每种语言都有自己的标准库,从而让该语言的功能丰富多彩。这些标准库都是各不相同的,这也是各种语言不同的最大原因。
计算机编程计算机编程是指用计算机语言按照语法要求、语言功能来编写能够执行的程序。能够很好地编程是需要对语言的语法及标准库要运用熟练才行。编程与语言的关系就明确了,编程必须用语言来编写,就好比写作,你可以用中文写作,也可以用英文或其他语言写作,总之,你要先选择一门语言,才能进行写作。编程也是一样,要先选择一门计算机语言,才能进行编程。当然,选择什么语言,需要看你熟悉什么语言,要完成哪些编程工作而进行选择。
计算机编程计算机算法是一种思维,是一种利用计算机或者说利用计算机程序来解决问题的思维方法。它首先是独立于计算机语言的。即使没有计算机语言,也是存在计算机算法的。如果真的没有计算机语言,也可以为了实现计算机算法,创造一种计算机语言。所以说计算机算法与计算机语言没有明确的先后关系。算法的实现是需要依靠计算机语言,也需要依靠编程来实现。编程不等于算法,编程是实现算法的手段。当然,如果你对语言、编程很熟练,这有助于你设计算法,因为你的算法最终需要靠编程来实现。如果你一点都不会编程,你想为某些为题找出算法,那就非常困难了。因为你都不知道如何实现,你怎么可能有算法呢?当然,如果要有很好的算法能力,仅仅会编程不远远不够的,还要学习更多的知道,比如数据结构、成熟的算法等等。编程仅仅是实现算法的基础,真正好的算法是你思维能力的体现。
算法思维计算机算法软件开发更强调的是一种开发的过程,包括开发的管理。一种软件开发,首先你需要会熟悉计算机语言,甚至掌握多种计算机语言,其次需要你具有编程的能力。再次还需要你有控制开发过程、开发成本、开发进度等的能力。软件开发一般是团队型开发,即使你只是开发团队中的一员,你也需要对整个开发过程有所了解,不能因为你个人的失误影响整个软件开发的过程。软件开发也不仅仅是编程的过程,软件开发还包括需求调研、需求分析、软件设计、数据库设计、软件运维等等,而编程仅仅是其中一个子过程。
软件开发过程综上所术,我们能够看出,计算机语言是实现软件开发的基础,计算机编程是算法实现及软件开发的手段,计算机算法是解决问题的思维,软件开发是我们的最终目的,同时软件开发也是计算机语言、编程、算法综合运用的过程。
说到这里,再说几句题外话。有的同学问,没学过算法,可以当程序员吗?可以进行软件开发吗?答案是肯定的。没学过算法,也是可以编程的,可以进行软件开发。原因之一是学习编程的过程就学会了基本的算法,可以应付很多软件的开发。二是因为在开发过程中,如果真的需要解决一些算法难题,这时会有算门的算法人员来解决这个难题的,不需要普通的程序人员解决。
通过这篇文章,你对计算机语言、编程、算法、软件开发的区别与联系清楚了吗?如果还有什么疑问,欢迎在评论区留言。