Хто повинен готувати нових програмістів? Молодші або старші програмісти? [зачинено]


15

У моїй команді ми часто вимагаємо від найстарших програмістів для підготовки / наставника абсолютно нових молодших програмістів. Однак ці самі старші програмісти - це ті, хто робить основну частину справжньої важливої ​​роботи.

Я намагався стверджувати свого менеджера, що має сенс молодших програмістів, які виявляють високу здатність, взяти нових програмістів під своє крило. По-перше, це звільнить старших розробників працювати над більш важливими ініціативами (не те, щоб наставництво не важливо). Далі це додасть молодшим програмістам трохи гордості за свою роботу, що на них покладається така відповідальність, і вони можуть чомусь навчитися в навчанні. Нарешті, це заощадить гроші компанії, оскільки старші розробники коштують значно дорожче, ніж юніори.

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

** Ми всі можемо погодитись, що вислугу років не обов'язково позначають на компетентності, тому просто припустимо "старші програмісти", я маю на увазі "топ-програмісти".


1
Я б хотів, щоб я сформулював це питання як "Програмісти вищого рівня проти програмістів середнього та середнього рівня". Хоча кілька чудових відповідей.
smp7d

Ви можете відредагувати його знаєте ...
ChrisF

га, не було б справедливо до тих, хто вже відповів.
smp7d

Я думав, ти говориш про назву ...
ChrisF

Добре, якщо вони завжди робили це так, це має бути правильний спосіб робити справи.
SoylentGray

Відповіді:


11

У мене була така ситуація в попередній компанії. Старших розробників, яких було лише декілька, наставляли все більшу кількість молодших розробників до того рівня, коли вони не могли виконувати інші покладені на них завдання. Через деякий час старші розробники піднесли це до нашого менеджера, і було вирішено, що розробники, які були десь між молодшими та старшими, будуть виступати менторами, але для складних питань вони можуть піти запитати старших розробників.

Це вийшло досить добре. До цього кілька старших розробників починали шукати нові робочі місця, оскільки їх не брали на роботу. Після цього вони змогли попрацювати над новими можливостями та виконати завдання. Що думають про ситуацію ваші старші розробники?

На мою думку, бути старшим - це не лише досвід у цій галузі, назва, розміщена у вашому колонтитулі електронної пошти, чи про те, як довго ви працюєте. Це також розум, щоб допомогти та направляти молодших розробників. І який кращий спосіб отримати більше старших розробників у команді, ніж дозволити не таким старшим займатися наставництвом?


2
це дуже схоже на мою сьогоднішню ситуацію.
smp7d

21

Не кожен топ-програміст - це вищий викладач. Я рекомендую провести навчання тим, хто може пояснити, і хто має огляд «оточення» вашої компанії (технічні речі, а також такі організаційні контакти).


Безумовно, правда, але правильне питання може бути: "Чи ці технічно чудові старші люди навіть намагаються бути більш прихильними та навчати менш досвідчених?". Я думаю, що їм не вистачає важливої ​​частини роботи. Думаю, ніхто не став старшим.
zeroDivider

7

Я повторюю деякі речі, які вже були сказані, але я маю два погляди.

Бізнес: як бізнес, ви хочете, щоб продуктивність та менші ризики. Хоча старші розробники виконують основну частину роботи, ви хочете, щоб вони перенесли свої знання про систему, що знижує ризик. На продуктивність це не вплине так сильно, тому що ви повинні дати цим пенсіонерам трохи часу для занять менш критичними справами (навчання молодших розрядів). Крім систем, вони також мають багато дисциплін, яких молодші дияволи ще не знають і не розуміють.

Повага: Юніори, які беруть нових розробників під своє крило, схожі на сліпих, що ведуть сліпих. Юніори ще не встигають за все, щоб взяти участь у навчанні інших. Також це може не вийти, оскільки поваги може не бути там. Повага до молодшого розробника викликає сумніви, оскільки ваш набір навичок та набір навичок початківця, мабуть, не так вже й далеко. Однак вирішення проблеми разом - це вже інша історія. Немає питання про повагу з точки зору старших розробників, які навчають початківців або навіть юніорів. Усі ми знаємо, що коли не вистачає поваги у двох осіб або в команді, катастрофа чекає, що станеться ...


6

Подивіться на це з іншого кута. Які види навичок та знань ви хочете передати серед програмістів тут? Якщо старші програмісти виконують більшу частину реальної, важливої ​​роботи, чи не підтримує це трохи ізоляції з точки зору того, хто знає, яка система? Звільнення юніорів пізнати систему, щоб вони могли зробити резервне копіювання для старших - це досить логічний напрямок, оскільки саме найважливішим тут є знання старших за потенційно роками накопичених знань. Наставництво юніорів для літніх людей здається моїм розумом свого роду природним утворенням.

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


4

