From what language to study programming?
Talked to the school student on a subject recently: what programming language he is going to learn. I will be, speaks, to study of PHP or C ++ . I ask: and who to you advised them to study? - Yes someone from friends...
Well on it to tell? If to begin with these languages (generally, it is difficult for PHP to call a programming language in classical sense), then I strongly doubt results. Especially as advised, most likely, same “ gramoty “ as well as to what I talked.
So the sense in such article is. I provide short characteristics of those languages which I taught for a number of years.
BASIC - language the simplest for initial acquaintance. It is mastered not only by those at whom the mathematical thinking is well developed. I taught it as an initial programming language. As in it there is no need to describe types of variables, it is more similar to usual mathematical decisions. Is suitable for the Olympic Games to city level, but not above.
PASCAL - demands a certain mathematical thinking, but quite is suitable for initial studying. Now there is a lot of literature, available to school students. Olympiad programming usually happens on it. It is language in which I conduct teaching.
SI - language of professional programming. For initial studying it is not recommended. It can be studied after thorough acquaintance to Pascal. But it is necessary only for the level of the international Olympic Games, well can have advantages to some classes of tasks at the level of the Russian. With literature on it, available to school students, I am not familiar.
Delphi - in console option is Pascal, can be used at the Olympic Games. In object - the focused option it is not used at the Olympic Games. For elementary education it is not recommended, also as well as other OOP programming languages. I give couple of classes in Delphi at the end of a course, but only for that my pupils had no inferiority complex at communication with “ raspaltsovanny “ upstarts.
The assembler - actually, is more correct to tell to assemblers since for each type of processors the assembler. For initial studying categorically it is not recommended. As the first language only the electronics engineer in details familiar with operation of digital equipment can master it. On the Internet I met offers to begin with the assembler, but it no more than a mockery.
General comments: programming languages differ with syntax, i.e. way of expression of thought of the programmer. Main thing not syntax, but algorithmic thinking. If it is absent, then there is no skill of programming also. If the algorithmic thinking, then transition from one programming language to another not so is developed and it is problematic. At many schools teaching is conducted on BASIC - e just because teachers do not know other languages, and those who know, work as programmers and (like teaching activity) do not fool about.
Conclusion : it is necessary to begin studying with TurboBASIC or TurboPASCAL . I emphasize that with a turbo - options. To begin studying after acquaintance to algebra. As option studying of programming before acquaintance to algebra is admissible, but then on the example of the BASIC programming language to enter algebraic concepts. But it in case there is an individual training.
My practice shows that early training is, as a rule, inefficient. However, children meet exclusive (high) motivation for whom the general recommendations do not work. But it is very rare. If the child has yavnovyrazhenny mathematical abilities, it is possible to begin with PASCALYA if is not present, then it is better to begin with BASICa. If there is a desire to get acquainted with the user aspect (without serious understanding of syntax), then it is possible to get acquainted with EXEL (without macroes).
All and to everyone do not need programming in general. For the general education it is enough to know the computer at the level of the user. Studying of programming languages is the serious work demanding big concentration of attention therefore first of all it is necessary to know accurately what you want. And the most important that is wanted by the child. Or it is a great interest - and then serious approach, or this superficial desire is required... In case of deep desire it is necessary to be adjusted on serious work and not for one year.
Once again I will repeat, not light a wedge agreed on programming. Life is various, and it is quite possible that your child will find himself in absolutely other area. To be engaged in programming - means to doom itself to an eternal apprenticeship. Now those programming languages which we learned at university (30 years ago) can be found, as a rule, in the section history of computer facilities. At the same time programming - process creative and is interesting to be engaged in it (me yes sir). I wish success in development of this subject. From simple to difficult.