Моя точка зрения

Я уже без малого 40 лет занимаюсь обучением программированию. До 2019 года, работал в Хабаровске, есть такой город на реке Амур, далеко на востоке России. Сейчас делаю тоже самое, но в Казани. Тоже хорошо известный город но уже на Волге. Опыт имею, более чем значительный и не только учительский, но и программисткий. Наверное вследствии опыта меня коробит, когда я слышу про программистов на Питоне или программистов пишущих на Си. Мол требуются такие. Для меня это примерно, как нужен плотник, работающий топором и рубанком или дворник работающий метлой. Вообще-то программист это математик, но только математик с несколько специфическими знаниями, только и всего.

В 70-х и 80-х годах все программисты были математиками, наверное поэтому предмет программирования называли прикладной математикой. В то время технологический подход к программированию только начал формироваться, и главной доблестью специалиста считалось умение грамотно написать алгоритм. С тех пор утекло много воды, подход к предмету сильно изменился. Появилось достаточно много людей, совершенно серьезно полагающих, что все алгоритмы уже написаны, и единственно, что требуется современному программисту - это владение технологией сборки программы из уже готовых процедур, функций, объектов и т.д. В какой-то степени это справедливо. Действительно, сделано много. Сегодня можно быть вполне успешным программистом, умеющим решать полезные задачи, за которые хорошо платят, но эти специалисты могут быть очень плохими математиками. Сегодня быть успешным программистом и быть хорошим математиком, означает разные вещи.

Может быть это и правильно, но давайте подумаем вот о чем. Технологию могут освоить многие. И технологии программирования для того собственно и разрабатывались, чтобы программирование стало массовой профессией, чтобы стало возможно промышленное программирование. Разработка алгоритмов – задача более тонкая. Здесь, во-первых, требуются более глубокие знания, а во-вторых, в этом деле есть серьезный элемент творчества. И лично я из своей и программисткой, и педагогической практики заметил, что человек, владеющий уверенными навыками алгоритмизации, способен самостоятельно освоить любую технологию. А вот обратное - неверно. Хорошее понимание технологических моментов ничего не дает для развития умений алгоритмизации.

Поэтому ключевой пункт моей школы – это алгоритмизация и хорошее знание математики. Второе основание – многоязычие. Сегодня в объявлениях часто можно встретить – требует программист, пишущий на Питоне, Си или каком-либо ином языке. Деление программистов по признаку языка - самое примитивное деление, какое только можно придумать. Не язык составляет суть программиста. Конечно, совсем уйти от языковой проблемы нельзя и мое мнение такое - настоящий специалист должен свободно владеть двумя, тремя языками и уметь быстро осваивать новый язык или систему программирования. Более того, языковое образование, безусловно, не должно ограничиваться императивными языками. Необходимо быть знакомым со всеми основными идеями в области построения языков программирования.

Третье основание моего метода - опора на прикладные задачи. Весь курс – это последовательность задач от самых простых до профессиональных. Поэтому, я имею смелость утверждать, что могу подготовить специалиста в области программирования с нулевого уровня.

Очень важен вопрос, для кого возможно стать программистом. Здесь, я думаю, дело обстоит следующим образом. В любой профессии есть уровень творчества и уровень технаря, хорошо решающего точно поставленную задачу. Творчеству вас никто и никогда не обучит. Думаю, мы сегодня очень плохо понимаем, что такое творчество,  тем более, как ему учить. А вот научить техническим навыкам решения задач, даже сложных, вполне возможно, и я уверен, что это возможно если не для всех, то для очень многих. Никакого особенного таланта для этого не нужно. А если вы имеете способности к предмету, то вполне возможен и выход на уровень творчества.

А что для этого необходимо? Очень много терпения и очень много личного труда. Если вы на это готовы, то я смогу вам помочь. Сейчас я работаю со всеми желающими в режиме дистанционного обучения. В общем, пишите если есть желание.

С уважением, Виталий Валерьевич Потопахин. Учитель программирования. Email: lotos-khv@yandex.ru

Свободно распространяемые компиляторы используемые в моей школе

Си (CodeBlocks)

Компонентный Паскаль (BlackBox)

Питон (Python 2.7.3)

Ссылка на подготовительный курс графики на языке Компонентный Паскаль