Добре, якщо старші програмісти в команді насправді не опановують свою торгівлю більше, ніж юніори, лише довше і / або мають більш високий соціальний / політичний статус у колективі, тоді насправді це не має великої різниці хто - якщо хто - наставляє новачків. Швидше за все, всі вони будуть тяжіти до однакового рівня посередності ... :-(

Якщо, OTOH, старший є дійсно (принаймні помітно ближчим) майстром-програмістом у справжньому розумінні світу, це може мати велике значення. Молодший може легко навчити нову дитину не просто найкращою практикою. І набагато складніше пізнати субоптимальний чи поганий підхід пізніше, ніж почати з вивчення найкращої практики .

Однак, якщо молодший має талант і достовірно продемонстрував, що (-ла) він знає (-ла), що робить (-ла) щодо певного інструменту, техніки чи сфери (-ів), він справді може бути корисним тренером у цій конкретній області .

Але зауважте, що - з певної точки зору - вся суть наставництва / навчання полягає в тому, щоб старші люди могли делегувати деякі свої не дуже складні завдання іншим, щоб вони могли зосередитись на дійсно важких речах. Щоб це сталося, їм потрібно спочатку навчити своїх завдань та навичок своїм ровесникам, і навчити їх добре, щоб завдання були прийняті правильно, раз і назавжди.


4

Проста відповідь: людина, яка робить тренінг, повинна бути людиною, яка найкраще тренується, яка також хоче пройти тренування.

Деякі люди насолоджуються навчанням та наставництвом. Деякі люди його ненавидять. Ви не хочете, щоб люди робили речі, які вони ненавидять - це погано для них, це, ймовірно, погано для людини, яка навчається, і, мабуть, погано для всієї команди. Це нічого не додає. Тим часом, дозволяти людям робити те, що їм подобається, це добре для них, колективу, і, сподіваємось, стажер захопить певний ентузіазм.

Так само деякі люди добре тренуються, а деякі - ні. Існує тип людської взаємодії чи інтелекту, який дозволяє деяким людям добре розуміти, як інші галочують; тренер повинен мати можливість передавати знання таким чином, щоб стажист зрозумів. Хороший тренер може це зробити, і він може дізнатися, що стажист любить "розуміти" речі, або "бачити" речі, або "робити" речі - різні способи, якими люди навчаються. Поганий тренер виголошує репетиційну промову і невгамовний, і стане розчарованим, коли стажер не причепиться до своїх ідисинкратичних способів навчання.

Я припускаю, що ви хочете, щоб слухачі пройшли найкращу підготовку - ретельну, але ефективну. Якщо ваші «найкращі програмісти» прагнуть тренуватися, вони повинні це зробити. Якщо "молодші програмісти" вирішують це, вони також повинні мати знімок. Не шкода, що кілька людей беруть участь у навчальній програмі - таким чином можна визначити, хто хоче тренуватися, а хто добре тренується.

Я не впевнений у вашому запитанні, ви старший програміст, який хоче вийти з тренінгу (без критики - у вас є важливіші справи, або просто не любите це), або молодший програміст, який хоче ввійти до нього. Але в будь-якому випадку ви намагаєтеся робити те, що вам подобається, - а чи не всі ми хочемо робити ті завдання, які нам подобаються? Щасливі співробітники призводять до кращого робочого середовища та кращого результату.


3

У більшості компаній, в яких я працював, молодшим програмістом був хтось із досвідом менше 3 років. Хоча я був би радий, як досвідчений програміст із досвідом наставництва віднести нового програміста до молодшого програміста для навчання певній темі, я хотів би зберегти контроль, а не делегувати всю відповідальність за наставництво тому, хто ще потребує наставницького нагляду себе.


2

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

Що стосується самих знань з програмування, то їх найкраще передавати навколо групи на всіх рівнях. Навіть досвідчені програмісти постійно навчаються новому, особливо в складних рамках розвитку. Цей обмін може бути формальним, як на сеансі обіду та навчання, або через неофіційні дискусії, коли дозволяє час.


1

Я б вирішив, щоб наставники в першу чергу були на крок або два нижче від топ-програмістів в організації.

Хоча ви наводили кілька вагомих причин для цього, я зазначив би ще одну, яку я вважаю особливо важливою: навчання - це один з найкращих способів навчання, особливо навчання достатньо, щоб зробити деякі з цих останніх кроків справді гарними до великого. Однією з особливо важливих частин цього є навчитися не тільки добре робити справи, але й робити гарну роботу, щоб сформулювати те, що ти робиш і чому. Я, наприклад, часто виявляв, що для того, щоб добре роз'яснити, чому я щось роблю певним чином, я повинен сидіти і думати про це достатньо, щоб 1) моє власне розуміння значно покращилося, і 2) я часто переоцінюють ситуацію достатньо, щоб покращити власну роботу.

Хоча це може бути складніше зробити це, це може бути особливо корисно для програмістів, соціальних навичок яких може бути дещо ... бракує порівняно з однолітками. Трохи висуваючи їх із зони комфорту від чистого кодування до більш соціальних аспектів, таких як наставництво, може допомогти їм настільки ж, як і наставникам. Очевидно, якщо ви збираєтесь це робити, то вам потрібно бути особливо обережним щодо вибору, хто з’єднати пару - неправильне сполучення може призвести до травмування обох.


0

Я думаю, що найкраще це виходить, коли наставники зголосилися до виконання завдання. Тут ми не маємо дуже формального наставницького процесу. Іноді наш менеджер має на увазі щось конкретне, але інколи він каже щось на кшталт: "Хтось має хорошу ідею щодо проекту для нового хлопця?" і той, хто має найкращу ідею, закінчується наставництвом.

Що в кінцевому підсумку відбувається, це те, що новий прокат покладається на проект, який може дозволити собі час кривої навчання та керується особою, яка найбільш знайома з проектом. Це може бути хтось, хто був тут 10 місяців або 10 років. Іноді люди закінчують трохи наставляти наставників, але перевага полягає в тому, що новіші люди все ще пам’ятають усі труднощі бути новими та те, як вони їх подолали.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.