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

Я совершенно не понимаю, что делаю. Шутки в сторону.

Хорошо, может я не совсем серьезно, но я часто так чувствую. Позволь мне объяснить.

Все началось, когда ...

Мой отец познакомил меня с компьютерами в очень молодом возрасте, и самый ранний опыт программирования, который я могу вспомнить, был когда мне было около 7 или 8. У нас была подписка на журнал под названием 3–2–1 Contact . Внутри был раздел, посвященный программированию на BASIC, где можно было найти код простой программы. Я копировал этот код построчно, и в конце концов на экране печаталось что-нибудь интересное.

Кроме того, я не помню, чтобы в детстве занимался каким-либо другим видом программирования, но я определенно был компьютерным ботаником. Я посещал компьютерные выставки, набирался на различные BBS и проводил бесчисленные часы, играя в приключенческие игры Sierra и болтая на AOL.

Когда вырасту, я хочу быть дизайнером.

Еще я увлекся компьютерным дизайном с помощью таких программ, как CorelDRAW! и Microsoft Publisher. И у меня это получалось неплохо. Поэтому, когда я пошел в среднюю школу, я занялся школьной газетой, занимаясь версткой страниц. Я полностью влюбился в дизайн и закончил Рочестерский технологический институт (RIT), получив степень в области графического дизайна.

Одна из самых крутых вещей в RIT заключалась в том, что каждому студенту было предоставлено собственное веб-пространство для обмена файлами, создания личного веб-сайта или чего-то еще. Однажды вечером друг показал мне, как написать базовый HTML, а затем я приступил к созданию по-настоящему дерьмовой веб-страницы. Анимированные GIF-файлы, мигающий текст, несколько JPEG-файлов с низким разрешением и нулевой фактический контент. Но это не имело значения. HTML был моим входом в кодирование.

В дополнение к обычным занятиям по дизайну я посещал занятия по интерактивному дизайну, экспериментальному веб-дизайну и программированию для мультимедиа. Я научился использовать Dreamweaver, Flash и Director. Я набрался опыта в объектно-ориентированном программировании, написав ActionScript и Lingo.

Добро пожаловать в реальный мир.

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

Когда ситуация начала меняться, и клиенты захотели перейти в цифровое пространство, я начал разрабатывать рекламные баннеры, электронные письма и веб-сайты и вернулся к использованию Flash, HTML и CSS.

В конце концов я начал выгорать из-за художественного руководства и дизайна и понял, что мне больше нравится программировать и делать интерфейсную работу. Я оставил мир рекламы и перешел на корпоративную сторону. Я присоединился к команде UX и разработал прототипы HTML / CSS для различных приложений для новостных лент. Имея опыт дизайна, я мог быстро выполнять итерации, внося изменения прямо в браузере, вместо того чтобы возвращаться в Photoshop.

Подожди, теперь я разработчик?

После одной из многих реорганизаций компании я обнаружил, что больше не являюсь частью команды UX, а вместо этого переименован в разработчика в группу инженеров. Не буду врать, это меня до смерти напугало. Я всегда был на «другой стороне», и мне никогда особо не приходилось беспокоиться о разработке приложений. Конечно, я сделал несколько рабочих прототипов, но они, по сути, были скреплены изолентой и клеем (читайте jQuery). Я ничего не знал о том, чтобы быть разработчиком. Но, как говорится, «притворяйся, пока не сделаешь».

Я углубился в изучение JavaScript за пределами нескольких библиотек, которые я использовал. Подделал мой путь через некоторые приложения BackboneJS и попробовал React. Начал понимать, как реально добавить функциональность к оболочкам HTML / CSS, за создание которых я отвечал ранее. Я присоединился к сообществу открытого исходного кода. (Одна из моих первых проблем заключалась в том, чтобы указать на опечатку в документации Bootstrap.)

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

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

Я разработчик

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

Я изучил вопросы собеседования, убедился, что знаю разницу между call и apply, и устроился на работу инженером-программистом в AWeber. Я работаю здесь около полутора лет и уже отправил нашим клиентам множество отличных обновлений и интересных функций. Меня окружает отличная группа разработчиков, и я с удовольствием прихожу на работу каждый день.

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

Но я все еще смотрю на этот билет Jira и совершенно не понимаю, что делаю. И, может быть, это нормально.