Продолжаем знакомство с преподавателями университета, к кому ходят на пары не по принуждению, а потому что интересно. Знакомьтесь: Ляпота Виталий Николаевич — преподаватель и практикующий программист в одном лице. В этом интервью мы спросили у Виталия Николаевича, через что он прошёл, чтобы стать программистом.

 

Сложно найти студента ПИ-шника (кафедры программной инженерии, ХНУРЭ), который не знает Ляпоту Виталия Николаевича. Но все ли знают какой путь необходимо пройти, чтобы почувствовать нужность своей работы?   

 

 

— Как вы поняли, что хотите стать преподавателем?

— На самом деле я ещё со школы подумывал стать учителем. Просто ко мне обращались одноклассники за помощью, а у меня хорошо выходило объяснять им материал. Они удивлялись потом, что, оказывается, на самом деле всё так просто. А я начал подмечать за собой, что у меня получается неплохо рассказывать, казалось бы, сложные вещи, делая их на самом деле простыми. И вот после того, как я окончил университет, мне предложили пойти в аспирантуру и остаться преподавателем. Я, недолго думая, согласился, и не жалею об этом.

  

— Что вы преподаёте в университете и чему обучаете студентов?

— На данный момент я преподаю всего три предмета: это два полных лекционных курса в рамках проекта TechTalents («Спецглавы теории алгоритмов и структур данных» и «Программирование на Python и научные вычисления»), а также лабораторные и практические на 1-м курсе по «Объектно-ориентированному программированию». На 1-м курсе стараюсь обучать студентов писать хороший и красивый код, на 2-м — полюбить алгоритмы и развивать «алгоритмическое мышление», а на 3-м — познакомить с Python и некоторыми базовыми научными библиотеками.

 

— Что студенту стоит предварительно знать, чтобы было проще начинать изучать «Спецглавы теории алгоритмов и структур данных» и «Программирование на Python и научные вычисления»?

— Для алгоритмов — очень желателен соответствующий базовый курс (обычно преподаётся в 1-м или 2-м семестре), иначе будет тяжело. Для Python — на самом деле, кажется, даже почти ничего особенного заранее знать и не обязательно, мы там изучаем язык с самых основ довольно быстро, затем погружаемся поглубже, и потом рассматриваем библиотеки NumPy и pandas (может, что-то ещё).

 

— В каком возрасте вы начали программировать и почему?

— Можно сказать, что я начинал программировать дважды. Первый раз был ещё в далёком детстве, у нас тогда был компьютер ZX Spectrum (с программами на кассетах и с использованием телевизора в качестве монитора). Мы тогда с братом писали какие-то совсем простые программки на Basic, и это было весело. Второй раз был примерно в 9-м классе, когда нам родители купили современный компьютер Pentium с Windows 98 на борту. Я тогда начал самостоятельно изучать Pascal по книжкам, а потом серьёзно взялся и за Delphi. 

Начал программировать я просто потому, что это было очень интересно и увлекательно. И очень хотелось научиться создавать игры и программы, подобные тем, что были тогда на компьютере. В некотором смысле программирование для меня — это возможность «творить», я именно так это воспринимал и воспринимаю сейчас.

 

 

— На каком языке программирования вы сейчас в основном пишете, и как вы к нему пришли?

— Лет десять назад обратил внимание на Python и почти сразу влюбился в этот язык. Он очень лёгкий, красивый, понятный. Меня в нём особенно подкупает акцент на читаемости кода: как сам язык, так и его философия и рекомендации PEP 8 — просто-таки вынуждают писать хороший код.

Мой путь к нему был весьма долгий, но можно выделить основные вехи. Первый язык, в который я по-настоящему влюбился, ещё в школе, был Delphi. Много прикольных "приложенек" было написано в своё время, больших и малых. Из особо интересных можно отметить построение различных графиков функций (с синтаксическим разбором формул и некоторым математическим анализом) и компонент-редактор с подсветкой синтаксиса под различные языки (набор правил хранился в XML, и был удобный визуальный редактор этих схем). Delphi был очень хорош для разработки оконных приложений, и кажется, что никакие другие последующие IDE и языки до сих пор не смогли достичь того же удобства, мощи и универсальности (но, возможно, я тут слишком субъективен).

В некоторый момент (учась в универе) я открыл для себя PHP и начал его самостоятельно изучать. На самом деле ещё тогда было очень много критики в его сторону за его медлительность, нестройность и даже некоторую нелогичность. Но всё-таки, это был мой второй язык, в который я таки «влюбился». Меня восхищало в нём то, что я могу легко и быстро писать как различные скрипты, так и сайты любой сложности. Там не было никаких сильных фреймворочных ограничений (как в ASP и JSP), и эта свобода мне очень нравилась. Но у этой свободы была и обратная сторона. Каждый год, когда я смотрел на свой предыдущий код, я немного ужасался (как так можно было писать), и переписывал его иначе, намного лучше. А потом через время это повторялось снова. В некотором смысле так и получилось, что на своих ошибках я многому научился. И мне тогда это нравилось, то, что PHP позволяет писать любой код, даже если он поначалу и плохой. Когда я стал преподавателем, то пару лет даже вёл альтернативный предмет по PHP, я там старался именно вдохновить всех пришедших студентов лёгкостью программирования (в частности для создания простых сайтов тогда).

Спустя годы в какой-то момент, когда меня начал очень разочаровывать PHP (оказался довольно критичным фактор его медлительности, отсутствия быстрых массивов и возможности обработки больших данных), я открыл для себя Perl. Довольно быстрый и прикольный язык (много забавных «зубодробительных» синтаксических конструкций, меня тогда это тоже подкупало), а также богатая библиотека дополнительных функций. Знакомство с ним было приятным, хоть и не таким долгим, и спустя год-два я всё-таки перешёл на Python, чем и очень доволен до сих пор.

 

 

— В деятельности программиста важна больше творческая или аналитическая составляющая?

— На самом деле тут обе составляющие очень важны, и только одной явно будет не достаточно. «Аналитическая» необходима сама по себе, без этого в программировании далеко не уедешь. Но и без элементов «творчества» никак нельзя, иначе это просто «кодинг» получается. При этом понятие «творчества» я тут трактую довольно широко.

  • Это, во-первых, умение почувствовать, как сделать код красивее. Есть, конечно, формальные признаки - читабельность, понятность, лаконичность, масштабируемость и т.п., но тут важно именно чувствовать комплексность, и оценивать целесообразность.
  • Во-вторых, умение сделать код эффективным с точки зрения применяемых алгоритмов, времени работы, используемой памяти и т.п, и это тоже в некоторой степени могут быть элементы творчества.
  • В-третьих, как программа будет выглядеть и с точки зрения внешнего дизайна, и с точки зрения пользовательского интерфейса, да и даже с точки зрения её файловой структуры — везде можно применить «творческий» подход.

Как и с прочими элементами человеческой деятельности, в программировании также чувствуется, когда к процессу подходили с душой.

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

 

Выражаем благодарность Виталию Николаевичу за интервью.

Беседу вела Алиса Бондарь

Популярні статті

Читати далі