Как мы можем улучшить общее образование и обучение программистов? [закрыто]

13

На прошлой неделе я только что посмотрел это потрясающее интервью Кевина Роуза из Phillip Rosedale из Second Life.

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

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

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

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

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

Давайте посмотрим на The Joel 12 Steps.

Джоэл Тест

Вы используете контроль версий?

Вы можете сделать сборку за один шаг?

Вы делаете ежедневные сборки?

У вас есть база данных ошибок?

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

У вас есть актуальное расписание?

У вас есть спецификация?

У программистов тихие условия труда?

Используете ли вы лучшие инструменты, которые можно купить за деньги?

У вас есть тестеры?

Пишут ли новые кандидаты код во время интервью?

Вы проводите тестирование юзабилити?

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

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

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

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

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

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

Например, какой процент ваших менеджеров поощряют вас посещать конференции и даже платят ли они за это?

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

Таким образом, суть этого вопроса состоит в том, чтобы зажечь многое из того, как мы можем лучше тренироваться, учиться и управлять?

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

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

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

Я имею в виду, хотим ли мы, как индустрия, восприниматься как просто сменные винтики?

Спасибо...

crosenblum
источник
+1: я думаю, что это был Карл Франклин из .NET Rocks, который однажды заметил, что индустрия программирования "отстой в ученичестве". Я надеюсь, что я правильно приписал эту цитату; но я, со своей стороны, полностью согласен с этим мнением. Я действительно не знаю, как кандидаты начального уровня продвигаются по карьерной лестнице в наши дни.
Джим Г.
Спасибо за отличные комментарии. Но одна из моих целей - помочь разбудить гигантов нашей отрасли, что нам нужны более совершенные образовательные механизмы, и я просто не думаю, что конференций и колледжей достаточно. Не уверен, что правильный ответ, хотя.
crosenblum
Моя цель не состоит в том, чтобы продвигать конкретные рамки или методологии, моя цель состоит в том, чтобы подтолкнуть больше образования и обеспечить поддержку программиста.
crosenblum
Любой может попытаться выучить и развить навыки, у большинства нет необходимых атрибутов; но сделай это все равно, чтобы наши отрасли стоили.
Orbling
У вас есть ссылка на интервью? youtube.com/watch?v=irF-V9RUuX, а этот?
Лукаш Мадон

Ответы:

13

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

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

2) Перестаньте считать себя программистом в компании X и почувствуйте себя профессионалом, предоставляющим услуги компании X. Если вы считаете себя профессионалом, с вами будут обращаться как с профессионалом. Если нас рассматривают как сменные винтики, то это потому, что мы действуем как сменные винтики.

3) Университеты должны измениться. У них должен быть начальный 2-летний период базового образования в области компьютеров, за которым следует выбор. Информатика или вычислительная техника. И инженерному делу нужны профессионалы, которые работают в поле каждый день, а не те, кто просто пишет статьи. И то, чему учат, должно быть практичным, чтобы вы могли взяться за дело на следующий день после выпуска. Может быть, есть программа ученичества для тех, кто не проходит программу обучения.

4) Редактировать: это было немного разглагольствования. Я имел в виду, что у всех нас есть чему поучиться друг у друга, независимо от возраста и опыта.

5) Отчасти связано с пунктом 2. Перестаньте считать своего работодателя ответственным за вашу карьеру. Вы. И только ты. Если вы хотите пойти на конференцию, заплатите за это сами, если ваша компания этого не сделает. Откладывайте деньги каждый год специально на книги, обучение и профессиональное развитие. Если вы ждете от своего работодателя, чтобы отправить вас на обучение, вы будете ждать долго. Время, потраченное на просмотр ваших навыков, становится неактуальным. Не делая достаточно, чтобы позволить себе это? Сменить работу.

6) Нам нужно быть честными с собой и с нашими коллегами-программистами. Программирование сложно. Очень тяжело. Я все еще вижу рекламу компьютерного обучения с богатством, гарантированным после окончания учебы. Это приводит к тому, что многие люди, которые просто не имеют квалификации или, что еще хуже, не имеют никакого реального интереса, кроме денег. Нам нужно найти способ побудить их переосмыслить свои карьерные планы.

На данный момент я думаю, что моя голова вот-вот взорвется, поэтому я сделаю вывод.

Отличный вопрос! Я с нетерпением жду, чтобы прочитать больше ответов.


источник
3
+1 за баллы 2 и большинство из 5. Это знаменательный момент, когда вы понимаете, что ваш работодатель нуждается в вас больше, чем вы нуждаетесь в них.
Карл Норум
@ Карл, это действительно прекрасное чувство.
+1 за замечательный вопрос замечаний. Полностью согласен. Я также полностью согласен с пунктами 2 и 3.
KeesDijk
Я не вижу тенденции к коммодитизации в ближайшем будущем. Тенденция в большинстве магазинов корпоративного программного обеспечения заключается в гиперспециализации ролей (иначе говоря, воровство).
bit-twiddler
1
Но экономика может подтолкнуть нас к работе, где у нас не так много свободы или выбора.
crosenblum
1

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

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

Практики, которыми вы пользуетесь, должны основываться на анализе и экспериментах над тем, что заставляет вас работать лучше. Их не следует выбирать через слепую веру. То, что что-то часто повторяется в сети, не делает это ни правдой в вашей ситуации, ни Истиной (для всех ситуаций).

dietbuddha
источник
0

Отличный вопрос для тренировки ума, я согласен, что нужно что-то делать, но я думаю, что невозможно ответить. Моя попытка:

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

Второй Учите как образцынаше профессиональное поле недостаточно развито. У нас есть много разных вещей, которые мы считаем подходящими, но мы не можем по-настоящему договориться о них. (думаю, TDD, BDD, Agile vs Waterfall, объем необходимой документации, Java или .Net) По-моему, это связано с обсуждением без контекста и с большой специализацией. Вы не можете сделать правильный выбор, не зная, в каком контексте задается вопрос, и вы не можете сделать правильный выбор, если знаете только один вариант. Когда ты возвращаешь это к образованию, это кажется невозможным решить. Вы не можете ожидать, что кто-то знает все возможные контексты и все возможные решения. Но с шаблонами они теперь некоторые общие решения и контексты применяются и контексты, когда решения ломаются. ИМХО, так мы должны учить,

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

Last Do Do Я думаю, что нужно делать больше. Я научился большинству просто делать, терпеть неудачи, исправлять и обсуждать.

KeesDijk
источник