Як включити розробників-початківців у ваш проект?


9

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

Ми використовуємо Python / Django, який має найприємнішу документацію і легкий вітер для навчання.

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

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

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

Ми хотіли б, щоб наші працівники навчалися / знаходили цінність у компанії, а у нас, як правило, люди «рухаються вгору».

Чи є стандартною практикою навчати людей із загальним / хобістським програмуванням? Яким чином "просування по службі" в програмній компанії працює для програмістів молодшого рівня? Коли вони починають працювати над основним кодом?

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


3
"загальне / хобістське програмування" сильно відрізняється від "програмістів молодшого рівня". Колишній звучить так, як хтось, хто грає з оболонками / пакетними сценаріями на пробудженому, щоб налаштувати свою систему. Останнє звучить як хтось, хто щойно закінчив ступінь CS. Поводження з цими двома видами було б дуже різним. Просто говорять ...
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner Дякую! Я не знайомий з термінологією. Хоббіст, який я мав на увазі, навчав декілька мов програмування, створив програму чи дві, веб-сайт .. Молодший рівень Я вважав, що хтось має достатньо знань з програмування, щоб бути найнятим у програмі, але зараз мені здається, що ці два можуть бути досить схожими (в моїх визначеннях)?
Yuji Tomita

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

@ c69 Дякую! Моє запитання - як полегшити новичка в нашій кодовій базі? Мета - не заграти їх у голову, а виключно виконувати повсякденні завдання. Просто небезпечно давати комусь доступ до нашої кодової бази, а також змусити їх створити свій перший проект джанго / програмування як частину нашої системи (чи це ви маєте на увазі? Нехай вони спробують побачити?). PS: Доречно зауважив про ветеринарного хобі
Юджи Томіта,

Відповіді:


5

Якщо ви делегуєте новобранця на неефективну роль, він / вона ніколи не дізнається нічого істотного, і вони, безумовно, не будуть для вас занадто жахливо корисними.

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

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

Я намагаюся зробити це - НЕ бути таким. Мало того, що це зробить новобранців нещасними і знищить їх мораль, ви будете палити свічку з обох кінців, хвилюючись про їхню роботу.

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

Думаю, ви здивуєтеся, наскільки здатні деякі з них.


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

Дякуємо за ваш внесок - це дуже цінується. Треба десь почати, оскільки ми розглядаємо людей, які буквально не мають досвіду. Вступ до python 101, навчальний посібник django, скрипти bash, як користуватися контролем версій тощо. Я прислухаюся до вашого попередження про не мікроконтроль. І так! Я вважаю, що наші люди цілком здатні.
Юджі Томіта

5

Раніше я працював у магазині програмного забезпечення, де ми кодували великий проект (значний час нарощування).

До новобранців ставилися як до ветеринарів. Їм присвоїли технічного керівника і запустили функції «самостійно». Стиль архітектури був продиктований, але вони могли вільно придумати власний чистий дизайн. "Дивні моделі дизайну" були відпущені під час (щоденних) перевірок експертного коду.

Одну помилку я бачив в іншому магазині: припустити, що "core" важко, а "ui" - легко. Новичок пройшов легше в ядрі і зіпсував код інтерфейсу інтерфейсу.

Удачі!


1
Часті огляди коду були саме тим, що я збирався запропонувати. Це займе годину вашого дня і окупиться лопатами, коли ви навчите їх тому, що не так, вони повинні виправити це, і їх навички вдосконалюються. Через деякий час вам не потрібно буде витрачати стільки часу на перегляд коду, як перші кілька тижнів. Також переконайтеся, що вони знають, як використовувати (і чи використовувати) управління джерелами. Тоді будь-які помилки можна відкотити досить легко.
HLGEM

1
@isgab - Ефективного дизайну інтерфейсу користувача важко досягти навіть із 30-річним досвідом роботи. Я маю на увазі погляд на Microsoft та Apple, вони обидва мають різні уявлення про те, як повинен працювати інтерфейс користувача.
Рамхаунд

Мені подобається те, що ти кажеш про core vs ui. Я подумав, що для обох є плюси і мінуси (новичок на бекенді, новичок на фронтені). З одного боку, HTML часто стосується досвіду - знання того, що не працює. Також "безпечно" в тому, що проекти є ізольованими. "Бекенд" працює точно так, як слід, але побудований код тепер має підтримуватися і працювати над ним у майбутньому.
Yuji Tomita

2

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

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

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


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

Інші варіанти
полягають у наступному

1

Як ваша компанія може дозволити собі відвести час від інших працівників, але не найняти когось із досвідом програмування? Витрати часу на тренування, розв’язання несправностей та рукоподібні руки дорого коштують.

Єдине, що я коли-небудь робив у цій галузі, - це навчити людей користуватися автором звітів або, можливо, кодом VBA / макрокоманду для Excel. Зазвичай я даю набори даних для повторного використання. Навчання їх у навчанні SQL - це розтягнення, але я бачив, що це було зроблено (платно за те, щоб вони проходили навчання поза межами навчання.) Більшість із цих людей були фінансовими аналітиками, які мають можливість навчитися кодувати, але, можливо, не зайняли часу. Спробувати це з деякими людьми в операціях - це давно.

Переконайтесь, що ви знайдете потрібну людину, і вони дійсно хочуть навчитися кодувати. Ви не встигнете навчити їх усьому. Їм доведеться зробити багато самостійно.


Я згадував, що ми говоримо про людей, які мають нульовий попередній досвід (або дуже невелику суму), тому ми не говоримо про категорії оплати, необхідні для найму професійного програміста.
Юджі Томіта

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

0

@louisgab мав рацію щодо перегляду коду. Це був би і мій перший крок. Важлива річ, яка допоможе вам, - це переконатися, що вони повинні виправити свої власні помилки, чи знаходите ви їх у перегляді коду чи пізніше. Вони перемогли; навіть не усвідомлюють, що роблять помилки, якщо їм не доведеться їх виправляти. Обов'язково також поясніть, чому рішення, яке вони використовували, є помилкою і чому краще, що ви пропонуєте. Перші кілька неприємностей будуть відчувати себе так, ніби у вас більше роботи через те, що ви маєте цих інших людей, але якщо ви зробите свої огляди коду і поясните речі, і очікуєте, що вони навчаться, через кілька тижнів вони допоможуть набагато більше, ніж якщо ви просто зробіть все самостійно. Але ви маєте намір приділити свій час, щоб підвищити швидкість, про яку має знати ваше керівництво.

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