А я точно уже стал настоящим разработчиком?

1
707
views

Перевод статьи «Am I a “real” Software Engineer yet?».

Можно ли меня считать «настоящим» разработчиком?

Этот вопрос преследовал меня много лет. И, кажется, не меня одного. Многие люди испытывают ту же неуверенность. Они жаждут узнать, достигли ли уже определенного уровня. Достаточно ли они хороши?

Хотя «Разработчик ПО» («Software Engineer») — это стандартный тайтл, выдаваемый работодателями, у многих членов сообщества разработчиков другие стандарты. Но когда начинающий программист вливается в сообщество, ему кажется, что тайтл сам по себе является доказательством того, что разработчик — настоящий. Особенно это касается программистов без профильного высшего образования. Им представляется, что такой тайтл «выдают» только тем, кто уже зарекомендовал себя как настоящий разработчик.

Многие называют это чувство неполноценности синдромом самозванца. У разработчиков он проявляется по-разному и приводит к разным последствиям. Кого-то ломает, а кто-то может и не заметить неудобств.

В этой статье я расскажу о собственной борьбе с синдромом самозванца. Не хочу утверждать, что уже избавился от него. Просто надеюсь, что смогу пролить немного света на эту тему и помочь другим людям, переживающим те же чувства.

Примечание. Все комментарии, которые я привожу здесь в качестве иллюстраций, — реальные. Они найдены в интернете. Не все они были адресованы лично мне, но сам я слышал очень похожие слова. Уверен, что и вы тоже.

Как все началось

Для меня все началось в июле 2016 года. Я начал изучать веб-разработку — обещал себе это в новогоднюю ночь. Та карьера, что у меня была на тот момент, мне не нравилась, я хотел перемен. В общем, довольно обычная история.

На веб-разработке я сосредоточился просто потому, что слышал, будто HTML, CSS и JavaScript легко освоить. Вечерами я просиживал за туториалами на Treehouse, Lynda и Codecademy. Так прошли первые три месяца 2016 года. К апрелю мой блокнот был полон записей, а в профиле на GitHub уже было несколько статических сайтов. Но мне казалось, что этого мало. Я хотел взяться за что-то большое.

Тогда я решил создать сайт-портфолио для моей жены, она у меня продуктовый дизайнер. На тот момент это было для меня трудной задачей. Я бился над этим проектом практически четыре месяца.

Важно отметить, что, работая над сайтом для жены, я старался погрузиться в сферу технологий. Смотрел видео на YouTube, слушал подкасты, читал статьи опытных разработчиков — все это меня мотивировало. Я представлял, каково это — оказаться на их месте. Работать в технологической компании, иметь дело с новейшими технологиями и писать «разработчик ПО» в графе «Род занятий» в налоговых декларациях. Жизнь, показанная в сериале «Кремниевая долина», казалась восхитительной.

Когда в июле того же года я наконец выпустил этот сайт, моему счастью не было предела. Я сделал это! Я создал свой первый настоящий сайт, который получит настоящий трафик. Можно ли мне теперь называть себя разработчиком?

Нет, Интернет так не считает.

«Веб-разработка — это не настоящее программирование»

«Быть компетентным разработчиком — это нечто большее, чем уметь написать пару строк кода на JavaScrit…»

«Веб-разработка — не настоящее программирование. Веб-разработка имеет очень низкий порог вхождения по сравнению, скажем, с системным программированием. Чтобы сделать блог на WordPress, требуется существенно меньше знаний и усилий, чем чтобы создать операционную систему».

«Веб-разработка — не настоящее программирование», «JavaScript — не настоящий язык программирования», «фронтенд-разработчик — не разработчик» — я часто слышал все эти фразы. Несмотря на мою решимость сменить карьеру, я не был уверен в себе. Я не мог отделаться от мысли, что скептики правы.

Если бы у меня был какой-то план Б или достойная карьера, к которой я мог бы вернуться, я бы, может, вообще бросил разработку на том этапе. К счастью, я этого не сделал. Хорошо это или плохо, но у меня не было другой карьеры или навыков, к которым я мог бы вернуться, а в изучение программирования я уже инвестировал слишком много времени. Ловушка невозвратных затрат удержала меня на плаву.

Следующие 18 месяцев я полностью посвятил изучению разработки. Я уволился с работы и поселился у тестя с тещей. Все, что у меня было, я вложил в смену карьеры. Я изучал Ruby, Node, немножко Go, и создавал маленькие веб-приложения.

