Большинство программистов в Т8 занимаются разработкой на уровне «железа». В интервью с Евгением, инженером-программистом отдела специальных программных разработок, мы поговорили о магическом числе 256 и профессии программиста.
— Что это за число — 256? Как Вы считаете, почему именно его выбрали, чтобы отсчитывать день празднования?
— Это максимальная степень двойки, которая умещается в число дней года. В чем важность этого числа для программирования? Почти все современные системы используют 8-битный байт, соответственно 2^8, то есть 256 бит.
— Действительно ли важность работы программиста в нашей стране сильно возросла в последнее время?
— Конечно, важность нашей работы возросла. Еще лет 10 лет назад считалось, что программисты — это такие странные люди, которые создают игры, пишут программы для компьютеров. Сейчас намного больше людей понимает, что без программистов невозможны базовые вещи. Без сотовой, фиксированной связи, банковской инфраструктуры, для которых мы делаем софт, никак не обойтись. В постиндустриальном обществе информационные технологии пронизывают каждый шаг человека. И, к счастью, что в ряде сфер в информационных технологиях Россия сейчас, можно сказать, впереди планеты всей. А за последние два года важность профессии особенно возросла в связи с тем, что очень многое поменялось в отношениях с другими странами. А так как моя работа глубоко связана с «железом», то можно сказать, что наша деятельность стала намного значительнее.
— А у Вас — такой симбиоз программиста и технаря?
— Программист сам по себе всегда еще и технарь. А в Т8, наверное, 90% программистов занимаются разработкой на уровне «железа».
— Трудно ли соответствовать качеству ПО иностранных разработчиков, которые ушли с рынка?
— Я могу сказать, что это было важно всегда. Пользователи, в том числе и из крупных корпораций, зачастую привыкли к продуктам проверенных зарубежных вендоров, и убедить их, что у нас ПО не хуже, бывает сложно. Это касается не только программных продуктов, но и всего остального. Ситуацию по-настоящему не удалось переломить до сих пор. Но все же у заказчиков Т8 я вижу очень хороший тренд. Когда люди к нам приезжают на обучение, на презентации, то они смотрят и удивляются, как качественно все сделано.
— Насколько развито использование открытого кода при разработке ПО?
— В бОльшей части софта применяются те блоки, которые уже написаны кем-то, не в самой компании. Можно говорить, что ПО в компании создано ее специалистами, использовать это как хороший маркетинговый ход, но технари знают, что, начинка на 80% —сторонняя. И хорошо, если это открытый код, и любой программист может проверить, что в нем содержится.
— Для каких систем пишут программы в Вашем отделе?
— Мы разрабатываем встроенное ПО для плат линейных транспондеров, агрегаторов, которые непосредственно отвечают за обработку трафика. Мы занимаемся высокоскоростными платами, то есть с пропускной способностью от 100 Гбит/с и выше. Наш отдел был создан, потому что сейчас стало намного больше запросов на когерентные изделия.
— Расскажите, какова процедура написания ПО, из каких этапов состоит этот процесс?
— Начинать нужно с анализа бизнес-требований, потому что ПО, любая техническая система должна решать какие-то бизнес-задачи. После того как бизнес-анализ проведен, выработаны требования к системе, проводится разработка архитектуры, достаточно крупноуровневое разбиение будущего ПО. В каком-то смысле — это аналог архитектурного эскиза. Затем идет более детальное проектирование, разделение ПО на компоненты, разработка взаимодействия этих компонентов. И только после проектирования начинается написание кода. В масштабах всей разработки это занимает, наверное, процентов 10 времени. Программист бОльшую часть времени думает, а не пишет код. После написания кода — отладка и тестирование. И нужно понимать, что зачастую эти процессы не последовательные, а все идет итеративно, параллельно. Потому что проще написать какую-то небольшую часть системы, получить обратную связь от пользователя, и потом заново пройти тот же самый путь, доработав текущий функционал или добавив новый.
— Почему Вы выбрали профессию программиста? Чем она Вам нравится? Можно ли сказать, что программирование – это Ваше хобби, любимое увлечение?
— Да, можно сказать, что это мое любимое увлечение. Очень хорошо, когда работа — это твое хобби. В свободное время я тоже много занимаюсь программированием. Последнее время, правда, достаточно редко — большая загрузка на работе. Вообще, я не разделяю профессии программиста и инженера, и поэтому для меня работа программиста — это возможность решать сложные технические задачи и радость почти сразу же видеть результат.
— Есть ли что-то, что Вам не нравится в этой профессии?
— Да, приходится много времени проводить без движения. Конечно, после работы я стараюсь восполнять отсутствие активности, занимаюсь спортом, гуляю, но, когда восемь часов в день надо думать, сидеть, этого все равно недостаточно.
— Тяжело ли бороться с багами? Бывает ли, что они долго «не ловятся» и «доводят» до уныния?
— Да, однозначно, такое бывает. Я только на днях вспоминал с коллегами случай с моей предыдущей работы, когда на поиски и исправление одного бага было потрачено целых восемь лет. Если считать в единицах людских ресурсов, то два-три человекогода, а исправление было в три символа.
— Часто ли приходится решать нестандартные задачи, искать советов в интернете?
— Наверное, почти каждая задача — нестандартная, потому что как только ты понимаешь, что переходишь на стандартные задачи и рутинные решения, то ты просто остановился в развитии. Тогда стараешься что-то поменять в своей жизни, своей работе, взять другие задачи, куда-то расти. А что касается поиска в интернете, то, конечно, постоянно ищу. Ведь один из навыков инженера и программиста — это умение найти нужную информацию.
— Обязательно ли получить высшее образование, чтобы стать программистом?
— Нет, не обязательно. У меня есть хороший знакомый со среднеспециальным образованием. Он очень квалифицированный программист, долгое время работал в компании Intel в Нижнем Новгороде. Но учеба в университете делает путь проще. Ведь база знаний — больше. В университете дают фундаментальные знания, к которым рано или поздно тебе придется прийти. Когда на работе будешь решать какие-то задачи, и у тебя будет база, ты вспомнишь, что это проходил. То есть у тебя есть полученные во время учебы знания, которые ты можешь при необходимости расширить, развить. А если у тебя этих знаний нет, то найти решение сложнее.
— Как бы Вы поздравили своих коллег, что бы им пожелали?
— Я хочу пожелать, чтобы у вас не было таких случаев, чтобы по 8 лет ловить баги, чтобы было намного больше разработки и нестандартных задач!
Это команда Т8, до встречи!