Опытные программисты тоже испытывают трудности: Облегчите синдром самозванца в качестве младшего разработчика

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

Все это приводит к распространенному среди программистов синдрому самозванца.

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

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

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

Я записал более 20 часов скринкастов того, как я создаю React-приложение в качестве подготовки к предстоящему React Job Simulator. Вы можете увидеть, какие инструменты я использую, включая Next.js, TypeScript, Storybook и GitHub Actions. Но самое главное, вы можете увидеть, что я постоянно совершаю ошибки и сталкиваюсь с проблемами (несмотря на десятилетний профессиональный опыт разработчика).

Так что позвольте мне разоблачить себя. Вот несколько выводов, которые могут облегчить ваш синдром самозванца.

Оглавление

  1. В реальности все происходит гораздо дольше, чем в «сценарных» видеороликах
  2. Опытные разработчики постоянно ищут в Google
  3. Все мы иногда сталкиваемся с простыми проблемами
  4. Выводы

В реальности все происходит гораздо дольше, чем в «заскриптованных» видео

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

Это делает видео легким для просмотра, но может исказить ваши ожидания. Но позвольте мне сказать вам, что реальность часто сильно отличается.

Другой пример: у меня ушло 10 часов (начиная с этого видео) на создание простой складной боковой панели навигации. Я бы оценил это максимум в 2 часа. Но снова и снова я сбиваюсь с пути, потому что сталкиваюсь с проблемами в приложении и настройке тестирования (например, TypeScript, Storybook, Cypress & Jest).

  • Мне требуется более 20 минут, чтобы отрисовать простую SVG-иконку в приложении Next.js и Storybook.
  • Мне требуется 30 минут, чтобы настроить псевдонимы путей в TypeScript (и Storybook). Я сталкиваюсь с множеством проблем и решаю их не путем сложной отладки, а методом проб и ошибок.

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

Опытные разработчики постоянно ищут в Google

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

Но нет, даже опытные разработчики не могут запомнить кучу всего. Вы не используете все на ежедневной основе. Поэтому вы забываете кое-что. И иногда это просто не запоминается, даже если вы повторяете это в Google снова и снова.

Вот несколько примеров из моих скринкастов:

  • Здесь мне нужно посмотреть, как работает контекст React. Я не так часто его использую, поэтому просто забываю. Вместо гугления мне также нравится просто копировать & вставлять из другого файла в проекте.
  • Здесь я застрял на простой проблеме конфигурации TypeScript. На самом деле решение было простым (просто отключите флаг isolatedModules в файле tsconfig). Но я не мог увидеть лес за деревьями. Вместо того чтобы просто посмотреть документацию (один из лучших результатов в Google), я наугад открывал учебники и вопросы на StackOverflow только для того, чтобы остановиться на хакерском обходном пути.

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

Вы можете подумать: «Конечно, опытные разработчики тоже борются. Но проблемы, с которыми они борются, гораздо сложнее!».

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

Вот несколько примеров моих скринкастов:

  • Здесь я удивлен, что элемент шире, чем в дизайне. Я решаюсь на странное обходное решение с помощью CSS calc(width - padding) только для того, чтобы позже найти этот комментарий:

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

Выводы

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

  • Внимательно читайте сообщения об ошибках. Часто решение вашей проблемы находится внутри.
  • Google — ваш друг, но используйте документы как отправную точку вместо того, чтобы сразу искать учебники.
  • Если вы застряли, сделайте шаг в сторону, прогуляйтесь, вздремните или сделайте то, что вам нравится. Решение проблемы часто приходит, пока ваш мозг отдыхает.
  • Пересмотрите свой собственный код после некоторого перерыва. Вы получите новый взгляд на свой код и сможете легче обнаружить проблемы.
  • Отлаживайте проблемы систематически, а не изменяя случайный код повсюду.

Оцените статью
devanswers.ru
Добавить комментарий