- This first segment is devoted to an important question: "What is programming?" - Programming is craft, art, engineering, and maybe even science. - But one way we can approach this question is to ask: what does a programmer do? - Someone who is programming writes programs by putting together words in a programming language, which begs the questions: "What is a program, and what is a programming language?" - A program is a series of instructions for a computer to carry out. They're written down in a way that the computer can execute them automatically, using a programming language. - Depending on the language and the computer, the instructions could have all sorts of effects, like doing calculations, displaying patterns on a screen, searching for information on the web, moving a robot arm, or transferring money between bank accounts. - So a program specifies some behavior or a series of actions to carry out, and the computer follows a program (we call this 'executing' it). - Does that give us an answer to our question "What is programming?" - Here's one definition: - Programming is a process of crafting programs, which are lists of instructions for a computer to carry out. - So what do we need to do to learn how to program? - We'll need to learn the language of the computer to make sure we can write down our instructions in a way that the computer can understand, and then we'll need to learn about processes and procedures. - A process is just a sequence of events or actions, and a procedure is a more general word than "program" for a series of instructions to be carried out (a procedure might be carried out by a person or an institution, not just by a computer). - So a procedure is a recipe for a process: if you follow procedure X, that will create process Y. And processes are designed to result in certain outcomes. - For example, a recipe is a kind of procedure; if you follow it you will carry out a process that might result in something delicious you can eat. - Similarly, a program is a kind of procedure, if you tell a computer to follow it, you can get that computer to engage in a process, and that process can achieve all sorts of things. - As you get more and more comfortable with programming, you'll be learning the secrets of a programming language, but that's only half of the goal: once you learn how to communicate with the computer you'll also need to learn what to say, and in particular, how to create procedures that result in useful processes. - For this reason, learning to program has a lot in common with learning how to design a board game or learning how to manage a bureaucracy: in all three pursuits, a deep understanding of how procedures shape processes and how processes can be manipulated to achieve desired outcomes is critical. - For the same reason, programming has aspects of art, craft, design, engineering, and science: we can approach the job of creating procedures from many different angles, but it's fundamentally a creative process that's got some tricky constraints, like architecture. - So back to our original question: "What is programming?" - Programming is crafting procedures for computers, using a programming language, with the goal of creating processes that achieve particular results. - Now that you've thought a bit about procedures, processes, and programs, keep them in mind as you dive into your first steps of programming practice. - You're going to be learning a few things at once, and it helps to keep them straight!