Здравейте, Хабровчани!
В тази статия искам да споделя опита си като преподавател по програмиране на C++ в колежа на техническия университет. Това беше уникален опит в живота ми, който ме научи на много неща. Когато става въпрос за интересни факти от личното ми минало — този откъс от живота идва на ум сред първите.
Да започваме.
Първо малко за себе си.
През 2016 година завърших института с отличен диплом по специалността "Информационна сигурност на автоматизирани системи". По време на обучението си многократно успявах да реализирам потенциала си в написването на научни статии, участието в конкурси и проекти. През 2015 година станах победител на всеросийския конкурс за млади учени "УМНИК". През 2016 година, преди да завърша, вече бях нает в голяма организация в града на позицията "Специалист по информационна сигурност, криптография и шифриране".
Накратко, така беше. Може да се предположи, че по програмирането все пак имах представа.
И ето 2017 година. Аспирантура. Помолиха ме да преподавам C++ в колежа през семестъра, за което ми обещаха добри бонуси за облекчаване на натоварването на аспиранта и нищо повече.
Честно казано, искрено ми беше интересно да опитам себе си в това призвание.
Първият урок
Септември. Първата учебна седмица. Студентите дойдоха при мен. "Най-недисциплинираната група" — така ги наричаха.
23 души. "Програмисти".
Както се полага, за начало се представих. Разказах им сдържано съдържанието на частта "Първо малко за себе си"...
После започна страшното. На въпроса "Какво умеете?" студентите (нека ги наричаме така оттук нататък) отговориха, че умеят малко повече от нищо (а това означаваше, че някои от тях знаят как изглежда MS VS и могат да създадат проект "Hello world")… Програмисти. Последен курс…
След това те подробно, "в детайли" обясниха, че нищо не са научили и че изобщо са разочаровани от програмирането...
Почти всички дни до следващото занятие преминаха по следния начин:

... но ден преди него ми хрумна идеята да положа усилия за поправка на ситуацията в умовете и съзнанията на тази младеж. И тогава "Остап се развълнува".
Въведение в програмирането
На следващото занятие донесох... пъзел.
Да-да. Пъзел. «Как да опитомиш дракон». Правилата бяха прости. Групата беше разделена на 3 отбора. Всеки отбор събра своята част. Някои — гора, други — земя, третите — дракон в центъра на картината. Докато те събираха пъзела, аз обяснявах, че събирането на пъзел — това е също програмиране, че програмистите често използват чужд код, че в всеки проект има няколко различни екипа, функционалности, модули…
Постепенно към процеса се включиха и най-неактивните студенти.
Когато завърших с вкарването на идеята за програмирането през концепции на бизнеса, процесите и… пъзелите, дойде време да установим правилата на обучението.
На всяко занятие всеки студент трябваше да запише в тетрадката си по 10 термина от IT. Всякакви. Всеки имаше свои. Смисълът е, че аз взимах тетрадката на един студент, намирах сред всички термини максимално приложими и питах друг студент за тях. Когато другият студент казва «Не съм записал този термин», това не беше наказуемо (поради здравия смисъл), но този студент трябваше да запише «липсващите» термини (както и всички, които ги нямат) и да намери техните значения до следващия урок.
Така и постъпвахме. Всяко занятие започваше с енергичен случай от двама-трима студенти. Хората бяха ентусиазирани към този процес.
Темите на заниманията
Започвайки обучението, е много важно да се предостави на обучаемите добра литература. На мен ми се струва, че идеалното пособие беше книгата:

В свое време ми се наложи да я прочета в прегръдка с Microsoft Visual Studio. Тогава успях да разбера програмирането почти от нула. Идеалният вариант.
Влизаш скромно при студентите и казваш: «За да станете програмисти, просто трябва да прочетете и изпробвате всичко, което е в тази книга», и оставяш книгата на масата. Важно е — да не сбъркаш книгите в раницата си…
Пред всяка тема, разбира се, трябваше основателно да се подготвям. Четях същия Лафоре и още няколко интересни източника от мрежата.
Обяснявах почти от основите. И беше необходимо да се разбере, къде студентите имат пропуски в базовите си знания, като използвам дедуктивен метод.
Масиви -> Работа с паметта (конструктори) -> Ссылки -> Как работи паметта -> Носители -> Какво е физически носител -> Двоично представяне на данни…