К январю 2018 года прошло уже два года с того момента, как я ступил на путь смены карьеры. Я изучил основы разработки, мог программировать на разных языках, начал участвовать в open-source проектах. Также у меня уже было достойное портфолио, которое я мог показывать работодателям. Я был в восторге от того, что наконец-то могу называть себя разработчиком.

«Не так быстро», — сказал Интернет.

«Разработчик» спустя всего 1-2 года? Неа».


«Если у вас нет диплома по специальности, связанной с разработкой, вы не настоящий разработчик. Нельзя просто пройти курсы и называть себя разработчиком. Разработка подразумевает знание математики, алгебры, вычислений, физики, химии, информатики, машинного обучения, алгоритмов, вероятности и статистики. А вы лишь умеете писать код (в какой-то степени)».

На этом этапе мне пришлось иметь дело со многими скептиками. И хотя подобная критика по-прежнему меня задевала, я научился игнорировать ее по большей части. Кроме того, у меня был туз в рукаве. Был еще один (финальный) шаг, который я мог сделать, чтобы отмести все сомнения: получить работу.

Да, работу на позиции разработчика. Священный Грааль. У меня будет тайтл, зарплата и признание. Больше никаких сомнений в себе, только заслуженное подтверждение моего статуса, полученное от работодателя.

В начале 2018 года я начал ходить по собеседованиям, а в марте принял свой первый оффер. Официально моя должность называлась «разработчик» («Software Engineer»). Погоня за признанием наконец была окончена.

От плохого к худшему


«Вы все еще новичок… И будете таковым как минимум следующие несколько лет. Разработчик только по тайтлу, только и всего».
«Я занимаюсь разработкой программного обеспечения 30 лет. Я разбираюсь в зарплатах и ожиданиях. Ваша история только стартовала. Если бы вы были правдивы относительно вашего опыта (т. е. его отсутствия), никто, хоть немного разбирающийся в отрасли, не предложил бы вам шестизначную зарплату (разве что в песо). Но если вы соврали, это откроется. Разница между кодером и разработчиком — в опыте. Вы можете быть кодером, но чтобы стать разработчиком, потребуются годы. Вы еще даже не начали осознавать, сколько вы не знаете. Удачи!»

Я думал, что мне уже не придется доказывать, что я настоящий разработчик, ведь у меня уже есть контракт, где это записано. Но кто же знал, что появление в моей жизни обязательств и дедлайнов только усугубит ситуацию?

Мое беспокойство достигло апогея в мой первый рабочий день. Разговоры в Slack, которые я не понимал. GitHub-репозитории с тысячами строк кода, в которых я не разбирался. Инструменты разработки, о которых я никогда даже не слышал, не то что не использовал. Моя первая рабочая неделя была сплошным стрессом.

Не поймите меня неправильно, я был очень рад попасть в окружение опытных разработчиков. В моей команде были одни из самых умных инженеров, которых я когда-либо встречал, и они были невероятно понимающими. Они учили меня и придавали ускорение. Но все равно было чертовски страшно.

Многие из моих коллег имели ученые степени, некоторые занимались программированием с подросткового возраста, а другие были основными мейнтейнерами крупных проектов с открытым исходным кодом. А я кто был? Просто парень, научившийся программировать, потому что это круто смотрелось по телевизору. Я чувствовал себя не на своем месте, и это чувство никуда не делось.

Я много работал, чтобы на деле доказать неправоту комментаторов в Интернете, но их слова падали на благодатную почву моих сомнений в себе.

Как меня вообще сюда взяли? Мне просто повезло? Или кто-то ошибся?

Я понял, что чтобы заметить свою несостоятельность, мне не нужны были комментарии критиков на Reddit: я и сам с этим прекрасно справлялся. Да, со временем я освоился в новой среде. Я начал понимать разговоры в Slack, познакомился с кодовой базой, научился пользоваться нужными инструментами. Но я все равно не мог побороть ощущение, что я чужак в чужой стране. Каждая допущенная мной ошибка лишь подкрепляла это чувство.

Я в ужасе ждал того дня, когда превышу критическую массу ошибок и кто-нибудь наконец скажет: «Да как тебя вообще на работу взяли?» Этот страх поглотил меня. Я начал читать официальную документацию инструментов, часто заходил на Hacker News и брал уроки, чтобы сдать экзамен и получить диплом по информатике. И все это я делал в надежде почувствовать, в конце концов, что я на своем месте. Что я «настоящий» разработчик. Но ничто не помогало.

