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

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

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

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

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

Предложение
Я предложил сосредоточиться на фундаментальном. Фреймворк программирования, такой как AngularJS, может устареть за несколько лет, но фундаментальные, такие как

  • ТВЕРДЫЙ
  • Чистый код
  • Высокая когезия, низкая тесная связь
  • ЦЕЛОВАТЬ
  • ЯГНИ
  • TDD
  • Другие хорошие практики кодирования…

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

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

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

Знания о разработке программного обеспечения можно разделить на 4 категории (я слышал об этом на курсе Pluralsight, и я пишу это по своей памяти и собственному пониманию, поэтому это может быть не на 100% точным).

  • Фундаментальные — это базовые знания, которые не устаревают легко и часто не зависят от языка/фреймворка программирования. мы можем ежедневно применять этот вид знаний, например, передовую практику, о которой я упоминал выше. SOLID, чистый код, TDD и т. д.
  • Технические — это какие-то специфические знания о конкретном языке программирования/фреймворках/технологии. Если вы знаете это очень хорошо, вы можете решить некоторые краеугольные случаи конкретной технологии или вы можете знать очень продвинутую функцию языка программирования, который мы редко используем.
  • Навыки - Способность применять то, что вы уже знаете, для решения проблем. Это могло бы от практики это снова и снова и индивидуальной изобретательности.
  • Инновации — способность формулировать новые знания на основе комбинации имеющихся знаний и опыта.

На основе правил 80/20. Мы должны прямо сейчас работать над фундаментальным, так как он даст наиболее значимый для нас результат.

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

Я действительно надеюсь, что смогу реализовать цель, состоящую в том, чтобы у большинства программистов были прочные основы хорошей практики кодирования. Это все равно стоило бы, если бы нам пришлось потратить год на повторное обучение SOLID и Clean Code, если бы это помогло большинству людей понять это полностью.