Перезагрузка: как гуманитарию стать инженером
БудущееНекоторые считают, что мода на программирование зашла слишком далеко. У бывшего социолога, а ныне разработчика софта Кайла Уорнека — совсем другое мнение.
Подрывать основы — это в Кремниевой долине любят. Это касается и карьеры. Я усвоил этот урок в 2013 году. Оставался месяц до моего тридцатилетия, полтора месяца до моей свадьбы. Я работал в прекрасной продуктовой команде в продвинутой софтверной компании. Передо мной стояли интересные проблемы, у меня были умные и приятные коллеги, а также масса бесплатной еды. Кремниевая долина в лучшем виде.
Я пять лет пытался добиться успеха в Долине, и эта работа казалась моим большим прорывом. Но не прошло и года после моего устройства туда, как компания закрыла проект, продала относящиеся к нему активы и уволила меня.
Сначала меня не волновал поиск работы. У меня было хорошее резюме, собеседования всегда проходили удачно. Я решил, что легко найду работу по управлению продуктом в другой компании. Но шли месяцы, и мой оптимизм начал увядать. К осени я подал резюме на 104 вакансии и не получил ни одного предложения.
После таких обескураживающих результатов я стал пересматривать доступные мне варианты. Было ясно, что я не соответствую рынку. Если бы я умел программировать… Тогда бы жизнь была проще. И я решил взяться за это.
Я и программирование
В Кремниевой долине уметь программировать — значит иметь влияние. На каждую позицию по управлению продуктом приходится примерно шесть позиций разработчиков. Компании часто жалуются на нехватку инженерных кадров и готовы таким людям хорошо платить.
Есть и другие плюсы. Я, гуманитарий, заметил, что инженеры сразу получают определенное уважение (совершенно незаслуженно). Незнакомые люди по определению считают, что программисты — умные люди. Менеджеры и коллеги исходят из того, что время программистов более ценно. На совещаниях мнения разработчиков имеют больший вес. Им сходят с рук недостойные шутки, опоздания на работу, отсутствие дресс-кода и взаимодействия с другими человеческими существами.
Но несмотря на все прелести такого отношения, я никогда не видел себя программистом. И мне казалось, что в городе разработчиков, готовых есть абы что и запускать миллиардные стартапы, я неуместен. У меня был диплом социолога, я не брал ни одного курса по компьютерным наукам. Я не смотрел фантастические фильмы, не смеялся над гиковскими шутками. Эта культура ценит людей, которые повернуты на чем-то, а мне просто нравилось смотреть на птиц, читать книги, заниматься спортом. Я работал в продажах и в политике и считал своей самой сильной стороной навыки коммуникации.
Но давление рынка вынуждало меня пересмотреть свою идентичность. Похоже, что в отсутствие изменений мои возможности были ограничены.
В каком-то смысле это было подходящее время. Помимо высокого спроса на программистов, появилась масса ресурсов, помогающих людям овладеть соответствующими навыками и получить работу в Долине — онлайн-курсы (от Udacity до Coursera и Codecademy), бесплатные руководства и учебники. И все больше программ, называющих себя учебными лагерями (boot camp) по программированию. Эти программы брали по $15-20 тысяч с человека и обещали, что их выпускники за три месяца получат востребованные на рынке навыки разработки. У них была впечатляющая статистика: больше 90% получали работу, причем с высокой зарплатой, а остальным обещали вернуть деньги. Я как-то работал с выпускниками одной из этих программ.
И все-таки меня это пугало. Похоже было, что полностью погрузиться в атмосферу учебного лагеря — это мой лучший шанс научиться программировать, но я боялся, что потрачу массу денег, времени и энергии, но никак не продвинусь. Тем не менее, других вариантов не было, так что я записался в Hack Reactor — учебную программу в Сан-Франциско.
Смириться с ошибками
Первое, что я понял: учиться программированию сложно. Это отнимает сотни часов. Большую часть этого времени вы проводите, разглядывая сообщения об ошибках. Программа практически никогда не работает правильно в первый раз. Казалось бы, человеку, который получил 104 отказа подряд, стоило привыкнуть к поражениям, но я нервничал — особенно когда я был совершенно не уверен, что смогу избавиться от этого сообщения об ошибке.
Мне помогло общение с другими участниками программы, которые тоже нервничали. В моей группе было тридцать человек, в том числе юрист, нейробиолог, вертолетный механик и профессиональный игрок в видеоигры, возраст участников расходился от двадцати с небольшим до сорока с лишним. У некоторых уже было образование в инженерной или сходной области, но они хотели освежить свои навыки. Другие вообще не учились в университете. Общим для нас было одно: мы хотели помочь друг другу выжить.
Мы собирались по шесть дней в неделю в течение трех месяцев. Официально учебный день продолжался с 9 утра до 8 вечера, но все сидели над заданиями до поздней ночи. И эта практика принесла результат: к концу программы мы все разработали полноценные веб-приложения.
Главный урок Hack Reactor — примириться с сообщениями об ошибках. Нас все время заставляли работать над проблемами, которые мы не знали, как решить. Нас обучили основам компьютерной науки, но основной акцент был на терпении, скромности и упорстве. Недостаток традиционного образования компенсировался настойчивостью.
Но чем дальше, тем больше нового передо мной открывалось: умопомрачительное количество языков программирования, библиотек и инструментов. К концу программы я задумывался: сколько же мне еще нужно узнать, прежде чем я могу назвать себя разработчиком?
Перезагрузка карьеры
На этот вопрос есть совершенно практический ответ: вы стали разработчиком, когда вы можете пройти собеседование для разработчиков. А это четырех-шестичасовая сессия, где кандидатов просят написать код для решения самых разных задачек. Зачастую это надо делать, стоя у доски: вы пишете решение, а интервьюеры его оценивают. У этого процесса масса вариаций, но основа примерно такова.
У этого метода есть масса проблем. Он не показывает, как инженер работает в команде, как он работает над сложным и большим проектом. Этот метод придает слишком много значения уверенности к себе и заставляет делать серьезные выводы о кандидате на основе маленького кусочка кода. Даже у отличного разработчика бывают плохие дни.
Но этот метод собеседований тесно связан с демократическим мифом Кремниевой долины. Это идея меритократии. Компании могут игнорировать формальные достижения, прошлый опыт, одежду кандидата, форматирование резюме и все остальное. Многие компании по-прежнему отбирают кандидатов по наличию диплома в компьютерных науках, по их онлайн-портфолио и предыдущему опыту, но все чаще они пробуют и «нетрадиционных» инженеров. Все, что нужно — пройти тест.
После шести месяцев подготовки и трех месяцев учебного лагеря я был готов попытаться. Началось все неудачно. На первое собеседование я пришел в огромную, известную компанию — и все провалил. Второе было не сильно лучше. Но к моему удивлению, дальше дела пошли на лад. Я успокоился и привык отвечать на вопросы в условиях серьезного давления.
Уже через несколько недель я получил хорошие предложения от нескольких компаний. Я, конечно, еще не чувствовал себя настоящим разработчиком, но тот факт, что мне были готовы платить за написание кода, подсказывал, что план сработал. И мое восприятие себя стало совпадать с реальностью только несколько месяцев спустя.
Дорогу гуманитариям
Теперь я знаю, что значительное число разработчиков софта не имеют соответствующего диплома. По одному опросу, их даже больше 50%. Сколько бы таких людей ни было, среди них мой прошлый начальник и многие отличные инженеры, с которыми я работал.
Учебные лагеря — тема спорная, но научиться программированию самостоятельно вполне реально. Многие стартапы из Долины считают, что если вы научились программировать без обучения в университете, это показывает, что вы человек мотивированный, устойчивый, любопытный и изобретательный. Именно такие навыки и нужны работодателям.
Кроме того, от инженеров все чаще ждут опыта в дизайне, понимания бизнеса и управления проектами. Это должны быть люди заинтересованные и способные сотрудничать с работниками из других областей. По моему опыту, компании теперь ценят эти навыки не меньше, чем традиционное обучение в области компьютерных наук. И тот факт, что инженеры вроде меня имеют опыт в какой-то другой области, теперь все чаще рассматривается как преимущество.
Прошло больше двух лет с тех пор, как я стал разработчиком. Мне все еще порой кажется, что я надел какую-то маскировку. Но я уже получил несколько продвижений по службе, мой уровень ответственности вырос, а потом я перешел работать в другую компанию.
Я редко рассказываю о своем учебном лагере коллегам, опасаясь, что они начнут оценивать меня с высоты своих университетских дипломов. Но когда я все-таки упоминаю Hack Reactor, мне приятно видеть удивление на лицах коллег: удивление, что я все-таки порой понимаю, что делаю. «Да, — думаю я. — Я тоже удивлен».
Думая о времени, которое я потратил на подготовку к этой работе, я поражаюсь, как мне повезло, когда я сделал этот шаг. У меня не было детей, практически не было долгов, меня поддерживала жена, и неподалеку находились крупнейшие технологические компании мира. И несмотря на все это, я колебался.
Главное, что я понял: Кремниевая долина постоянно меняется, со мной или без меня. Я мог держаться за то, что умел, и отстать, или попробовать что-то другое. В конечном счете я пришел к выводу, что быть разработчиком — это прежде всего практика. Для меня главным вызовом было дать самому себе разрешение на эту работу.