Читать книгу Путь в ИТ - Елена Правдина - Страница 4
Design
Когда начать
ОглавлениеIs there right time for?..
«Ты никогда не сможешь соперничать с мужчинами – пока они будут писать код и совершенствовать свои навыки, ты будешь жарить котлеты».
Та фраза сильно врезалась в мою память. Я часто вспоминаю ее и по сей день – то упиваясь осознанием, что да, я смогла: избежать, добиться… то чувствуя, что стою в шаге от принятия сей безнадежной мысли и смирения. Но вы – никогда не допускайте последнего.
Мой путь в ИТ начался классе в десятом, когда в сознании начал всё серьезнее вырисовываться вопрос поступления. Стоит отметить, что выросла я в семье по большей части врачей, и по меньшей (но столь же значимой для меня) – преподавателей. С детства все разговоры, шутливые вопросы и представления о моем будущем витали вокруг профессий доктора и учителя. Да и я сама была искренне убеждена, что продолжу семейную традицию и стану хирургом или лором, как бабушка, акушером-гинекологом, как дедушка, или, в самом близком и понятном мне случае, – терапевтом, как мама. Каждый из них отдал всю свою жизнь профессии и становился одним из лучших в своем кругу, занимал руководящие должности: управлял отделением или был заведующим консультацией. Их путь был хотя и требующим массы сил и отдачи, но прозрачным и понятным. Одна специализация, одно (за небольшим исключением ординаторства) место работы, одни глубокие знания – и на всю жизнь. Каким любопытным и тяжелым для меня станет после осознание: в ИТ всё не так. Попытки проецировать профессиональный опыт другой сферы и иного поколения на представления о будущей жизни и работе добавили сложностей принятия на начальных шагах моей карьеры. В области, где за год твои навыки и знания могут устареть достаточно, чтобы перестать вызывать блеск в глазах рекрутеров, да и в глазах собственных. Где появляются и уходят в прошлое фреймворки, сменяется мода на стили и пути решения одних и тех же ежедневных задач, – так стремительно быстро, что спасают лишь гибкий ум, глубокое понимание базовых концептов и непрерывное, ежечасное, ежеминутное погружение, самообучение, чтение, развитие – и практика, практика. Но, впрочем, обо всём по порядку.
Не помню точно, как и когда именно ко мне пришла мысль пойти на ИТ-шный факультет. Кажется, отец – а он был причастен к той самой преподавательской части моей семьи – однажды принес домой списки всех специальностей единственного в городе технического вуза, где работал он, и мой выбор пал на Информационные системы. Тогда же началась подготовка.
Пожалуй, такое время серьезного старта – средние и старшие классы, с прицелом на вуз – одно из самых классических. Еще 15 лет назад, когда этот старт совершала я, время даже раньше среднего: мало кто знакомился с азами программирования сверх школьной программы информатики. Да и в общественном сознании, как это принято говорить сейчас, «хайпа» вокруг ИТ – с тем кадровым голодом и космическими зарплатами – не предвиделось. Никах фронтенд-разработчиков, ИТ-дизайна, понятий UX/UI и бригад тестировщиков ПО не существовало в массовом сознании отрасли. PhotoShop не предугадывал появления толп веб-дизайнеров, ринувшихся отрисовывать макеты динамических страниц для всемирной паутины в продукте, предназначенном для обработки статичных растровых изображений. ВКонтакте еще не был запущен, Falcon только пыталась выбраться из фантазий инженеров в бескрайние слои атмосферы, и, само собой, устройство повседневного средства связи и аппарат для создания снимков – ничего не знали о возможном единении.
Максимум, что представлял себе среднестатистический подросток (отдельных гиков и олимпиадников не берем) о стоящих профессиональных инвестициях своего ума, – близость к ПК, который стал постепенно завоевывать место в быту и бизнесе, при том, что компьютерная грамотность населения оставалась на крайне низком уровне. А значит, был шанс востребованности – для обслуживания рабочих станций и манипуляций в пакетных программах на нужды фирм.
Доступ в интернет получался через телефонные модемы и по заветным карточкам на ограниченное время, а лабораторные работы теми счастливчиками, у которых были более-менее честные уроки информатики, приносились на дискетках. Переформировать свое сознание на higt-tech-восприятие и включиться в бесконечную гонку технологии тогда требовало некоторых усилий.
Сейчас всё проще. Даже если вы решите начать одновременно с поступлением – вы уже впитали очень много. ИТ вокруг нас, с детства, каждый день. Пусть прогресс нещадно меняет формы – вектор развития уже в вашем сознании. Вы знаете множество терминов. Ежедневно вы стоите по ту сторону барьера для разработчиков – на темной половине пользователя. Вы видите удобные приложения и тормозящие интерфейсы, увлекающие дизайны сайтов и неработающие ссылки. С большой вероятностью – знаете разрешение и названия ОС вашего телефона, хотя бы раз натыкались на страницу 404 и пользовались html5-плеером. А значит, вы уже чувствуете, что есть «хорошо», а что стоит сделать, чтобы получить разгневанного пользователя. Да, детали изменятся, но сам принцип мышления и нужный угол взгляда на мир – уже с вами. В этот период вы достаточно сознательны, чтобы самостоятельно направлять обучение в близкое вам русло, и еще достаточно увлечены, чтобы создавать фейсбук ночами в общежитии.
А если раньше? Средний возраст прихода в фигурное катание будущих олимпийских чемпионов – порядка 4 лет. Старт в юные годы дает вам огромную фору. И это прекрасно. Но важно помнить, что ИТ и разработка продуктов – это не только скорость набора символов и крутость вашего приложения. Это также учет требований конечных пользователей, решение их проблем. Увы, в погоне за техничностью и модой на инструменты разработчики забывают, зачем они здесь собрались. А вот зачем: решать проблемы людей. Делать их жизнь проще. Позволять каждому тратить больше времени на то, что получается у него лучше, чем у любого другого.
Для эффективного достижения таких целей нужно глубокое понимание предметной области. Для этого, в свою очередь, необходимы зрелость и широта взглядов. Вы будете удивлены, как революционно могут помочь любые знания из совершенно неожиданной сферы. Будьте спортсменами и оттачивайте технику: кто посмеет сказать, что научиться как можно раньше – это плохо? Но не забывайте, как важно сохранить увлеченность работой на всю оставшуюся жизнь, а еще – не упустить за занятиями только программированием с малых лет тысячи других областей и терабайты знаний об устройстве мира. Ведь именно они с большой вероятностью позволят вам создать новые решения, увидеть скрытое от «программистов-аутистов» и стать лучшим разработчиком, тимлидом, руководителем в Google или создателем стартапа, который изменит мир.
Илон Маск много читал в детстве, путешествовал и, что более знаково, жил в среде расового противостояния и сохраненного рабства на землях ЮАР. Он не посвятил свою жизнь с ранних лет изучению программирования (хотя первая его игра увидела свет еще в довузовский период). Нестандартный жизненный путь, широкий взгляд на мир с иного угла дали результат, недостижимый одним лишь корпением над документацией всё свободное время. Ричард Фейнман с ранних лет собирал радиоустановки на чердаке. Но в более поздние годы не сидел, запершись в кабинете физики, а осваивал игру на барабанах и ходил с парадами по Бразилии.
Помните, раньше – значит надежнее, но в долгосрочной перспективе не значит результативнее, разумнее, профессиональнее, Да и вообще мало что значит. И последующие истории тому доказательство.
А если позже? Уже окончив вуз по иной специальности, проработав некоторое количество долгих лет вне ИТ… У вас есть тот самый кругозор, который создает уникальную комбинацию способностей и может привести к революционным решениям. И да, у вас гораздо больше воли, мотивации и целеустремленности – ибо такой выбор серьезнее, требует кардинальных перемен в жизни – переезда, перестраивания семейных отношений, и делается куда более осознанно, нежели выбор школьного абитуриента.
История первая
Первый техлид, с которым мне довелось поработать, казалось, мог всё. Когда приходилось настраивать рабочее окружение и сталкиваться с ошибками, в которых StackOverflow оказывался бессилен, – достаточно было позвать его. Любая проблема с npm-пакетами, версиями gem-ов, последствиями кривых рук в Linux, настройками серверов – решалась за пару минут. Когда нам поступила задача быстро завести партнерский интернет магазин на PHP, наиболее глубоко знакомым с этим непрофильным для компании языком (разработка у нас велась на Ruby) снова оказался он. Именно герой моей истории занимался ведением основного продукта: высоконагруженного сервиса для известного медиахолдинга. Между делом он грамотно воспитывал стажеров, многие из которых вырастали в успешных разработчиков. В свободное время вел технический блог, находил любопытные решения, пробовал, настраивал новые инструменты. В рабочее – успешно рассчитывал мощности и конфигурации серверов для поддержания устойчивой архитектуры видеоплатформы. Добавить ко всему легкость коммуникаций: редкая общительность для традиционного типажа того времени – программистов-интровертов, шутки над коллегами мимоходом, инициация обеденных групповых вылазок командой на турники с подтягиваниями, отжиманиями и хардкордной «планкой». Последняя, к слову, показывалась им как образец, и никем более на тот момент не осиливалась к повторению.
Казалось, вот так должен выглядеть профессионал, наслоивший на хорошо усвоенные академические знания, практический опыт нескольких (да-да, даже не десяти, пятнадцати или двадцати – ему было всего тридцать с небольшим) лет работы. Каково же было мое удивление, когда я узнала, что академического ИТ-шного образования в этой истории нет и вовсе! Более того, нет даже хоть сколько-нибудь смежного технического. А по своему диплому наш лучший техлид – преподаватель, специалист физической культуры и спорта.
Те самые смежные софт-скилс из другой профессии сыграли здесь свою весомую роль. Более осознанный выбор и интерес к области, увлеченность и пробы проектов в нерабочее время позволили ему лучше остальных техлидов поддерживать актуальный уровень знаний. Успешно выступать с полезными докладами на ИТ-встречах и бегать на лыжах, побеждать в волейбольных турнирах и быть в отличной физической и профессиональной форме.
История вторая
Когда мне довелось побыть в роли руководителя отдела фронтенд-разработки, в компании остро стоял вопрос найма новых кадров. Сложность поиска верстальщиков и JS-специалистов состояла в отсутствии в явном виде таких специализаций. Приходилось или брать студентов со скамьи и обучать с нуля со всеми вытекающими, либо фильтровать огромный поток уже успевших поработать в смежных сферах с надеждой найти нужный уровень и типаж. Большинство профильных выпускников, не блиставших алгоритмическими способностями, дабы получить работу по специальности, шли в студии сайтов или подобные некрупные фирмы, попадая, как правило, во фронтенд-разработку как облегченную версию профильной работы. В то время как лучшие кадры выбирали чистое и «профильное» программирование – уходили в бэкенд. В итоге квалификация клиентских разработчиков даже спустя год-другой работы оставляла желать лучшего. Сеньоров и умудренных на тот момент не искали. Перепробовав различные техники отбора, мы в итоге пришли к популярной в известных мировых фирмах методике, где кандидату даже чисто на верстку (да-да, были такие времена, когда верстальщик и JS-программист были отдельными сущностями) помимо прочих вопросов предлагалось решить и запрограммировать некую алгоритмическую задачу.
Шли собеседования, ротировались кандидаты, разочарование росло. Никто не мог справиться с задачей на приемлемом уровне. Причем затруднения вызывало логическое мышление: способность рассуждать, строить жизнеспособную модель решения. Кандидаты, требовавшие неприличные для себя зарплаты, специалисты по искомым фреймворкам, – все терялись и оказывались не способны отойти от стандартных приемов. Они старались применить «прецедентный подход», а не находя готовых решений из своей практики (что зачастую оказывается синонимом «не вспоминая нагугленного ранее») – становились бессильны. Единственным справившимся со всеми заданиями кандидатом оказался разработчик, переехавший из другого города. Последние года два он работал в веб-студии, а до этого честно строил карьеру агента по недвижимости – иными словами, являлся профессиональным дипломированным риелтором. На данный момент, спустя несколько лет, он продолжает работать на всех наших основных проектах, участвует в создании Smart TV-приложений, видеоплеера и иных высоконагруженных сервисов.
История третья
А теперь о выпускнике кафедры машиностроения. В наших кругах телевизоры – не самая модная отрасль, потому, когда успешно поборовшим задание на разработку приложения Smart TV стал пусть и непрофильный кандидат, я была безгранично довольна. Те, кто застал времена зарождения части «smart» в составе TV (а это были не такие далекие 2010-е), возможно, помнят настоящий коэффициент IQ тех девайсов. Под капотом «умные» приложения содержали в себе обычный веб-браузер – казалось бы, что может быть проще. Но нет: видимо, опасаясь восстания машин, производители того времени прилагали значительные усилия по созданию всевозможных препятствий к торжеству ТВ-интеллекта. Документации и гайды по разработке тщательно запрятывались от незнакомцев, индусская поддержка брала недельные паузы на медитации, а сборка приложения и его тестирование на реальном телевизоре представляли собой путь из 9 кругов ада. Сюрпризы оказывались в самых неожиданных местах. Фокусы не ставились на элементы, стандартный HTML-ный select отказывался назначать выбранный элемент через JS, свойства CSS выделывали трюки уровня старых IE, а встроенные медиаплееры с их непредсказуемыми обработками сиков и сдвигов live-трансляций позволяли разработчикам медленно, но неотвратимо постигать дзен. Особенно отличался Philips, не желавший перезапрашивать и отрисовывать даже несколько небольших тумбнейлов на странице за небольшой промежуток времени и благополучно «вешавшийся» на этом так, что не срабатывала даже перезагрузка.
SDK, ОС платформ и их версии, системы сборки и тестирования на ТВ постоянно менялись, в каждом аппруве в стор оказывались какие-нибудь новые удивительные требования, и появлялись то лишний десяток полей, то дополнительные чек-листы, которые надо было заполнить. А еще требовалось подготовить 2 презентации PowerPoint с картинками каждого экрана, таблицами элементов на нем, их подробным описанием на уровне «что должны делать каждая кнопка и каждый компонент приложения». Прошедшее все муки (порядка нескольких месяцев!) разработки приложение попадало в руки прилежных корейских или индийских тестировщиков. Спустя пару недель оно неминуемо возвращалось с замечанием вроде «ваша текущая выбранная кнопка недостаточно заметно обозначает фокус на себе с расстояния нескольких метров», после чего под слезы дизайнеров рамка делалась еще жирнее и краснее, и продукт отправлялся на очередной цикл тестирования. Кстати, хочется снять кепку перед специалистами тестирования Индии и Кореи – как они проверяли функционал приложения на русском языке во времена отсутствия Google Translate по фото – для меня до сих пор остается загадкой.
Чтобы сражаться и побеждать в этой сфере, был нужен человек, разбирающийся не только в наборе качественного кода в редакторе, но и в сетевой и аппаратной частях устройств, необходимых для подключения/настройки ТВ под отладку. И именно он с последней частью справился успешнее многих. Сначала выполнил тестовое задание по написанию несложного ТВ-приложения, с нуля разобравшись со всей платформенной инфраструктурой. Затем практически единолично разработал для нашего крупного заказчика приложение с не самым тривиальным интерфейсом, платежными сервисами, VOD и live-видео. Уникальное чувство юмора и широта общения в других слоях жизни – отлично вписали его в коллектив, очертив ореолом легкости и позитивного мышления.
И хотя позднее, перейдя фронтенд-разработчиком в одну из крупнейших российских ИТ-компаний – «Рамблер», герой моей истории зарекся когда-либо иметь дело с «теликами» – заслуженного места в историях успехов непрофильных кандидатов ему уже не изменить.
История четвертая
Когда я пришла в Яндекс, больше всего меня поразило умение разработчиков молниеносно ориентироваться в любом инструментарии. Быстро пробовать, настраивать – не важно, насколько полна документация. И это-то при всеобщей редкости подобных навыков для типичного фронтендера. Казалось бы, нужно сочетать в себе познания devops, где-то становиться немного админом и бэкенд-специалистом, чтобы умело манипулировать системами выкатки и развертыванием на серверах. Среднестатистический, порой даже опытный, милд-фронтенд-разработчик зачастую стремится избегать подобной деятельности, не чувствуя себя в ней как рыба в воде и, пожалуй, слегка побаиваясь.
Герой же моей истории писал скрипты склеивания файлов, настройки конфигов будто бы между делом. Всё это получалось так же легко, как центрирование какой-нибудь банальной фронтендерской кнопки, выполняемое не первый год. Самые современные полезные инструменты были подключены к проекту по инициативе одного только его. Не успевали плавно распространиться по проекту одни из них, как в свободное время, пробуя, изучая, осознавая преимущества, он выбирал новый оптимальный с точки зрения решения некой задачи вариант и встраивал его в код.
Лучше всех знакомый с проектом, он был назначен мне ментором, когда я переступила порог новой для себя компании. Как руководитель в прошлом, я сразу оценила верный педагогический подход: преподнесение информации, немаловажный начальный ввод в курс дела, пояснения по каждой из первых задач, экскурсии по кодовой базе и полезным внутренним инструментам. Присутствовали и необходимые рассказы на вечную тему «почему именно в этом месте „так исторически сложилось“». Хотя на тот момент я работала фронтенд-разработчиком дольше него и считала себя опытнее в плане обучения сотрудников (да и имела опыт руководящей должности), – с легкой долей зависти про себя пришлось отметить профессионализм его преподавательских действий.
Поначалу мне виделось что-то непривычное в суждениях моего ментора для порой типовых фронтендерских задач. Однако поток новой информации, обрушившийся на меня в тогда еще чуждой компании, и лояльность к окружающим не оставляли времени и весомых оснований для развития своих мыслей на этот счет.
Пока разработчики других отделов десятками решали, какие средства для тестирования выбрать, с чего начать, как вообще подойти к написанию кейсов, герой моей истории успевал не только определиться, но и настроить, написать и вдобавок по собственной инициативе – интегрировать в процесс Continuous Integration. При следующей встрече не полениться набросать презентацию, демонстрирующую ключевые моменты его решения коллегам. Стоит ли упоминать, что у человека, который так горел глазами на работе и успевал так много, были и внеурочные проекты, где он не пытался зарабатывать старыми знаниями, а пробовал новинки ИТ-шной сферы, держал нос по ветру и стремился улучшить свои программистские подходы.
Когда в одной из задач потребовалось динамически менять заголовки страниц, он подсказал мне релевантную React-библиотеку. Она называлась Helmet. «Как-как?» – переспросила я, не зная на слух подобного слова и, как следствие, не найдя аналогий с решаемой задачей. «Как шлем по-английски», – доходчиво пояснил мой ментор. Английским я занималась то параллельно, то последовательно всю сознательную взрослую жизнь, пыталась читать оригиналы, смотреть фильмы, использовать для общения в поездках за границей. Да, асом не была, но всё же. Та ситуация со шлемом меня задела. Неужели всё зря, и для всех (но только не меня) очевидно, как будет шлем по-английски?
Впрочем, по этой части чуть позже я позволила себе успокоиться – когда однажды за обедом я узнала от своего наставника, что он дипломированный преподаватель английского языка и даже проработал несколько лет в школах.
Не все истории таковы.
На моей памяти было резюме кандидата, где строки о работе в должности фронтенд-разработчика в равных пропорциях чередовались со строками вида «повар-технолог» и «главный суши-мастер». И хотя, подтверждая примеры выше, с тестовым заданием он справился вполне прилично (правда, для уровня джуниора, а не искомого мидла) – мы решили не нанимать его. Всё же в здании офиса недавно нашим же гендиректором был открыт стильный ресторан, куда мы все ежедневно ходили обедать. И очень уж не хотелось быстро потерять ценный найденный ИТ-шный кадр.
Минуточку, скажете вы, там, парой страниц выше, было нечто такое, что зацепило меня, резко выбилось из общего вполне себе политкорректного контекста. Что-то такое, не очень приятное на глаз и слух. Ах да, «программисты-аутисты»… Позвольте, звучит как оскорбление! К чему же это?
Компания, в которой я провела самые яркие карьерные годы, была выстроена не то чтобы с нуля, а скорее даже с минуса. Малоприбыльный регион, недостаток высокопрофессиональных кадров. Первый офис в подвале, где ведрами приходилось вычерпывать воду. А сейчас «Инвентос» – известные каждому клиенты, серьезные решения в своей нише, команда глубоких и мыслящих профессионалов и собственное здание компании. История ее основания и личность создателя заслуживают отдельной книги. Когда я впервые услышала то сравнение – «программисты-аутисты» – из уст «отца», моему возмущению не было предела. Разве можно относиться так к своим сотрудникам, тем, кто отдает большую часть своей ежедневной жизни на благо бизнеса? Масштаб эмоций усилился атмосферой: знаменитая фраза прозвучала на ежегодном выступлении в канун новогодних каникул перед всеми трудившимися в компании разработчиками. Только позже я смогла понять, насколько жизненно и справедливо то сравнение и насколько дальновидным было его озвучить.
Признание проблемы – половина решения. Услышав подобное, мне захотелось не быть тем ограниченным человеком, не умеющим общаться с внешним миром. Да, задачи требуют концентрации, но для великих продуктов всегда приходится выходить из зоны комфорта. Выбираться за рамки, чтобы было куда расти. Достроить карту за дверцей дома и не упасть в пропасть. Мыслить нестандартно, комбинируя знания из других областей, жизненный опыт – вот что важно. А к человеку, открывшему после запуска ИТ-компании не менее успешный ресторан, свою радиостанцию, отстроившему современный офис и проектирующему научный городок, – стоит как минимум прислушаться.
«Так когда начать?» – спрашиваете вы. Будучи родителем и беспокоясь за будущее своих детей, думая, что сделанный ими выбор (или настоятельно рекомендованный вами) в пользу ИТ вечен, как набитая подростком татуировка, – вздохните и расслабьтесь. Надеюсь, приведенных примеров силы последующей (и осознанной) смены специальности достаточно. Если же вы школьник или представитель иной профессии, сомневающийся в сроках начала, то у меня для вас, как читателей этой книги, хорошие новости. Вы уже начали.
Советы в конце подраздела
Определитесь как можно раньше.
Срок вторичен, сбалансированное развитие первично. Ставьте на первое место кругозор, не жертвуйте всем ради одного.
Не беспокойтесь о четкой точке старта. Постепенно окружайте себя связанными источниками. Уже сейчас.