Профессиональный рост разработчика

Процесс изучения конкретной технологии (языка программирования)

1. Изучение базового синтаксиса. Уверенное понимание всех ключевых слов языка (keywords), в каких случаях они используются и какие существуют особенности синтаксиса (например for может использовать с вариативным количеством параметров; if в качестве выражения принимать строки и тп.)

2. Изучение стиля (Code Style) и лучших практик языка. У каждого языка есть своя философия, не умно использовать философию из других знакомых вам языков (например Fat model thin controller в rails и тп)

3. Изучение стандартных фреймворков. Например для Java это могут быть стандартные библиотеки, Spring, Hibernate.

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

5. Просмотр продакшн кода качественно написанных проектов (eg Chromium, Gitlab, Minix). Выписываем находки типа используемые библиотеки, именование файлов/классов/методов, шаблоны структуры кода, конструкции языка и подходы (например Reactive фреймворки, Тестовые фреймворки, Форматы комментариев, Store, etc). Особое внимание уделяем инфраструктуре проекта, процедурам CI/CD, тестовым фреймворкам и системам авто документирования (eg Swagger, Gitbook)

6. Расширяем свой кругозор и выписываем все что относится к используемой вами технологии (коллекционирование) и за ее пределами для дальнейшего изучения (e.g. для Node разработчика ESLint, WorkerThread, AntDesign, Styled Components). Изучаем смежные темы которые делают проект продуктом: такие как микро анимации, пиксел перфектные компоненты, адаптивный дизайн и адаптивные изображения, стилизованные компоненты, понимание работы hidden DOM, BFF, GraphQL.

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

Дополнительные источники

  • Пятиступенчатая модель умственной деятельности, задействованной в ценленаправленном приобретении навыков Стюарта Дрейфуса

Last updated