Image the Future of Computers
Over the past several decades, computer technology has advanced greatly. Computers are in use around the world, performing services for practically every person. Most people are computer users. Their actions fit within the bounds of programs installed by others. Parents, and grandparents, should think about whether their youngsters should continue to be users or creators of the future. The difference is whether they can program a computer or simply use one.
From the earliest days of childhood now, children can use computers. They know that these machines are capable of entertaining them. They know about instant communications made possible with computers. They may use digital music players, watch DVD movies, play with electronic keyboards and other sophisticated toys. Children today are very good computer users, often more capable, and certainly more at ease, than their parents. Their level of skill as users will serve them well since they are destined to work with computers for many decades.
Many children today will become more than simple users of computers. They will also be creators. Computer programming is the practice of writing instructions for computers to follow. Programmers direct the computers’ work through the applications they build. People use these applications exactly as the programmer has intended. While most children will be the computer users of the future, some will be creators.
As everyone knows, computers have become ever more complex as technology has advanced. Modern computers are faster and lighter than ever before. They hold many times more data. They are completely interconnected. This has all been possible through the advancement of integrated circuit design which has also made computers far less expensive. Inexpensive home computers today, worth perhaps $500, are more capable than those that cost more than $50,000 in 1972.
Paradoxically, the more complex computers of today have become easier to use than older ones. Screen displays are bright and colorful. Operating systems have standardized functionality. Various attached components, such as cameras, sound generators and storage disks, are easily controlled through available utilities. Computer programming is now possible with the use of integrated development environments which offer productivity aids for those who wish to create new computer applications.
A computer programmer needs to be able to think logically. This is a skill that many children have. If a child can follow a cooking recipe, then can very likely program a computer. Consider the following computer instructions:
Display a message on the screen asking for a name
Accept a name typed into a name field
Check to see if the name has ever been entered before
Save new names in the list of known names
Save old names in the list of returning users
These instructions are known as “pseudo code”. They represent instructions which can be performed by a computer. Note that they are not actual computer programming language commands. Given these instructions, however, a programmer can write the statements required in a particular computer language to accomplish the desired effect. This is done by iterative refinement. To illustrate, here is one of the above pseudo code instructions followed by the actual computer programming language statements.
“Check to see if the name has ever been entered before”
if (in_list(known_users, Name) == TRUE)
The “if” command is very common in most computer programming languages. It is the basis of most computer actions. In this example, an entered “Name” is checked to see if it exists in a list of previously entered names. If the name was seen before, the “in_list” function would return “TRUE”. If the name had never been seen before, the function would return “FALSE”. If the comparison is TRUE, a series of additional computer instructions is performed. If FALSE, alternate computer instructions are performed. This is similar to how people organize their days, in a simple case.
If it is sunny
then go to the beach
else go to the library
The above is an if statement that would be executed by a person. Children can certainly understand such concepts. If so, they can become computer programmers. As a computer programmer, a child can begin to make the computer do custom operations for them. They can specify how things can be done in applications. Starting with elementary concepts, children can write applications that are simple but which serve to introduce basic logical processes. In time, additional functions are learned and used in increasingly complicated applications. With experience, the child can become an accomplished computer programmer, capable of developing almost any application.
Computer programming has become an easier skill to learn. Many introductory textbooks are available. Development environments are available which are inexpensive, or even free. Easy to learn languages are available. Productive development tools are available. Programmers can choose to write standalone applications for desktop computers and laptops. They can write for Internet web servers or even for mobile devices. The concepts learned for each platform are useful when programming on the others. By starting to learn the basics of computer programming, children can increase their abilities and they may even become professional developers or successful entrepreneurs. The key is to become a computer creator, not just a user.
The main consideration for a child learning to program should be the choice of development language. While there are many to choose from, many of the concepts are the same. This means that knowledge gained in one language is quite transferable to others. A number of languages, such as BASIC, are fairly outdated, or even obsolete. This should not be a particular worry. In fact, given the right conditions, someone learning a very antiquated computer programming language will still gain valuable skills which will be useful for modern languages. So which to choose? If the child has a family member, or good friend, who is proficient at one language, that might be a good choice. The child would be able to get help and encouragement. Without such a connection, the choice is quite open. PHP or C are good choices due to their widespread use. Given that most of the current web sites use, (or can use), PHP, that language is a good logical choice.