编程的直接产物是代码。编程的含义很简单,就是用代码的方式告诉计算机它要做什么。但是编程这件事情并不简单。因为计算机并不是人类,它本身只能做一些如加法、减法这类容易的事。要让只会做加法、减法的计算机完成复杂的、高难度的任务本身就很有挑战性,这就需要我们当翻译。所以编程的挑战性就在于我们要完成理解、解答和翻译的工作。
我们通过编程解决一个问题时,并不是直接把这个问题“扔”给计算机,而是自己先理解这个问题,思考这个问题的解决方法,再将解决方法翻译成代码,最后让计算机执行代码。所以编程的难点不在于代码本身,而在于清晰地思考问题的解决方法。这也是人类最核心的能力之一。
一般来说,编程需要解决某个具体的问题。编程的过程通常分为如下4个阶段。
■ 分析:我们要解决的问题是什么?用户需要什么?
■ 设计:我们如何解决这个问题?整体的系统结构应该是什么样的?应该包括哪些功能模块?这些模块间如何协同交互?系统如何与用户交互?
■ 编程:将设计方案用代码的形式进行表达,代码编写要满足包括时间、成本在内的约束条件,确保代码正确且可维护。
■ 测试:保证软件能正常、可靠地工作。
这4个阶段并不是完全独立或串行的,有时在测试阶段发现的问题需要重新分析,需要我们重新设计并优化代码。编程是一个不断试错、不断迭代的过程。