"I am deeply indebted to Mr. Renat Fatkhullin, the CEO of MetaQuotes Software Corp., for his confidence, professional support and every possible assistance. I'm also grateful to the company's employees, Stanislav Starikov and Rashid Umarov, for their valuable advice and help in writing this book."
It is a sort of difficulty to start writing a textbook on programming for beginners, because the area of knowledge under consideration involves some new concepts that are not based on anything previously known or usual.
Generally speaking, a problem of this kind may occur in any other field of knowledge. For example, a point is known in mathematics as an infinitesimal circle, whereas the circle itself is defined as a set of points ordered in a certain manner. As is easy to see, these terms are defined through each other. At the same time, this "inadvertence" did not become a stumbling block for mathematics. Both circles and points go well together, as well as with other terms adopted in mathematics. Moreover, everybody understands by insight what a point is and what a circle is.
It is easy to find out that the vast majority of ordinary terms have indeterminate boundaries. Some of those boundaries are so fuzzy that they cast some doubt on the existence of the very object or phenomenon defined by the term. However, the nature of man is that this strange (in terms of normal logic) situation does not come between a man and his existence and fruitful activities. After a term has been used for a certain amount of time, it takes on its complete sense for us. It is difficult to answer the question of how and why it happens this way. But, it does. We only know that multiple references to a term plays an important role in the remarkable process of learning terms.
The following tasks were set in this present work:
•Unfolding the sense of new terms using well-known analogies.
•Making the meaning of each term intuitively clear when it occurs for the first time.
•Giving readers enough information to characterize programs and programming.
For this purpose, the book contains many examples and figures. The text includes cross-references that allow the reader to get information on connected topics.
Here are a few words about the presentation of materials. Some textbooks on programming invite their readers on the very first pages to print "Hello, world!" using a simple program. Their authors think that as soon as their readers start learning programming, they should refer to program texts and gradually get used to how the programs may look, which will later facilitate their learning. However, the result is that the reader has to deal with several unknown terms at the same time and has to just guess the content and properties of some lines in the program. This may result in misconceptions and vacancies in the reader's knowledge.
As I see it, it would be more effective to use a method in which the reader goes to the next section in the textbook only after he or she has had a thorough grasp of the previous materials. In the framework of this method, the first program will be offered to the reader only after he or she has mastered all necessary terms and gained some insight into the basic principles of coding. This is the method this textbook is based on.
To master knowledge given in the book, the reader has to be a PC user and to have some experience in working with MetaTrader 4 produced by MetaQuotes Software Corp.