Много силен краш-тест на знанията на основни факти за програмирането. Аз вече не съм програмист, а историк!
И ето, така, историческите противопоставяния продължават няколко поредни двойки. Един ден при нас влиза секретарка от катедрата и, виждайки групата, разширява очи, втренчва се и затваря вратата. Както ми съобщиха по-късно, тя била в шок, че ТАЗИ група седеше толкова тихо и внимателно ме слушаше… Тьхе, лесно.
Лабораторни работи
Първоначалните приложни сведения — първите "лаби". През семестъра групата предаде 10 лабораторни работи. В първите те правеха най-простички конзолни a+b, а в последните пишеха, макар и конзолни, но достатъчно интересни приложения, като например изчисляване на стойността на интеграл на произволно зададена функция по един от трите метода — горе-долу такива задачи имаше и на финалната атестация — курсовата работа.
Единственото, което беше обичайно за приемането не беше, че през цялото обучение в института се сблъсквах с факта, че да бъдеш умен и да умееш да предаваш отчетни работи — това не е едно и също. Това не ме устройваше.
— Хей, момчета, помислих си. Нека изградим "понятийни" отношения. Ако някой от вас смята, че програмирането му не е нужно — вратата е там. Уча ви безплатно. Искам да виждам тук само любопитни, не безразлични и ангажирани ентусиасти. Всички останали моля, не губете общото време — заявих в първия ден на приемането на лабораторни работи. След това 5 човека веднага спряха да посещават занятията. Това беше логично и очаквано. С другите беше възможно да се опитам да направя нещо разумно.
— … не ми е интересно да гледам как някой ви е направил работата, стига да я предадете. Можете да не сте програмисти, но хора трябва да бъдете на моите занятия. Трябва да.
Изглеждаше така:
случай отличникСяда при мен студент, за да предаде работата.
— Сам направи ли?
— Да.
— Какво е това?
— *отговаря правилно*.
*Питам още по няколко момента. Отговаря вярно*
— прието. Отлично.
случай бъбрива — Сам направи ли?
— Да.
— Какво е това?
— *отговаря Неправилно / не отговаря*.
*Питам още по няколко момента. Същият резултат*
— НЕ прието. НЕУД. Очаквам на втори опит.
случай добър — Сам направи ли?
— Да.
— Какво е това?
— *отговаря вярно, но несигурно, колебае се*.
*Питам още по няколко момента. Същият резултат*
— прието. Добре.
случай равенТричка — Сам направи ли?
— Не.
— Защо?
— Трудно е. Помагаше ми… *честно казва имената на отличника от групата*
— Разбирал ли?
— Да, почти всичко разбрах.
— Какво е това?
— *отговаря правилно*.
*Питам още по няколко въпроса. Отговаря повече-менее правилно, понякога напълно грешно, дори 50 на 50 верни и неверни*
— прието. Добре.
Няма смисъл да описвам останалите случаи. Да, ‘‘среднякът’’ може да е недоволен, че ‘‘трисетят’’ получава същата оценка, разчитайки на честността. Тогава всичко зависи от настроението. Или аз моля ‘‘средняка’’ да погледне на пода, нали ‘‘сега ще споделя малко мъдрост’’, а след това ще обясня основния подход, ще опиша какво има по-голяма ценност в живота и ще уточня, че ‘‘трисетят’’ е имал много по-трудно да мине от него, ‘‘среднякът’’, и т.н…
… или, както в свое време, моят преподавател, ще нарисувам малко зъбче в клетката на списанието до този недоволен и следващия път лично за него ще допълня лабораторната работа. Просто така. За да не ‘‘угасва’’ другите.

