Не помню точно, как и когда именно ко мне пришла мысль пойти на IT-шный факультет. Мой отец был причастен к той самой преподавательской части семьи. Кажется, однажды он принес домой списки всех специальностей единственного в городе технического вуза, где работал сам. И мой выбор пал на «Информационные системы». Тогда же началась подготовка.
Пожалуй, такое время серьезного старта – средние и старшие классы, с прицелом на вуз – одно из самых классических. Еще лет 15 назад, когда этот старт совершала я, то было время и вовсе раннее: мало кто знакомился с азами программирования сверх школьной программы информатики. Да и в общественном представлении «хайпа», как это принято говорить сейчас, вокруг IT – с тем кадровым голодом и космическими зарплатами – не предвиделось. Никаких фронтенд-разработчиков[2], IT-дизайна, понятий UX/UI и бригад тестировщиков программного обеспечения не существовало в массовом сознании отрасли. PhotoShop не предугадывал появления толп веб-дизайнеров, ринувшихся отрисовывать макеты динамических страниц в продукте, предназначенном для обработки статичных растровых изображений. ВКонтакте еще не был запущен, Falcon только пыталась выбраться из фантазий инженеров в бескрайние слои атмосферы, а устройство повседневного средства связи и аппарат для создания снимков, само собой, ничего не знали о возможном единении.
Максимум, что представлял себе среднестатистический подросток, не считая отдельных гиков и олимпиадников, о стоящих профессиональных инвестициях своего ума – польза освоения ПК, который стал постепенно завоевывать место в быту и бизнесе. При том что компьютерная грамотность населения оставалась на крайне низком уровне. А значит, был шанс востребованности – для обслуживания рабочих станций и манипуляций в пакетных программах на нужды фирм.
Доступ в Интернет осуществлялся по телефонным модемам и заветным карточкам на ограниченное время, а лабораторные работы те счастливчики, у которых были более-менее честные уроки информатики, приносили на дискетках. Переформировать свое сознание на higt-tech-восприятие и включиться в бесконечную гонку технологии тогда требовало некоторых усилий.
Сейчас всё проще. Даже если вы решите начать одновременно с поступлением, и, тем более, если уже начали, – вы успели впитать очень многое. Незаметно для себя. IT теперь вокруг нас, с детства, каждый день. Пусть прогресс нещадно меняет формы – вектор развития уже в вашем сознании. Вы знаете множество терминов. Ежедневно вы стоите по ту сторону барьера для разработчиков – на темной, пользовательской, половине. Вы видите удобные приложения и тормозящие интерфейсы, увлекающие дизайны сайтов и неработающие ссылки. С большой вероятностью – знаете разрешение и название ОС вашего телефона, хотя бы раз натыкались на страницу 404 и пользовались HTML5-плеером. А значит, вы уже чувствуете, что есть «хорошо», а что стоит сделать, чтобы получить разгневанного пользователя. Да, детали изменятся, но сам принцип мышления и нужный угол взгляда на мир – уже с вами. Сейчас вы достаточно сознательны, чтобы самостоятельно направлять обучение в близкое вам русло, и достаточно увлечены, чтобы создавать Фейсбук ночами в общежитии.
«А если я хочу начать раньше?»
Средний возраст прихода в фигурное катание будущих олимпийских чемпионов – порядка 4 лет. Старт в юные годы дает вам огромную фору. И это прекрасно. Но важно помнить, что IT и разработка продуктов – это не только скорость набора символов и крутость вашего приложения. Это также учет требований конечных пользователей, решение их проблем. Увы, в погоне за техничностью и модой на инструменты разработчики забывают, зачем они здесь собрались. А вот зачем: решать проблемы людей. Делать их жизнь проще. Позволять каждому тратить больше времени на то, что получается у него лучше, чем у любого другого.
Для эффективного достижения таких целей нужно глубокое понимание предметной области. Для этого, в свою очередь, необходимы зрелость и широта взглядов. Вы будете удивлены, как революционно могут помочь любые знания из совершенно неожиданной сферы. Будьте спортсменами и оттачивайте технику: кто посмеет сказать, что научиться как можно раньше – это плохо? Но не забывайте, как важно сохранить увлеченность работой на всю оставшуюся жизнь, а еще – не упустить за программированием с малых лет тысячи других областей и терабайты знаний об устройстве мира. Ведь именно они с большой вероятностью позволят вам создать новые решения, увидеть скрытое от «программистов-аутистов» и стать лучшим разработчиком, тимлидом, руководителем в Google или создателем стартапа, который изменит мир.
Илон Маск много читал в детстве, путешествовал и, что более важно, жил в среде расового противостояния и сохраненного рабства на землях ЮАР. С раннего возраста он не посвящал свою жизнь изучению программирования, хотя первая его игра увидела свет еще в довузовский период. Нестандартный жизненный путь и широкий взгляд на мир с иного угла дали результат, недостижимый одним лишь корпением над документацией всё свободное время. Ричард Фейнман с самого детства собирал радиоустановки на чердаке. Но в более поздние годы не сидел, запершись в кабинете физики, а осваивал игру на барабанах и ходил с парадами по Бразилии.
Помните, раньше – значит надежнее, но в долгосрочной перспективе не значит результативнее, разумнее, профессиональнее. Да и вообще, мало что значит. И последующие истории тому доказательство.
«Хочу поменять профессию. Что, если начать позже?»
Уже окончив вуз по иной специальности, проработав некоторое количество долгих лет вне IT… У вас есть тот самый кругозор, который создает уникальную комбинацию способностей и может привести к революционным решениям. И да, у вас гораздо больше воли, мотивации и целеустремленности – ибо такой выбор серьезнее, он требует кардинальных перемен в жизни – переезда, перестраивания семейных отношений. Да и делается куда более осознанно, нежели выбор школьного абитуриента.
Первый техлид, с которым мне довелось поработать, казалось, мог всё.
Спортивный и подтянутый, быстрый в каждом движении, Саша был не прочь подзадорить коллег отвлеченным разговором и собрать всех вокруг на чашку несущего передышку чая. Несмотря на разницу в возрасте с нами, новичками и стажерами, он не угнетал авторитетом повидавшего жизнь разработчика, а делал атмосферу легкой, мотивирующей и оперативной. Манера насмешливо журить за упущения и незнания нисколько не сковывала начинающих интровертов. Самым психологически сложным оставалось обратить на себя внимание: призывно размахивая руками, вынудить его снять неизменно надетые наушники.
Когда приходилось настраивать рабочее окружение и сталкиваться с ошибками, в которых Stack Overflow оказывался бессилен, – достаточно было позвать Сашу. Любая проблема с npm-пакетами, версиями gem-ов, последствиями кривых рук в Linux, настройками серверов решалась за пару минут. Когда нам поступила задача быстро завести партнерский интернет-магазин на PHP, наиболее глубоко знакомым с этим непрофильным для компании языком – разработка у нас велась на Ruby – снова оказался он. Именно Саша занимался ведением основного продукта – высоконагруженного сервиса для известного медиахолдинга. Между делом он грамотно воспитывал стажеров, многие из которых вырастали в успешных разработчиков. В свободное время вел технический блог, находил любопытные решения, пробовал, настраивал новые инструменты. В рабочее – успешно рассчитывал мощности и конфигурации серверов для поддержания устойчивой архитектуры видеоплатформы. Стоит добавить ко всему легкость коммуникаций: редкая общительность для традиционного типажа того времени – замкнутых программистов – шутки над коллегами мимоходом, инициация обеденных групповых вылазок командой на турники с подтягиваниями, отжиманиями и хардкордной «планкой». Последняя, к слову, была показана им как образец, и никем более на тот момент не осилилась к повторению.
Казалось, вот так должен выглядеть профессионал, наслоивший на хорошо усвоенные академические знания практический опыт нескольких лет работы. Да-да, даже не десяти, пятнадцати или двадцати – ему было всего тридцать с небольшим. Каково же было мое удивление, когда я узнала, что академического IT-шного образования в этой истории нет и вовсе! Более того, нет даже хоть сколько-нибудь смежного технического. А по своему диплому наш лучший техлид:
– Преподаватель. Специалист физической культуры и спорта, – размеренно произнес однажды голос из-под наушников в ответ на поднятую кем-то образовательную тему.
– Ни за что бы не подумала… – все, что растерянно я смогла выдавить из себя тогда.
«Как тебе это удалось?», «Давно ты начал?», «А как ты вообще оказался в IT?» – удивленные вопросы посыпались со всех сторон.
Те самые смежные софт-скиллс из другой профессии сыграли здесь свою весомую роль. Более осознанный выбор и интерес к области, увлеченность и пробы собственных проектов в нерабочее время позволили ему за несколько лет догнать ведущих специалистов. А сохранившееся отношение к IT как к зарожденному изначально хобби помогало лучше многих поддерживать актуальный уровень знаний. Успешно выступать с полезными докладами на IT-встречах и бегать на лыжах, побеждать в волейбольных турнирах и быть в отличной физической и профессиональной форме.
В компании остро стоял вопрос найма новых кадров.
Сложность поиска верстальщиков и JS-специалистов заключалась в отсутствии в явном виде таких специализаций. Именно в тот период мне как руководителю фронтенд-разработки довелось пребывать в непростой нанимающей роли. Приходилось или брать студентов со скамьи и обучать с нуля со всеми вытекающими, или фильтровать огромный поток уже успевших поработать в смежных сферах с надеждой найти нужный уровень и типаж. Большинство IT-выпускников, не блиставших алгоритмическими способностями, шли в студии сайтов или подобные некрупные фирмы, стремясь получить работу по специальности. И зачастую предпочитали верстку как «облегченную» версию профессиональной деятельности. Лучшие же кадры выбирали чистое и «профильное» программирование – уходили в бэкенд. В итоге квалификация клиентских разработчиков даже спустя год-другой работы оставляла желать лучшего. Сеньоров и умудренных на тот момент не искали. Перепробовав различные техники отбора, мы в итоге пришли к популярной в известных мировых фирмах методике, где кандидату даже чисто на верстку помимо прочих вопросов предлагалось решить и запрограммировать некую алгоритмическую задачу. Да-да, были такие времена, когда верстальщик и JS-программист были отдельными сущностями.
Шли собеседования, ротировались кандидаты, разочарование росло. Никто не мог справиться с задачей на приемлемом уровне. Причем затруднения вызывало логическое мышление: способность рассуждать, строить жизнеспособную модель решения. Кандидаты, требовавшие неприличные для себя зарплаты, специалисты по искомым фреймворкам, – все терялись и оказывались неспособны отойти от стандартных приемов. Они старались применить «прецедентный подход» и, не находя готовых решений из своей практики, что зачастую оказывалось синонимом «не вспоминая нагугленного ранее», – становились бессильны. Единственным справившимся со всеми заданиями кандидатом оказался разработчик, переехавший из другого города. Немногословный, сдержанный молодой человек, чаще с сосредоточенным и немного напряженным, будто что-то обдумывающим, выражением. Последние года два он работал в веб-студии, а до этого честно строил карьеру агента по недвижимости – иными словами, являлся профессиональным дипломированным риелтором.
На данный момент, спустя несколько лет, он продолжает работать на всех наших основных проектах, участвует в создании Smart TV-приложений, видеоплеера и иных высоконагруженных сервисов.
В наших кругах телевизоры – не самая модная отрасль, потому, когда успешно поборовшим задание на разработку приложения Smart TV стал пусть и непрофильный кандидат, я была безгранично довольна. Те, кто застал времена зарождения части «smart» в составе TV в не такие уж далекие 2010-е, возможно, помнят настоящий коэффициент IQ тех девайсов. Под капотом «умные» приложения содержали в себе обычный веб-браузер – казалось бы, что может быть проще. Но нет: видимо, опасаясь восстания машин, производители того времени прилагали значительные усилия по созданию всевозможных препятствий к торжеству ТВ-интеллекта. Документации и гайды по разработке тщательно запрятывались от незнакомцев, индусская поддержка брала недельные паузы на медитации, а сборка приложения и его тестирование на реальном телевизоре представляли собой путь из 9 кругов ада. Сюрпризы оказывались в самых неожиданных местах. Фокусы не ставились на элементы, стандартный HTML-ный select отказывался назначать выбранный элемент через JS, свойства CSS выделывали трюки уровня старых IE, а встроенные медиаплееры с их непредсказуемыми обработками сиков и сдвигов live-трансляций позволяли разработчикам медленно, но неотвратимо постигать дзен. Особенно отличался Philips, не желавший перезапрашивать и отрисовывать даже несколько небольших тумбнейлов на странице за небольшой промежуток времени и благополучно «вешавшийся» на этом так, что не срабатывала даже перезагрузка.
SDK, ОС платформ и их версии, системы сборки и тестирования на ТВ постоянно менялись. В каждом аппруве в стор оказывались какие-нибудь новые удивительные требования. Появлялись то лишние десятки полей, то дополнительные чек-листы, которые надо было заполнить. А еще требовалось подготовить 2 презентации в PowerPoint с картинками каждого экрана, таблицами элементов на нем, их подробным описанием на уровне «что должна делать каждая кнопка и каждый компонент приложения». Прошедшее все муки разработки – порядка нескольких месяцев! – приложение попадало в руки прилежных корейских или индийских тестировщиков. Спустя пару недель оно неминуемо возвращалось с замечанием вроде «ваша текущая выбранная кнопка недостаточно заметно обозначает фокус на себе с расстояния нескольких метров». После чего под крупные слезы дизайнеров рамка становилась еще жирнее и краснее. Продукт заново отправлялся на очередной цикл тестирования. Кстати, хочется снять кепку перед специалистами тестирования Индии и Кореи – как они проверяли функционал приложения на русском языке во времена отсутствия Google Translate по фото – для меня до сих пор остается загадкой.
Чтобы сражаться и побеждать, в этой сфере нужен был человек, разбирающийся не только в наборе качественного кода в редакторе, но и в сетевой и аппаратной частях устройств, необходимых для подключения/настройки ТВ под отладку. И он нашелся…
…среди выпускников кафедры машиностроения. До прихода к нам Игорь уже поработал несколько лет во фронтенде. Живость ума и самообучение позволили освоить верстку и JavaScript на профессиональном уровне, сохранив при этом совершенно не похожую на разработчика индивидуальность. Уникальный юмор, порой излишняя прямота, молодость и подчас пугающий менеджеров оптимизм выделяли его среди «типичных программистов». Широта принятия и познания в других слоях жизни отлично вписали его в коллектив, очертив ореолом легкости и позитивного мышления. А еще – нередко несли нам спасительную перезарядку.
Именно Игорь справился с гибридной, аппаратно-фронтендерской, спецификой Smart TV успешнее многих. Сначала выполнил тестовое задание по написанию несложного ТВ-приложения, с нуля разобравшись со всей платформенной инфраструктурой. Затем практически единолично разработал для нашего крупного заказчика проект с не самым тривиальным интерфейсом, платежными сервисами, VoD и live-видео.
И хотя позднее, перейдя фронтенд-разработчиком в одну из крупнейших российских IT-компаний – «Рамблер», – он зарекся никогда не иметь дело с «теликами», заслуженного места в историях успехов непрофильных кандидатов ему уже не изменить.