这两天有个机会代了两节程序设计课,有人问学程序设计,选择什么程序设计语言我呢。聊一点个人的体会,仅供参考。
计算机程序设计通俗的讲,就是把现实中的需求和问题,用计算机语言描述清楚,然后让计算机以它能够理解的方式来执行,计算机程序起着人与计算机之间翻译的作用。
程序设计语言的位置
从现实世界来讲,我们可以把一切归结到两个维度,状态和行为。状态是对一切对象的属性描述,行为是一切对象之间的交互或完成某功能的动作。描述对象的属性,对应到程序中就是“数据”,即如何表示数据和使用数据;交互和动作对应到程序中,就是如何组织程序指令(语句)分步骤的实现这种交互和功能。程序设计,从基础上讲就是做这两件事,如何表示数据和使用数据就是数据类型和变量定义;如何组织指令,就是条件、选择、循环等几种结构,搞懂一门计算机程序设计语言貌似很简单。
程序设计
单纯从程序设计语言的角度来看的话,所有的程序设计语言都是要遵循这个基本规律,互相之间的差别并不是太大。到现在为止,出现的程序设计语言没有上万种,也有几千种,为什么会出现有的程序设计语言很流行,有点程序设计语言几乎就没有人用的现象呢?
计算机技术发展到今天,程序设计语言已经不单单是一个“计算机语言”了,而是代表了一个非常复杂的技术体系。软件体系越来越庞大,完成一个系统,涉及到方方面面的问题,像科学计算,图像视频等多媒体处理,具有极高的专业性,专业人员会把其实现以“库”的方式供其他人使用。在互联网时代,软件系统或应用的开发又分为云端、移动端、PC端等,会需要很多的技术框架来支持,以保证软件功能的正确性和开发的效率,这些支持的技术框架基本也是由第三方提供。
技术生态
如此,决定一个程序设计语言是否流行,是否应用广泛,在于为其提供各种“库”和各种“技术框架”的团队是否多,也就是其技术生态是否够繁荣和丰富。比如,java在企业领域,python在大数据和人工智能领域,有着极其繁荣的技术生态,造就java和python的广泛应用。
像java程序设计语言,学院派学究气十足,一切都归结为类,各种框架实现虽然提高了开发效率,但对程序员来讲,既繁文缛节,又往往缺乏直接的控制,不够简洁直接,很多时候也造成不够灵活,但不影响其流行现状。
对于初学者,选择什么程序设计语言来学习,第一看自己未来的发展方向,第二看程序设计语言背后的技术体系是否完善。即便不把编程作为自己未来的职业发展方向,学习一门程序设计也是极有好处的,计算机编程既有严格的逻辑性和严谨性,同时又需要处理问题的灵活性和创造性,对一个人的思维方式和动手能力都有极好的培养。