Николай Ищенко начал программировать еще на «популярном в то время» Delphi, потом перепробовал несколько других языков (даже успел сделать пару проектов на Windows Phone), а теперь пишет на JAVA — и уверен, что уж «джава»-то точно будет долго жить. Почему так? Как подобрать оптимальный язык, который не перестанет использоваться через пару лет? Чем на самом деле отличается «джуниор» от «сеньора»? Во всех премудростях IT-специальностей Onliner разбирается в спецпроекте вместе с компанией ISsoft. Наш первый герой — программист-разработчик.
— Как в программирование пошел?
— Я сам из России, родители переехали в Кричев. Выбора в плане обучения там особо нет: или тракторы чинишь — а с техникой я до сих пор не особо дружу и машины не люблю, — или ветеринаром становишься. Но и тут проблема: не могу смотреть на животных, когда они страдают. А вот компьютеры всегда нравились. Поэтому поехал в Минск, поступил в техникум на факультет программного обеспечения и так уже дошел до программиста.
— JAVA — один из самых живучих языков: ему около четверти века. Чем это можно объяснить?
— В первую очередь тем, что он открытый. Это формирует большое сообщество, которое разрабатывает всевозможные фреймворки. Если в .NET-мире приходит Microsoft и выдавливает сторонние фреймворки собственными, в которые вкладывает деньги, то здесь все по-другому. Под JAVA разные комьюнити делают разные удобные для самих разработчиков штуки.
— JAVA ведь очень универсальный? Приведи пару примеров совершенно разных проектов, сделанных на этом языке.
— Написать на JAVA, по сути, можно что угодно. Недавно я ездил на конференцию в Киев: там показывал, как писать на JAVA на микрокомпьютерах размером с половину банковской карты. И с той же JAVA я работаю на проекте, где происходят десятки тысяч запросов в секунду и сервер должен отвечать менее чем за 60 миллисекунд. Такая вот разбежка получается в плане возможностей языка.
— Чем вообще программист занимается? У многих людей наверняка такое впечатление: сидит за компьютером и печатает что-то непонятное.
— Ну, в реальности все так и происходит. Если сторонний человек придет и посидит рядом со мной рабочий день, у него именно такое впечатление и будет. На самом деле трудовой день выглядит так: проверяю почту, и если есть срочные задания — берусь за них. Если ничего не «горит», продолжаю то, что осталось со вчерашнего дня, или берусь за что-то новое. Дальше идут статусы внутри команды, митинги.
— Звучит скучно, нет?
— Когда сидишь и что-то делаешь пару дней, потом запускаешь и видишь, что все получилось как и хотел или еще круче — это же офигенно. У меня ассоциации сразу с героем какой-нибудь RPG, который наконец-то побеждает босса, и ты такой: «Наконец-то завалил его, я молодец». Профессию программиста тоже можно воспринимать как RPG-игру. Ты постоянно прокачиваешь своего героя — себя. Иногда я закрываю свои старые проекты на GitHub, потому что открываешь их и думаешь: «Как я мог так написать? Сейчас сделал бы все по-другому». И это нормальный процесс: ты узнаешь больше и становишься лучше.
— Как оставаться актуальным на рынке труда?
— Нужно смотреть, какие технологии сейчас востребованы и остаются такими в течение уже долгого времени. Знания в IT быстро теряют актуальность. Если ты их не обновляешь, то, считай, поставил ноги в тазик с цементом, который вскоре засохнет. Выбраться из него ты еще долго не сможешь. Нужно все время оглядываться и смотреть, что необходимо рынку. Вот как с Windows Phone у меня было: сделал неправильную ставку, и пришлось быстро обновлять свои знания.
— Все-таки можно было предположить, что Microsoft серьезно поборется с Apple и Google на рынке мобильных платформ. А получилось грустно. Как тогда определиться, на что ставить?
— Нет такого момента, что чик — и все, технология провалилась. Компания Microsoft сделала хорошую операционную систему, мне очень нравились смартфоны Nokia на Windows Phone. Я делал для них приложения, игры, победил в хакатоне от Microsoft, когда они приезжали сюда с Dev-туром. А потом оказалось, что все это особо никому и не нужно. Настал момент, когда надо было менять работу. Смотрю вакансии и понимаю, что на стэк Windows Phone по всему Минску их две-три. И то вакансии такие себе. Вот в тот момент я и понял, что пора менять вектор. То есть Windows Phone затухала постепенно, а не по щелчку.
— JAVA с нуля начал изучать?
— На прошлой работе мой проект переходил с одного языка на другой. Он как раз переписывался на JAVA, и это была хорошая возможность стать частью JAVA-команды.
— Насколько современные языки похожи или отличаются друг от друга? Перейти с одного на другой сложно?
— Где-то услышал такую мысль: программист — это человек, который пишет алгоритмы, а не привязан к синтаксису. Синтаксис языка освоить легко, а вот понимать, как все устроено не только «на поверхности» твоего кода, но и «под капотом», — это сложнее. Есть еще много пунктов, которые помогут отличить «хорошего программиста» от «кодера», но это очень холиварная тема.
— Айтишники вроде любят удаленно работать. Рассматривал такой вариант?
— В реальности с этим много сложностей. Был случай: нужно было срочно из дома связаться с клиентом, а я тогда с ребенком сидел. Созваниваемся, и я вдруг вижу, что они слушают меня и улыбаются. Оборачиваюсь — а ребенок из-за плеча смотрит в ноутбук: что, мол, папа там делает? Потом забрался на меня, сел на колени, и мы продолжили митинг уже вместе с ним. Так что для меня удаленная работа — точно не вариант. К тому же нужна очень хорошая самоорганизация, ты должен понимать, что хоть формально находишься дома, но на самом деле ты на работе. И очень важно, чтобы семья тоже это понимала.
— Ты закончил техникум и университет. Высшее образование помогло? Сейчас популярно говорить, что хватает и курсов, видеоуроков всяких.
— Образование нужно, но не в том виде, в каком оно представлено в Беларуси. Приходишь на предмет, связанный с программированием, а его преподает человек в годах, который не особо понимает, что говорит. Когда преподают неконкурентные люди, то и выпускники будут такими же.
— Почему они неконкурентные?
— Если человек что-то знает в своей профессии, то наверняка пошел бы куда-то дальше и получил бы «х5» к зарплате, а не оставался в вузе. Но, конечно, есть те, кто считает преподавание своим призванием.
— Почти везде принято разделение на «джунов», «мидлов» и «сеньоров». Насколько оно условно? «Мидл» может знать больше «сеньора»?
— Нужно понять, какие цели преследуют компании при вводе таких градаций. Я предпочитаю представляться как software developer. Иначе назовешься архитектором и не оправдаешь ожиданий собеседника: он будет считать, что ты должен знать больше.
По рынку, конечно, градации есть. Но составляют их эйчары, рекрутеры, и многое зависит уже от их профессионализма и понимания, какие к кому требования должны быть. Иногда в вакансиях на «джуна» требования как на «сеньор фулстэк»-разработчика с архитекторскими способностями.
— Что посоветуешь тем, кто хочет «пойти в айти»?
— Человеку нужно понять, зачем он хочет сюда попасть. Если из-за денег, но само программирование не нравится — ну, ты будешь страдать, и смысл тогда в деньгах? Но бывает и так: мой коллега всю жизнь трудился прорабом и постепенно понял, что ему очень нравятся компьютеры. Попробовал курсы по программированию — все понравилось, быстро освоил. И сейчас он очень хороший программист.
— Не кажется, что это портит имидж IT-сферы? Сложно представить прораба, который станет успешным юристом, адвокатом. А программистом — запросто.
— А как это портит имидж? Наоборот же. Если человек стал отличным программистом, то здесь пример хорошей истории успеха, он получает кайф от своей работы. Что здесь негативного? Крутой адвокат выигрывает все дела — конечно, я обращусь к нему, даже если он раньше дояркой был. Почему нет.
Также мы обратились к заведующей кафедрой факультета компьютерных систем и сетей БГУИРа Наталье Лапицкой, чтобы узнать мнение другой стороны: какими видят программистов те, кто их готовит, и что все-таки делать с образованием.
— Программист считается эдакой базовой профессией в IT. Согласны с этим?
— Да, согласна. Но тогда можно задать вопрос: а что такое IT? Если понимать под ним все, что называют цифровой трансформацией общества, то придем к факту, что в социуме вообще все изменилось. И уже тогда нельзя будет сказать, что программист — базовая профессия в IT.
— Можно ли в таком случае считать образование программиста основой для других IT-специальностей? Для тестирования, работы с искусственным интеллектом и так далее.
— Время диктует необходимость менять подходы к получению знаний. Сегодня недостаточно получать информацию только от нас, преподавателей. Здесь важно и самому постоянно совершенствоваться, находить и уметь применять новые знания. Люди должны получать навыки работы с информацией и изменения своего поведения в рамках меняющегося мира. Раньше информация была в книгах, а учитель считался источником ее передачи. Да, системное образование тоже нужно, но многое можно почерпнуть из существующих источников информации.
Сейчас задача образования — научить вас адекватно и гибко реагировать на постоянно меняющийся мир.
— То есть цель образования можно описать красивой фразой «научить учиться»?
— Однозначно.
— И именно это — причина тратить четыре либо шесть лет на высшее образование?
— Руководитель одной очень крупной IT-компании рассказывал, что делит гармоничную деятельность на четыре части: делание, экспертиза, видение и экосреда. То есть нужно уметь что-то делать, быть компетентным и, создав команду, видеть, куда вы идете.
Вот раньше как было: если ты «фулстэк»-разработчик, то тебя почти наверняка возьмут на работу. А сейчас это опасно. Как понять, насколько этот «фул» глубок? По сути, Full Stack значит, что ты слышал обо всем понемногу. Какие фишки JAVA ты знаешь? Сталкивался ли с вылетом в конкретной ситуации? Full Stack таких знаний не даст — то есть стэк ты расширял, а не прокачивал вглубь. Сейчас, условно, нужен не просто эксперт по Kotlin, но эксперт по Kotlin при решении медицинских задач. И с этого момента уже надо говорить о необходимости образования.
Образование учит вас коммуницировать не с такими, как вы. Когда мои ученики жалуются на какого-нибудь преподавателя, я спрашиваю: «Вы что, договориться не смогли? Допустим, ваше знание или незнание цикла спорно. Но вот ваше неумение решить вопрос — это факт». Вы же потом в реальном коллективе, с руководством, с заказчиком не договоритесь. А то приходят все крутые: и я крутой, и ты крутой. Ну и как вы договоритесь, если каждый себя крутым считает?
— Гуманитарий может быть программистом или это все же технарская специальность?
— Любой нормальный человек — это гармонично развитая личность. Но если в системе что-то начинает перевешивать, она в любом случае выйдет из строя. Когда человек сильно логичен и лишен гуманитарной составляющей, то у него отсутствуют, как сейчас модно говорить, эмоциональный интеллект и образное мышление. А если этого нет, то, простите, зачем такой человек, когда есть искусственный интеллект? Все логические процессы — это ИИ. Но как раз мы, люди, отличаемся тем, что можем действовать нелогично, какое-то прорывное решение лежит вне удачи — просто когда что-то пошло не так, как ожидалось.
— Есть универсальный совет программистам?
— Совет всегда один и тот же, и касается он не только программистов: не уставайте удивляться миру и удовлетворять собственное любопытство. Когда научитесь не пугаться, а радоваться всему, что происходит, тогда получите настоящее удовольствие от жизни. Если по образованию совет, то могу дать такой: помните — любая задача решается, просто не всегда с первого раза. А когда решил задачу с первого раза, то тебе не повезло — ведь ты даже не задумался над тем, что есть другие способы ее решения.
Компания ISsoft — один из крупнейших белорусских разработчиков IT-решений для рынков США и Западной Европы. Основана в Минске в 2004 году как дочерняя компания корпорации Coherent Solutions, Inc. (США). Резидент Парка высоких технологий с 2007 года. Центры разработки ISsoft в Минске и Бресте насчитывают более 1000 квалифицированных сотрудников. Компания ежегодно входит в рейтинги Inc.5000 и Software 500.
Библиотека Onliner: лучшие материалы и циклы статей
Наш канал в Telegram. Присоединяйтесь!
Быстрая связь с редакцией: читайте паблик-чат Onliner и пишите нам в Viber!
Перепечатка текста и фотографий Onliner без разрешения редакции запрещена. nak@onliner.by