Сравнительно небольшая статья будет. Хочу упомянуть про видимость переменных в коде. Стоит отнестись внимательно к этой теме, чтобы потом не думать "почему так-то?!". Начнем с простого примера. Представим себе школу с классами от первого до одиннадцатого и возьмем отдельно взятый класс начальной школы. В классе у нас будут дети, которые разбиты учителем на группы с индивидуально-групповыми заданиями. Все при деле, все заняты. Итак, ученики в своей группе точно знают, чем занимаются другие дети, работающие над заданием вместе с ними. При этом чем заняты другие группы в их классе они не в курсе - там же другие процессы решения задач происходят. А вот кто знает про всех - это классный руководитель. Именно он раздаёт задания и контролирует их выполнение. Вроде просто. Идем дальше. В параллели пусть будет три класса, каждый из которых работает по аналогичной учебной программе, а всего в начальной школе 12 классов. Классный руководитель нашего класса не знает, что там и как в соседнем - это