Як ми можемо покращити загальну освіту та навчання програмістів? [зачинено]


13

Минулого тижня я щойно переглядав це дивовижне інтерв'ю Кевіна Роуза з Філіп Роуздейл, компанії Second Life.

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

Що змусило мене по-справжньому замислитися над тим, як ми навчаємось програмісту. Для більшості з нас, включаючи мене, ми самоучки. Що здорово, як програміст, кожен може навчитися та розвивати навички.

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

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

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

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

Тест Джоеля

Чи використовуєте ви керування джерелами?

Чи можете ви зробити збірку за один крок?

Ви робите щоденні побудови?

Чи є у вас база даних про помилки?

Чи виправляєте помилки, перш ніж писати новий код?

У вас є актуальний графік?

У вас є специфікація?

Чи мають програмісти спокійні умови праці?

Чи використовуєте ви найкращі інструменти, які можна купити за гроші?

У вас є тестери?

Чи пишуть нові кандидати під час співбесіди?

Ви робите тестування на корисність передпокою?

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

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

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

Ми завжди оцінюємо людей у ​​нашій галузі за тим, що вони роблять, і думаємо: "О, якщо цей хлопець / гал не робить найкращу практику xyz, він / вона не може бути хорошим програмістом, тому давайте не витрачати час і енергію, розмовляючи з ними . "

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

Тому це спонукало мене думати, що нам цілком потрібно переосмислити, як ми навчаємо, навчаємо та керуємо програмістами.

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

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

Тож сенс цього питання насправді полягає в тому, щоб багато чого розкрити, як ми можемо тренуватися, вчитися та краще керувати?

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

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

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

Я маю на увазі, чи ми як галузь хочемо сприйматись як просто замінні гвинтики?

Дякую...


+1: Я думаю, що колись Карл Франклін із .NET Rocks відзначив, що індустрія програмування "відсмоктує навчання". Я сподіваюся, що я правильно віднесли цю цитату; але я, зрештою, цілком згоден з цим настроєм. Я дійсно не знаю, як кандидати вступного рівня працюють у свої ряди сьогодні.
Джим Г.

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

Моя мета - не просувати конкретні рамки чи методології, моя мета - поглибити більше освіти та переконатись у підтримці програміста.
crosenblum

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

Чи є у вас посилання на інтерв'ю? youtube.com/watch?v=irF-V9RUuXО це?
Лукаш Мадон

Відповіді:


13

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

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

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

3) університети потребують змін. У них повинен бути початковий 2-річний період базової освіти на комп’ютерах з подальшим вибором. Інформатика або Комп'ютерна інженерія. І інженерній доріжці потрібні професіонали, які щодня працюють у цій галузі, а не хтось, хто просто пише документи. І те, що викладають, має бути практичним, щоб ви могли вдаритись об землю вже наступного дня після закінчення навчання. Можливо, є програма для учнівства для тих, хто не здобуває спеціальності.

4) Редагувати: Це було невелике рандо. Я мав на увазі те, що всі ми маємо багато чому навчитися один у одного, незалежно від віку та досвіду.

5) Дещо пов'язане з пунктом 2. Перестаньте бачити свого роботодавця відповідальним за вашу кар’єру. Ти є. І тільки ти. Якщо ви хочете піти на конференцію, оплатіть її самостійно, якщо ваша компанія цього не зробить. Щорічно відкладайте гроші окремо на книги та навчання та професійний розвиток. Якщо ви будете чекати, коли роботодавець відправить вас на навчання, ви будете довго чекати. Час, витрачений на перегляд ваших навичок, стає неактуальним. Не робите достатньо, щоб дозволити собі це? Змінити роботу.

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

У цей момент я думаю, що моя голова ось-ось вибухне, тому я піду підсумок.

Чудове запитання! Я дуже сподіваюся прочитати більше відповідей.


3
+1 для балів 2 і більшості 5. Це визначний момент, коли ти розумієш, що роботодавець потребує тебе більше, ніж тобі потрібно.
Карл Норум

@Carl, це справді чудове почуття.

+1 за чудові зауваження. Повністю згоден. Я також повністю погоджуюся з пунктами 2 і 3.
KeesDijk

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

1
Але економіка може підштовхнути нас до роботи, де ми не маємо стільки свободи чи вибору.
crosenblum

1

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

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

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


0

Чудове запитання для здійснення розуму, я погоджуюся, що щось потрібно зробити, але я вважаю, що неможливо відповісти. Моя спроба:

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

Другий Вчити як візерункинаша професійна сфера недостатньо зріла. У нас є багато різних речей, які, на нашу думку, є шляхом, але ми не можемо з ними погодитися. (думаю, TDD, BDD, Agile vs Waterfall, кількість необхідної документації, Java чи .Net) На мою думку, це пов'язано з обговоренням без контексту та великою спеціалізацією. Ви не можете зробити правильний вибір, не знаючи, в якому контексті задається питання, і ви не можете зробити правильний вибір, якщо знаєте лише один варіант. Коли ви повернете це до освіти, це вирішити неможливо. Ви не можете очікувати, що хтось знатиме всі можливі контексти та всі можливі рішення. Але з моделями вони тепер мають деякі загальні рішення, а контексти застосовуються та контексти, коли рішення розпадаються. ІМХО, це те, що нам потрібно навчати,

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

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

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