2013-10-31
Мой профессиональный путь программиста со стороны выглядел так:
Начала делать первые веб-сайты в 15 лет, изучала программирование и веб-дизайн в технической школе, получила высшее образование в сфере информационных технологий, проходила стажировку в Amazon, писала код, который потом использовали миллионы людей, основала свой стартап по разработке ПО.
Всё вроде бы гладко, но я до сих пор не ощущаю себя хорошим программистом.
Вот как я сама воспринимала свой профессиональный путь:
В институт я поступила абсолютно случайно. Получала высокие оценки только потому, что у нас не было очень сложной программы обуччения. Работу я получила только потому, что на собеседовании меня спрашивали о тех вещах, которые я знала. Мою производительность оценивали только потому, что менеджер грамотно распределял задачи. Хорошо успевала в учёбе и работе только потому, что мне помогали друзья-программисты.
Глубоко в душе я думаю, что мне кругом улыбалась удача, и что когда-нибудь всплывёт страшная правда, и все узнают, что никакой я не гениальный программист. Я постоянно боюсь, что мне перепадёт задача, с которой я не справлюсь, или баг, который я не смогу исправить. И длинный список языков и фреймворков, которые я знаю, законченных проектов и выполненных сроков меня не может убедить в обратном.
Это и есть синдром самозванца: внутренний страх того, что все твои знания и умения — вовсе не твои достижения, а лишь иллюзия, и что когда-нибудь тебя, такого коварного, разоблачат. Вообще этот синдром очень присущ женщинам, которые, какими бы успешными они ни выглядели, всё равно глубоко внутри себя недооценивают.
Как синдром самозванца применяется к программистам?
В моей голове есть определённый образ хорошего программиста. Я этому образу совершенно точно не соответствую. Мой репертуар горячих клавиш весьма скуден. Меня нельзя назвать сенсеем, посвящённым в самые таинственные уголки языков программирования. Я не умею участвовать в холиварах между сторонниками C++ и JavaScript. В списке моих хобби нет проведения академических исследований. Я не забываю пообедать в процессе работы. В конце концов, я не смотрела ни одного эпизода Star Trek…
Хороший программист должен столько всего знать, а я знаю так мало. Именно поэтому я сказала себе, что программирование — это, наверное, не то, чем я умею заниматься. Поэтому в своём первом стартапе я решила занятья маркетингом. Я продолжала писать код, но только на фронтенде, а не крутой хардкорный код на серверной стороне.
И вот как-то раз мой коллега, тот, кого я считала поистине отличным программистом, который мог наизусть продекламировать стандарт ANSI C, — вот этот великий человек сказал мне, что он восхищён кодом на JavaScript, который написала я.
И тут что-то в моей голове начало проясняться.
Вот какая истина мне открылась:
В программировании есть два затыка
Первый состоит в том, что учиться приходится на ходу. Технологии меняются с такой стремительной скоростью, что мы их изучаем в процессе применения. Из-за этого нам постоянно кажется, что мы чего-то не знаем, не успеваем за развитием сферы и в целом тупим.
Второй затык в программировании связан с тем, что разработчику постоянно приходится ошибаться. В других сферах, возможно, человек может ощутить себя достаточно компетентным, набирая опыт и тренируясь на практике. При написании кода разработчик то и дело совершает ошибки, понимает, что что-то не то, пробует что-то другое, совершает очередные ошибки — и так до тех пор, пока наконец всё не заработает. И это вне зависимости от опыта. Единственная разница между опытным программистом и новичком состоит в том, что опытный программист знает больше мест, где можно ошибиться.
Пока я не додумалась об этих двух особенностях программирования, я была уверена, что я недостойна называться программистом, несмотря на видимые успехи. Я была так поглощена мыслями о том, чего я не знаю, что совершенно забыла о тех вещах, в которых стала специалистом. Ощущение собственной неполноценности просто взяло и вычеркнуло из моей жизни 10 000 часов, проведённых за написанием кода.
Со временем я поняла, что я и сферический хороший программист в вакууме— это совместимые понятия
Синдром самозванца взрастил во мне глубокий страх совершить ошибку. Я боялась задавать вопросы, сказать что-нибудь глупое, показаться людям некомпетентной дурой. Да, и будучи единственной женщиной-программистом в команде, я боялась ляпнуть что-то, что позволит команде сказать: «Женщины! Что с них взять…». Я избегала задач, для которых, как мне казалось, у меня нет способностей, хотя единственный способ стать лучше — это практика. Я распределяла задачи на два класса: «Я смогу» и «Я не смогу», и воспринимала эти искусственные категории как статичные и изолированные.
Это большая ошибка — не пробовать что-то новое только из-за страха не справиться.
Два года назад я снова стала полноценным программистом. Оказалось, программирование у меня действительно получается лучше, чем маркетинг. Изучила iOS, Ruby on Rails, чтобы быть в тренде. И только спусть десять лет опыта и несколько десятков тысяч строк кода, написанного вместе с коллегами, я наконец поверила в то, что я, чёрт возьми, хороший программист.
Перевод: Люся Ширшова. По материалам блога Alicia Liu на Medium.com.