Мой первый год в качестве инженера-программиста: ретроспектива

Меня зовут Ширли, я дизайнер одежды, а затем инженер-программист, а в настоящее время возглавляю отдел покупателей в Grailed.

Год назад я только что закончил курс иммерсивной веб-разработки в школе Flatiron. Я познакомился с инженером из Grailed, прошел собеседование и согласился на свою первую большую роль в разработке программного обеспечения. И я был напуган.

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

Некоторые технологии / вещи, которые я узнал:

vim

В течение первой недели после начала работы я понял, что почти все остальные разработчики используют vim. Летали по вкладкам, почти не касаясь мыши. И я хотел быть похожим на них! Vim сложен. Но единственный способ научиться этому - это использовать. Я помню, как мне приходилось объединять программу с моим менеджером, и я пробирался через ярлыки, которые я определенно еще не запомнил. Однако в настоящее время мой рабочий процесс эффективен и удобен - я нашел отличный компромисс, используя Atom с привязками клавиш к vim.

Ключевое обучение: улучшите свой рабочий процесс. Это сделает вас более быстрым и счастливым разработчиком.

Потоковый ввод

В Grailed наш интерфейс построен на React и Redux. Благодаря огромному количеству Javascript мы всегда ищем инструменты, облегчающие разработку. Мы используем Flow, средство проверки статических типов для Javascript, чтобы обеспечить некоторую безопасность для наших типов. Это не совсем то, что делает Javascript типизированным языком, но это маленький шаг к нему, и он позволяет очень легко смотреть на функцию и точно знать, что нужно передать и вернуть.

Ключевой вывод: когда 15 разработчиков работают с одной и той же кодовой базой, ОЧЕНЬ важно сделать код читабельным.

Lodash / Функциональное программирование

До того, как я начал работать в Grailed, я никогда особо не входил в библиотеки вроде underscore.js или lodash. Lodash довольно часто используется в нашем стеке, особенно lodash / fp. Я впервые вижу что-то вроде:

compose([
  map(prop('value')),
  filter('searchable'),
  prop('filters.stratas'),
]);

Я понятия не имел, на что смотрю. Функциональное программирование было для меня совершенно новым стилем, но я принял вызов. Я всегда смотрю, как я могу вытащить compose.

Ключевой вывод: всегда будет что-то, чего вы не знаете.

Другие интересные вещи, которые я узнал:

Некоторые вещи, которые я сделал:

Посетил конференцию

В июне прошлого года я посетил dinosaur.js в Денвере с двумя моими коллегами. Grailed имеет отличную политику проведения конференций и призывает разработчиков посещать хотя бы одну конференцию в год. Я никогда раньше не был на конференциях, и это был потрясающий опыт. Состоялось множество интересных бесед, несколько ценных семинаров и большое сообщество единомышленников. Быть в компании сотен разработчиков - это безумие, и я настоятельно рекомендую вам поискать это.

Ключевой урок: если у вашей компании есть возможности посещать конференции, воспользуйтесь ими!

Опрошенные кандидаты

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

Ключевые выводы: если культура важна для вас, найдите компанию, в которой культура так же важна для них.

Организовал обед и обучение

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

Ключевые выводы: вам есть чем поделиться. Поделитесь этим.

  1. Примите страх. Начать карьеру инженера-программиста непросто. Вы столкнетесь с бесчисленным множеством вещей, о которых не знаете, вы закроете сайт и выйдете из своей зоны комфорта. Знайте, что все были там.
  2. Будьте любопытными - никто не знает всего. Приложите честные усилия, чтобы разобраться во всем самостоятельно, но не бойтесь задавать вопросы. Обещаю, ты не будешь выглядеть глупо. Когда вы видите в базе кода что-то, чего не понимаете, спросите кого-нибудь, кто понимает. Вы получите гораздо больше от этого и намного быстрее.
  3. Шаг вперед - особенно в среде стартапов, некоторые вещи могут не входить в вашу ответственность, но у вас есть возможность сделать это. Будьте гибкими и готовы помочь, и это принесет вам только пользу в долгосрочной перспективе.
  4. Подумайте о пользователе. Чрезвычайно важно сочувствовать своему пользователю. Возможно, для вас имеет смысл делать что-то одним способом, но всегда помните, что вы строите вещи не для себя, вы строите для миллионов людей, которых вы не знаете.
  5. Знайте свои сильные и слабые стороны - и будьте готовы признать их. Мне еще так много нужно узнать о базах данных и производительности. Я все еще не совсем понимаю, как точно работает webpack. Я должен больше говорить и быть более активным в предоставлении обратной связи. Но я также хорошо обдумываю проекты. Я могу быстро создать то, что вы хотите, в React. И я стараюсь не забывать о продуктах и ​​разработках. Никто не идеален, но знайте свои слабости и работайте над ними.
  6. Приветствуем вас. Будьте открыты и восприимчивы к обратной связи, постарайтесь ее обработать и действительно обдумать, прежде чем реагировать. Культура обратной связи поможет вам стать лучшим инженером и лучшим сотрудником.

Если вы хотите присоединиться к нам в Grailed, мы ищем! Ознакомьтесь с нашими вакансиями здесь.