К счастью, я нашел то, что сработало.

Собственное решение

Решение, которое я нашел, было простым, хотя и пугающим.

Обсуждать эту проблему с другими людьми.

Мне нужно было с кем-то поговорить об этом. Я больше не мог это держать в себе. Но при этом я не мог ни с того, ни с сего обратиться к кому-то из коллег с вопросом: «А ты никогда не чувствовал себя самозванцем?» Поэтому я начал со своих близких друзей. Но вскоре я уже обсуждал эту тему с каждым, кто соглашался слушать, включая коллег и товарищей по команде. Потому что чем больше я говорил и слушал, тем лучше понимал, что я далеко не одинок.

Как оказалось, синдром самозванца настолько распространен, что это уже просто какое-то клише!

«Еще одна статья о синдроме самозванца…»

Многие профессионалы переживали это на взлете своей карьеры. Тина Фей, Джон Стейнбек и даже Альберт Эйнштейн. Было приятно узнать, что я оказался в такой хорошей компании. Кроме того, когда я обсуждал свою проблему с одним из друзей, он высказал одну мысль, которая меня зацепила:

«Синдром самозванца плох только тогда, когда у тебя его нет. Когда чувствуешь себя самозванцем, это свидетельствует о том, что ты учишься. Чувствовать неуверенность в новой и незнакомой обстановке совершенно нормально. Проблемы начинаются, когда ты точно знаешь, что делаешь и как все работает. В этом случае ты уже больше не учишься».

В этот момент я понял, что синдром самозванца — не то, что нужно игнорировать или пытаться побороть. Если относиться к нему правильно, он может стать инструментом. Вам может показаться, что это просто какое-то дерьмо в стиле «просто измени свое отношение», но многие люди, выступающие на публике, используют похожий прием, чтобы превратить беспокойство в кураж.

Не то чтобы моя неуверенность в себе волшебным образом испарилась. До этого еще далеко. Каждый раз, когда мне поручают новый проект, паника возвращается. Пульс ускоряется, а мозг рисует картины провала. Но я уже научился воспринимать это как признак того, что я учусь и поднимаюсь к новым высотам.

Когда менеджер дает мне трудную задачу, это значит, что он верит в мои способности справиться с ней. Возможно, мне потребуется обратиться к кому-то за помощью, исследовать тему или просто выйти пройтись и успокоить нервы. Но я знаю, что в конечном итоге я справлюсь. Я по-прежнему постоянно допускаю ошибки, и так будет всегда. Это просто часть процесса.

В конечном итоге, никто не знает всего, даже в рамках своей специальности. Дэн Абрамов не знает flexbox, а Дэвид Хейнемейер Ханссон по-прежнему ищет, как пишутся методы ActiveRecord, хотя он сам их создал. Если бы совершенство было достижимой целью, Stack Overflow не был бы так популярен.

Так я уже настоящий разработчик, или пока нет?

Итак, спустя столько времени, можно ли сказать, что я уже настоящий разработчик? Кажется, LinkedIn думает, что настоящий:

Ключевые слова, использованные теми, кто искал автора.

Но куда лучший вопрос — а это вообще важно? Я не всегда увлекался технологиями, и моя история — не история становления разработчика-звезды. Но вот я здесь, и планирую остаться надолго. А всем участникам сообщества, кто имеет собственное очень ценное мнение о моем тайтле, могу сказать: называйте меня, как хотите. Разработчик, программист, скриптомалыш…

Мне больше не важно название. Значение имеет то, чем я занимаюсь. А занимаюсь я тем, что решаю проблемы при помощи кода и проектирую решения, улучшающие жизнь людей.

И что лучше всего — я чертовски хорош в этом деле.

1 КОММЕНТАРИЙ

  1. Мда, 80% разработчиков с дипломом ( и я в том числе) банально его купили. Какие глубокие знания математики и физики? Не нужны они нигде, кроме ds и геймдева. Другое дело, если у человека не хватило мозгов даже поступить на контракт и проплатить диплом, то какой из него выйдет специалист? У меня в стране почти любое б-ы-д-л-о имеет корочку.

    p. s. Речь идет только об Украине.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here