Java编程那些事儿2——程序设计是什么?
作者:陈跃峰
出自:http://blog.csdn.net/mailbomb
程序设计,俗称编程,是一个比较专业的概念。初学者,甚至一部分开发人员,都不能很简单的解释这个概念,所以使初学者觉得程序设计是一件很有科技含量,或者是很高深的学科,其实这些都是误解。那么程序设计到底是什么呢?
程序,其实就是把需要做的事情用程序语言描述出来。类似如作家,就是把自己头脑中的创意用文字描述出来。所以学习程序,主要就是三个问题:做什么、怎么做和如何描述,具体如下:
1.         做什么
做什么就是程序需要实现的功能。
2.         怎么做
怎么做就是如何实现程序的功能,在编程中,称为逻辑,其实就是实现的步骤。
3.         如何描述
就是把怎么做用程序语言的格式描述出来。
所以,对于有经验的程序设计人员来说,学习新的程序设计语言的速度会比较快,就是因为第1和第2个问题基本解决了,只需要学习第3个问题即可了。
对于“做什么”的问题,可能初学者觉得会比较简单,其实在大型项目开发,例如ERP,企业都不能很详细的说明需要实现具体的功能,这就需要有专门的人员去发掘具体的功能,这个用程序的术语叫做需求分析。举个例子吧,例如某个人要找个女朋友,如果你大概去问他,他会说,找个中等的就可以了,但是这个还不是具体的需求,你可能需要问一下,要求女朋友的年龄是多少,身高是多少等等具体的问题。所以说,搞清楚“做什么”也不是简单的事情,需要专门的人员从事该工作。
对于“怎么做”的问题,是初学者,甚至很有经验的开发人员都头疼的事情,这个称作程序逻辑。因为实际的功能描述和程序设计语言之间不能直接转换,就像作家需要组织自己的思路和语言一样,程序设计人员也需要进行转换,而且现实世界和程序世界之间存在一定的差异,所以对于初学者来说,这是一个非常痛苦的过程,也是开始学习时最大的障碍。由于计算机自身的特点,“怎么做”的问题其实就是数据和操作的问题,某个顶级大师曾经说过:“程序=数据结构+算法”,把这个问题描述的简单准确。那么“怎么做”的问题,就变成了持有那些数据,以及如何操作这些数据的问题。先简单的介绍这么多,大家仔细体会吧。
对于“如何描述”的问题,是学习程序最容易,也是最枯燥的问题。其实就是学“透”一套格式,并且深刻理解语言的特点。学程序语言,就像学汉语差不多,需要学习字怎么写,学习语法结构等,只是不需要像汉语这样学那么多年,但是学好一个语言还是要耐得住寂寞。语法的学习需要细致,只有深刻领悟了语法的格式才能够熟练使用该语言。
前面介绍的是程序的概念,那么为什么叫程序设计,其实这个设计和现实中的设计一样。例如你自己盖个小棚子,只需要简单的规划即可,也就是编程中的小程序,而如果需要建造一栋大楼,肯定需要进行设计吧,程序也是这样。所以把编程叫做程序设计了。