Оценки
Учебният процес, както и целият свят, буквално е потопен в ценови оценки.
Студентите също са хора, но ‘‘рамките’’, по мое мнение, трябваше да се ‘‘разклатят’’ и тук.
През семестъра на всички беше зададен бонусен проект. Да се регистрират на , да качат там пуст проект на C++, да направят 2 актуализации, да ги запишат и да ги качат. За тези действия бяха дадени 15 точки. Да-да, не 4, не 5, а 15. Троица разбраха. Психотипът на студента беше все така разбираем, но след това имаше друг случай.
Някак си веднъж нашият час беше преместен така, че стана последен, и дори през интервал. Но на него все пак дойдоха 15 души. Не ми се искаше да обяснявам нова тема в чест на такова геройство, тъй като по темите вече доста напреднахме + следващата тема не беше много проста за уморените мозъци (моите и на учениците). Тогава реших да говоря за философия.
— Обявявам атракция на невиждана щедрост. Всички ми казват каква оценка да му дам за днешния час.
Всички поискаха ‘‘пет’’.
— сметнете, вече има, — казах. Всички се зарадваха.
Тишина.
— А защо никой не пожела 7-ка или 10-ка?
Всички се изумено гледаха и започнаха безсрамно да се усмихват.
— А вие не бихте ли записали? В списанието?! — се чу глас от задната парта.
— Лесно! — казах, — обявявам блиц по термините, който отговори на 10 от моите въпроси — ще му дам 20 точки в списанието, без трик, който не отговори — на него -10 (минус десет).
„Екипът се оживи, започна полемика“, всички имаха честно спечелени оценки. Двама се записаха. С малки неточности те последователно отговориха на 10 въпроса за стека, опашката, конструктора, деструктора, боклукоизхвърлителя, инкапсулацията, полиморфизма, хеш-функциите…
На всеки в списанието беше нарисувано 20-ка… но важността на списанието и оценките падна в очите на всички. Сега съжалявам, че не попитах, не искат ли да „споделят“ оценката си с някого. Мисля, че биха споделили… От сега нататък всеки предаваше „лаба“ със знания и честност.
От този момент се появи още един тип предаване на лаба:
случай честноНеЕгоНоОнПытался — Сам направи ли?
— Не.
— Защо?
— Трудно е. Помагаше ми… *честно казва имената на отличника от групата*
— Разбирал ли?
— Сергей Николаевич, честно — нищо не разбирам, сам съм написал коментари до всяка редица — ами не е за мен, ще ставам тракторист
— Какво е това?
— *чета коментара до редицата*.
— …
— …
— С какво се различава Беларус МТЗ от Дон 500 и от К700?
— ??!.. Първият е колесен трактор от Минск, често използван в леките и средните селскостопански производства. Той има малки колела отпред и големи отзад. Дон 500 е основно комбайн, а К-700 „Кировец“ — съветски колесен трактор с общо предназначение с повишена проходимост, тягов клас 5.
— прието. Добре (!!!).
— Благодаря, Сергей Николаевич!!!
В родината ми разговорът за трактор е почти като тук за SOLID.
Гений
В групата ми имаше Гений. Студент, който на първия час закъсня значително и не се включи в събирането на пъзела с всички останали. Тогава помолих него да направи това, което всички планираха за следващия урок — да напише на лист хартия за себе си, какви хобита има, какво го интересува. Резултатът при „Гения“ беше 2-3 реда: нещо от типа на „разбирам суетността на битието“…
… О, Боже, в групата ми в едно лице съчетаваха вторите Лао Цзъ и Кодзима …

На моя изненада, в първите два часа той наистина блестящо отговаряше на въпросите относно термините, обаче ефектът не продължи дълго. „Гений“ спря да посещава занятия и следващият път се появи само за предаването на първата лабораторна работа, която успешно не предаде по обективни причини. След това, заради отсъствията, му се натрупаха задължения, които, както той смяташе, аз бях просто длъжен да му ги зачетем, така да се каже, „по-братски“.
Неявка на занятия + завышенное ЧСВ противоречило основным принципам посещения моих курсов. У „Гения“ было только два варианта — реабилитироваться (ожидаемый путь) или забить на занятия и надеяться на „тройку“, выставленную деканатом, чтобы избавиться от бездельника.
Ну это же „Гений“… тут же надо поступить „гениально“. Этот молодой человек не нашел ничего лучше, как написать в общем диалоге в ВК (где был я и все студенты этой группы) гневный пост с оскорблениями в мой адрес.
Мда… Разочарование.
Больше всего поразило, что перед завершением наказательных действий со стороны руководства колледжа он решил извиниться передо мной. За что? — мне искренне непонятно. На тот момент я уже давно стал независимым от критики, тем более такой, откровенно, глупой. Моя личность не пострадала, а вот процессы — это процессы, как преподаватель я не мог не сообщить об этом. Как оказалось, по мере учебы на него накопилось столько жалоб, что этот случай стал последним. Его отчислили. С последнего курса ПТУ колледжа.
Возможно, он уже давно наблюдает за мной в прицел снайперской винтовки, но, если честно, мне все равно.
Эх, гениальность, бессердечная ты…
Епилог
Лично для меня опыт преподавания стал одним из самых поучительных. Он помог мне закрепить фундаментальные знания по программированию после учебы в институте. Я почувствовал уверенность в выбранной специальности (спектра доступных специальностей). Особенно важно то, что „самая непослушная группа“ прониклась ко мне уважением и дружелюбием — это стоит многого. Я смог найти путь к их внутренним новаторам, постарался привить реальность, а не эти шаблонные приоритеты. Жаль, что мы не дошли до „пазлов“ в кодировании — когда каждый должен был сделать часть кода, и, соединив все части, мы бы получили большую рабочую программу…
Надеюсь, когда-нибудь каждый из них почувствует это… а пока что ниже собраны скрины с отзывами нескольких студентов спустя два года.

Делать выводы о успешности карьеры программиста у кого-либо из них пока рано, ведь сейчас большая часть этой группы обучается в ВУЗе. Время покажет.
Надеюсь, статья была полезной. Спасибо за внимание!
Творчески успехи и положително настроение, колеги!
Източник: habr.com
