Як ви ділитесь своїм ремеслом з непрограмістами?


43

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

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

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

ПРИМІТКА. Це не повторення того, щоб непрограмісти зрозуміти процес розробки , оскільки це питання стосувалося управління очікуваннями клієнтів.


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


12
Раді, що ви не пишете матеріали для безпеки. Безпека навіть менш демонстративна, ніж будь-що інше. "Дивіться, він робить те саме, що робив раніше. Тільки тепер це безпечно ..."
Шон Д.

2
Хтось може мені пояснити, до якої категорії відповідає це питання програмістам.stackexchange.com
faq

1
@Dave це відповідає категорії запитань, які були розміщені, коли сайт ще був у бета-версії, якщо пам'ять слугує мені правильно. Правила тоді ще не були повністю відполіровані.
EpsilonVector

Відповіді:


31

Три слова:

dumb it down

Програмування є складним. Щоб зрозуміти це, потрібно багато роботи. А радощі програмування ще більш тонкі.

Щоб я могла донести свої успіхи та подібні до інших (тобто сім'ї), я мушу спілкуватися на більш загальному рівні. Порівняйте програмування з нормальними реальними речами.

(тобто предмет автомобіля з приладовою дошкою та сидіннями і ....)

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

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

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


25
+1 для "І навіть тоді важко змусити когось зрозуміти, наскільки класний добре складений клас з хорошим тестом на одиницю". Мені важко змусити деяких програмістів зрозуміти це.
CaffGeek

3
Я прихильник використання поганих аналогій для пояснення езотеричних понять.
Малахій

49

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


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

7
Я виявив, що люди, як правило, змінюють тему, як тільки я згадую комп’ютери. Або це, або вони починають скаржитися на свій комп’ютер і просити поради. Я здогадуюсь, що у лікарів така ж проблема.
Брайан Ортіз

3
@Brian, крім більшості лікарів, виправляє проблеми, а не будує нові системи;)
Арман

2
Так. Найпростіша відповідь - "Я створюю речі ... точніше, я створюю кластерну систему в режимі реального часу, для ..." - і тут їх немає ...
Sorantis

Це я і роблю. Тоді я чекаю 5 секунд мовчання і кажу: "Енннн, там той убивця бесіди пішов з дороги. То що ти робиш?"
пдр

12

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


12

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

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

Це було не те, що він хотів, і я був настільки розгублений.

Лише пізніше я зрозумів, що таке справжнє питання. Мені нагадали цю цитату Оскара Уайльда:

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

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

Світ художника зовсім інший. Якщо ви слухаєте із заплющеними очима переказ 9-ї симфонії Бетховена, вас перевозять. Ви повинні приділити йому свою повну увагу, і коли вона закінчиться, ви прагнете цього. Якщо ви завітаєте до будинку шедеврів Френка Лойда Райт Falling Water, вас перевозять. Я, чесно кажучи, не знаю, як хто-небудь міг би жити в ньому. Де можна зробити безлад? Це вас повністю захоплює. Це архітектурна симфонія.

Мистецтво щось не робить для вас, воно щось робить для вас.

Я намагався знайти мистецтво в тому, що роблю. У ньому є краса, якщо ти дивишся, але треба дивитись. Ось що нас би пов’язало.


3
Я читав, що спочатку Гарри Поттера з релейним комп'ютером часто використовується магія для опису того, що ми робимо, звичайно;)
jk.

@jk: Б'юсь об заклад, що поодинці залучає учнів до його занять :)
Майк Данлаве

@jk. Найчастіше я бачу чорну магію у наших творах.
heishe

7

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


1
+1 для концентрації уваги на стосунках з колегами. Кожна людина може ставитися до такого роду. "Я пішов на обід з босом, і він говорив ..." - це далеко не так, як "я провів половину дня, намагаючись зняти перегони"
Енді Хант

3

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

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

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


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

2

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

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


1

Метафори

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

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

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



1

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

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


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

1

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


0

Ви ніби не можете ділитися своїм ремеслом - просто заголовки про свою роботу з іншими

Однак ви можете замість того, щоб ділитися своїм ремеслом, поділитися своїм життям з людьми, які перебувають у тому ж ремеслі, як і ви (:


0

Зазвичай я не говорю про те, як це робиться, а про особливості роботи .

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

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

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


0

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

Принаймні, так я на це дивлюсь. Я можу помилитися.


0

Як інакше, прийміть до інших 15 відповідей ...

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

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

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

(Отже, лиття наковальниць було б еквівалентом створення компіляторів, і вам доведеться пояснити, для чого вони використовуються ...)


0

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

У вас є ідея для справді класного будинку, тому ви будуєте приблизний ескіз того, як він буде виглядати, і маєте загальний план, як діяти далі. Ви заходите в магазин господарських товарів і купуєте пиломатеріали, щоб побудувати стіни, але вони все одно обвалюються, оскільки земля нерівна. Тож ви йдете і купуєте цемент для встановлення фундаменту, але цемент не висохне, і ви не можете зрозуміти, чому. Ви повертаєтесь до магазину обладнання та запитуєте чому, але працівник переходить на кататонічну форму. Ви заходите в 8 різних магазинів обладнання, поки вам не скажуть, що цемент, який ви використовували, був розроблений восени 1989 року, але ви придбали ваше майно взимку 1989 року, тому вони несумісні, і він продає вам найсвіжіший цемент 2013.1.1. Ви повертаєтесь, щоб закласти фундамент, і як тільки це зробите, цемент зникає. Цього разу всі працівники кататонічно, тож ви гуглите свій будинок і виявите, що колись це був ядерний полігон. Потім ви гуглете наслідки ядерних випробувань на ґрунті і виявите, що це викликає вільні радикали. Ви це в Google і починаєте досліджувати електромагнітне випромінювання, потім ферміони, потім бозон, потім теорію струн і щось про кішку. Ви не хочете здаватися, тому що витратили стільки часу, тому сильно вдарили по пляшці. Ви пізно приїжджаєте додому і знімаєте гнів на свою дружину, стверджуючи, що вона є причиною того, що ви не можете побудувати будинок, тому що вона та діти весь час займають вас ... Близько 3 місяців ви розумієте, що пішли з і щось про кота. Ви не хочете здаватися, тому що витратили стільки часу, тому сильно вдарили по пляшці. Ви пізно приїжджаєте додому і знімаєте гнів на свою дружину, стверджуючи, що вона є причиною того, що ви не можете побудувати будинок, тому що вона та діти весь час займають вас ... Близько 3 місяців ви розумієте, що пішли з і щось про кота. Ви не хочете здаватися, тому що витратили стільки часу, тому сильно вдарили по пляшці. Ви пізно приїжджаєте додому і знімаєте гнів на свою дружину, стверджуючи, що вона є причиною того, що ви не можете побудувати будинок, тому що вона та діти весь час займають вас ... Близько 3 місяців ви розумієте, що пішли змайже закінчуючи будинок, навіть не знаючи, чому ви хочете спорудити будинок в першу чергу.


-1

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


або замінити свою роботу, о, ні!
поштовх

-2

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


-2

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

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