Java编程那些事儿2——程序设计是什么?相关推荐

  1. Java编程那些事儿69——抽象类和接口(二)

    Java编程那些事儿69--抽象类和接口(二) 陈跃峰 出自:http://blog.csdn.net/mailbomb 8.9.2 接口 接口(Interface)是一种复合数据类型. 至此,Jav ...

  2. Java编程那些事儿11——JDK的获得、安装和配置

    Java编程那些事儿11--JDK的安装.配置和使用 作者:陈跃峰 出自: http://blog.csdn.net/mailbomb 第二章 建立开发环境 "工欲善其事,必先利其器&quo ...

  3. Java编程那些事儿68——抽象类和接口(一)

    Java编程那些事儿68--抽象类和接口(一) 陈跃峰 出自:http://blog.csdn.net/mailbomb 8.9  抽象类和接口 在实际的项目中,整个项目的代码一般可以分为结构代码和逻 ...

  4. Java编程那些事儿102——网络编程技术1

    Java编程那些事儿102--网络编程技术1 陈跃峰 出自:http://blog.csdn.net/mailbomb 13.2 网络编程技术 前面介绍了网络编程的相关基础知识,初步建立了网络编程的概 ...

  5. Java编程那些事儿——文件操作之写文件

    Java编程那些事儿--文件操作之写文件 Java, Java培训, Java基础, Java学习, Java教程 11.3.1.4 写文件 如前所述,将程序内部的数据输出到程序外部的数据源,应该使用 ...

  6. Java编程那些事儿78——时间和日期处理

    Java编程那些事儿78--时间和日期处理 陈跃峰 出自:http://blog.csdn.net/mailbomb 9.6 java.util包 java.util包是Java语言提供的工具类包,该 ...

  7. Java编程那些事儿70——抽象类和接口(三)

    Java编程那些事儿70--抽象类和接口(三) 陈跃峰 出自:http://blog.csdn.net/mailbomb 8.9.3 抽象类和接口的比较 抽象类和接口都是进行面向对象设计时专用的设计结 ...

  8. Java编程那些事儿74——java.lang包介绍1

    Java编程那些事儿74--java.lang包介绍1 陈跃峰 出自:http://blog.csdn.net/mailbomb 9.4 JDK API包名综述 在整个JDK API中,大约包含1.2 ...

  9. Java编程那些事儿103——网络编程技术2

    Java编程那些事儿103--网络编程技术2 陈跃峰 出自:http://blog.csdn.net/mailbomb 13.2.3 TCP编程 按照前面的介绍,网络通讯的方式有TCP和UDP两种,其 ...

  10. Java编程那些事儿104——网络编程技术3

    Java编程那些事儿104--网络编程技术3 陈跃峰 出自:http://blog.csdn.net/mailbomb 为了一步一步的掌握网络编程,下面再研究网络编程中的两个基本问题,通过解决这两个问 ...

最新文章

  1. 2021-2027年中国一氧化氮行业市场研究及前瞻分析报告
  2. WPF TabControl Unload俩次的解决方案
  3. mate 7 可以安装linux,centos7安装mate
  4. python 多维 条件获取
  5. JUC-ReadWriteLock
  6. java不抛出方法异常,java – 重写方法不会抛出异常
  7. boost::hof::apply_eval用法的测试程序
  8. Dotnet中Span, Memory和ReadOnlySequence之浅见
  9. 拉屎能赚钱?在马桶上月入过万?原来卫生间里还有这么多隐藏福利,超模君都惊了……
  10. gprs 睡眠模式_GPRS的完整形式是什么?
  11. 作者:司光亚(1967-),男,国防大学信息作战与指挥训练教研部教授,主要研究方向为战争复杂系统建模仿真。...
  12. php函数之----get_magic_quotes_gpc
  13. 安卓数据库的使用方式
  14. curl有时获取不到数据 什么原因导致_缓存击穿导致 golang 组件死锁的问题分享...
  15. Python编程利用单纯形法和scipy库对比分析求解线性规划最大值和最优解问题
  16. 恒定湿热试验条件及标准-环境试验中的湿热试验报告
  17. 清华陈丹琦:如何让「大模型」变小
  18. 测试管理工具-禅道---软件缺陷和软件缺陷种类
  19. css做三角形横线加小三角,CSS创建三角形(小三角)的几种方法
  20. ROS三种通信方式之参数通信

热门文章

  1. uni-app打包上架vivo应用市场踩坑
  2. 构造函数创造对象--创建四大天王的对象
  3. php 字符串加密解密
  4. 计算机组成原理期末知识点复习及考点总结
  5. 进军NFT,第三代公链GGC与NFT3.0技术平台BOBO、OKEx NFT深度联合
  6. mysql服务starting_MySQl服务无法启动(Starting MySQL.The server quit withou)
  7. 搭建 PHP 开发环境(手把手图文教程)
  8. 如何在 WordPress 中创建登录页面
  9. 《阿特拉斯耸耸肩》节选:互害与甩锅的反敏捷组织
  10. 关于maven-jdocbook-plugin插件org.jboss.highlight.XhtmlRendererFactory does not indentify an extern的一个小问题