Я попал в программную инженерию.

Мне это нравится, и я думаю, что у меня неплохо получается. Но я определенно не сразу выбрал это в качестве карьеры. Я не получил свою первую постоянную работу в качестве разработчика, пока мне не исполнилось 27 лет.

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

Сегодня я хочу рассказать свою историю, чтобы помочь другим инженерам на их пути. Я надеюсь, что вы понимаете, что нет «одного способа» стать инженером-программистом.

Как бы вы это ни делали; независимо от вашего возраста, пола или происхождения; у тебя отлично получается!

Творчество в старшей школе

Я впервые столкнулся с кодом, когда работал с веб-сайтами в старшей школе.

Для тех из вас, кто думает: «Чувак, у него была фора!» подожди секунду.

У меня был хороший друг, который очень хорошо программировал. Он создал несколько впечатляющих проектов на PHP и JavaScript, когда мы еще учились в школе. Мой друг был тем, кто действительно любил программировать и был хорош в этом. (Позже он перешел на работу в Apple и помогал создавать первые прототипы системы распознавания отпечатков пальцев.)

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

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

Уроки

Это нормально. Играть. Учитесь на ходу.

Сделайте перерыв в программировании и займитесь чем-нибудь другим, если это не приносит удовольствия.

Университет

В университете я изучал урбанистику.

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

Во время учебы в университете я много писал. Я почти не занимался математикой или кодированием.

За исключением двух классов:

  • На одном курсе я изучил ГИС и инструменты для статистического анализа геопространственных данных. Мы будем использовать эти инструменты для создания карт и анализа различных городских данных (например, о населении, загрязнении воздуха, ценах на жилье и т. д.).
  • На последнем курсе университета я прошел курс статистики для старших классов, чтобы выполнить требование по математике. Этот курс имел для меня тонну смысла. Статистика была одним из моих любимых предметов, хотя это был последний семестр моего последнего года обучения.

Сменил бы я свой университетский опыт на изучение информатики? Нет!

Уроки

Следите за тем, что вам интересно!

Как мы вскоре увидим, мой опыт урбанистики впоследствии очень пригодился. Если бы я с самого начала занимался чистой информатикой, я бы упустил много интересных вещей в своей жизни!

Если вы изучали что-то кроме информатики, это может быть преимуществом, а не недостатком!

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

Вашингтон

После университета я переехал в округ Колумбия, чтобы работать в городе.

Там я помогал собирать, анализировать, публиковать и рассказывать о демографических данных и данных о недвижимости в городе. Мои навыки работы с ГИС очень пригодились, и благодаря этой работе я многое узнал о геопространственном анализе.

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

Это было мое первое знакомство с администрированием баз данных. Более того, я написал несколько простых макросов Excel на языке VBA, чтобы автоматизировать работу. Так что это было и мое первое знакомство со сценариями.

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

Уроки

Воздействие кодирования может проявляться во многих формах.

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

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

Я благодарен за это умение.

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

Уганда

У меня была возможность переехать в Уганду на 6 месяцев.

Мой партнер в то время выиграл исследовательский грант Фулбрайта. Итак, я уволился с работы в округе Колумбия, и мы переехали в Гулу на севере Уганды.

Это был отличный опыт, и мы познакомились с замечательными людьми. Пока я был там, я начал заниматься фрилансом, чтобы заработать немного денег.

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

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

Уроки

Рисковать — особенно в молодости — здорово. Часто это окупается.

Рискуя и пробуя новое, вы учитесь и растете. Вы видите мир по-другому. Если у вас есть возможность попробовать что-то новое, сложное или уникальное, воспользуйтесь ею!

Вы не пожалеете о своих воспоминаниях и уроках, которые вы извлекли.

Бруклин Фриланс

После Уганды я переехал в Нью-Йорк — живу в Бруклине.

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

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

Иногда было весело! Это также предлагало большую гибкость. В то время я каждое лето брал 6 недель отпуска, чтобы жить в Италии (подробнее об этом в другой раз).

Мне нравилось заниматься фрилансом, но это также было стрессом. И одинокий.

Уроки

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

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

Я хотел этого при следующей возможности.

куб

Я присоединился к крошечному стартапу с большим потенциалом.

В моем интервью с техническим директором он сказал, что я буду их первым инженером по бэкенду. Сотрудник №3.

Мы вырастили продукт с нуля. Я многое узнал об инженерном коде и коде доставки. Поскольку я присоединился к нам так рано, я был в состоянии носить много шляп и видеть все стороны приложения.

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

Я был техлидом в своей команде. Итак, я провел бесчисленное количество сеансов парного программирования. Вместе с менеджером проекта мы определили новую техническую работу для команды. Я разработал многие основные функции, составляющие продукт Cube.

Уроки

Нет равных тому, сколько вы узнаете, если присоединитесь к стартапу на ранней стадии.

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

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

Мехико

Я уволился с работы без плана.

Я выгорел и знал, что мне нужно бросить курить. В Cube команда слишком полагалась на мои знания. Уход был лучшим способом, которым я мог помочь команде, даже если это было бы болезненно.

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

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

Мы продали все наши вещи, собрали чемоданы и полетели в Мексику!

Это было потрясающе. Мексика потрясающая. Мы любили еду, музыку, парки, искусство, танцы и язык. Просто перерыв, в котором я нуждался от всего.

Уроки

Время от времени берите творческий отпуск. Думайте об этом как о мини-пенсии.

Не ждите, пока вы состаритесь, чтобы тратить время и путешествовать. Сделайте это сейчас, пока вы молоды и можете наслаждаться этим!

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

Индиго

В последние недели моего пребывания в Мексике я брал интервью.

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

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

И это то, что я делаю сегодня!

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

Уроки

Смысл и цель вашей карьеры программиста очень важны. Это нормально, если вам потребуется некоторое время, чтобы найти эту цель, но держите ее в глубине души.

Я не имею в виду что-то фантастическое в слове «найти свою страсть».

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

Дополнительные ресурсы

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

Join Medium for $5 - Access all of Medium + support me & others!