3 практических упражнения, которые вы можете делать при выполнении любой задачи по программированию.
Есть много способов расти как разработчику, но все они требуют большого времени и усилий. Я предлагаю практические упражнения, которые могут быть частью ваших повседневных задач, без необходимости начинать собственный проект или проходить курсы.
Найдите 2 или более решения для каждой проблемы
Улучшает навык решения проблем и креативность.
Независимо от того, является ли ваша текущая задача отладкой, написанием нового кода или рефакторингом, все миссии разработчиков связаны с проблемами и решениями. Объем проблемы может варьироваться от повторного использования существующего кода до выбора базы данных.
Даже если вы уже выбрали решение, потратьте время на мысленный эксперимент.
Составьте список компромиссов и выберите решение
Улучшает расстановку приоритетов и детальное мышление.
Определите большее количество критериев, узнайте о других соображениях, почему мы должны или не должны что-то делать.
Просмотрите решения и оцените, насколько каждое решение соответствует каждому критерию. Будьте ясны в своем суждении; даже «плохое» решение должно получить в некоторых аспектах хорошую оценку.
Наконец, расставьте приоритеты для критериев — постарайтесь понять, какие аспекты являются наиболее важными для вашей компании, и выберите решение, которое максимизирует выгоды для вашего случая. Это работа технического лидера.
Техническое обсуждение с нетехническим человеком
Улучшает общение и техническое понимание.
У разных людей разные способности понимать вашу работу. Разговор с ними заставит вас уменьшить масштаб, обобщить детали в общую концепцию или увеличить детали. Я бы активно начал обсуждение или попытался объяснить кому-нибудь проблему, чтобы проверить свое собственное ее понимание.
Пример для обсуждения
Я написал 4 примера для разных типов людей, с которыми вы можете взаимодействовать, и как будет звучать объяснение.
Senior-разработчик
Более опытен, чем вы, в предметной области или умеет задавать правильные вопросы.
Презентация ему потребует от вас глубокого понимания предмета и того, что скрывается под капотом.
Я часто возвращаюсь к новым исследованиям после такого рода разговоров — и это здорово!
Я интегрировал WebRTC: добавил MAOI API, интегрировал библиотеки Janus и преобразовал WS в WSS.
Член команды/Junior-разработчик
Кто-то с техническими навыками, которыми вам нужно руководить. В данном случае нужно обобщить детали в четкие инструкции и потоки.
Я интегрировал WebRTC: добавил новый API под названием…, интегрировал библиотеку под названием… это документация…. и преобразовал веб-сокеты в защищенные веб-сокеты, я сделал это для того, чтобы…
Не разработчик, но технический специалист, например, QA или руководитель проекта.
Присутствует на обсуждениях, и вам нужно заручиться его поддержкой. Было бы лучше, если бы вы общались так, чтобы они не знали всех технических деталей вашей работы.
Интеграция WebRTC рассчитана на 3 спринта и потребует сотрудничества с backend-командой. Я хочу потратить еще 4 дня на усиление безопасности.
Не разработчики и не технические люди, такие как HR или ваши друзья
Это тот, с с кем вы можете поделиться своей работой или продемонстрировать свои качества на собеседовании, вообще не обсуждая технические аспекты проекта.
Я интегрировал WebRTC, протокол для передачи видео в Интернете. Моя работа включала сотрудничество с другими командами, где я вел обсуждение, но мы все вместе пришли к общему мнению о решении. Я также взял на себя инициативу по повышению безопасности функции.
В заключение
Я предложил 3 упражнения, которые вы можете выполнять в рамках каждой задачи разработки, которую вы выполняете, и которые помогут вам улучшить свои архитектурные навыки.