Как вы делитесь своим ремеслом с не программистами?


43

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

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

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

ПРИМЕЧАНИЕ: это не повторение того, как непрограммисты понимают процесс разработки , потому что этот вопрос касался управления ожиданиями клиентов.


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


12
Будь рад, что ты не пишешь вещи для безопасности. Безопасность еще менее очевидна, чем все остальное. «Видите, он делает то же самое, что и раньше, только теперь он безопасен ...»
— Шон Д.

2
Может кто-нибудь объяснить мне, к какой категории относится этот вопрос в programmers.stackexchange.com/faq
— Noname

1
@ Дэйв соответствует категории вопросов, которые были опубликованы, когда сайт еще был в бета-версии, если память мне не изменяет. Правила не были полностью отточены тогда.
— EpsilonVector

Ответы:


31

Три слова:

dumb it down

Программирование сложное. Требуется большая работа, чтобы понять это. А радости программирования еще тоньше.

Чтобы я мог рассказать о своих успехах и прочем другим (то есть семье), я должен общаться на более общем уровне. Сравните программирование с обычными вещами реального мира.

(т.е. объект для автомобиля с приборной панелью и сиденьями и ....)

Еще лучше, если вы знаете что-то о своей аудитории, потому что вы можете использовать вещи, которые они понимают, более сложные, чем обычные повседневные концепции.

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

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


25
+1 за «И даже тогда трудно заставить кого-то понять, насколько крут класс с хорошей подготовкой и хорошим модульным тестом». Мне трудно заставить некоторых программистов понять это.
— CaffGeek

3
Я фанат использования плохих аналогий для объяснения эзотерических концепций.
— Малахия

49

Я даже не пытаюсь. Если они недостаточно ориентированы на технологии, чтобы иметь хотя бы базовое понимание программирования, я собираюсь утомить их деталями. Обычно я просто использую что-то очень высокого уровня, например «я создаю веб-сайты» или «я пишу компьютерные программы для X»


13
+1 - я использую этот метод все время. Если я действительно хочу, чтобы они знали, как прошел мой день, я добавлю к ним некоторые термины и посмотрю, как блестящий взгляд бросается в глаза. Тогда кто-то меняет тему.
— Джоэл Этертон

7
Я обнаружил, что люди склонны менять тему, как только я упоминаю компьютеры. Либо так, либо они начинают жаловаться на свой компьютер и просят совета. Я думаю, что у врачей та же проблема.
— Брайан Ортис

3
@ Брайан, за исключением того, что большинство врачей решают проблемы, а не строят новые системы;)
— Armand

2
Да. Самый простой ответ: «Я создаю материал ... точнее, я создаю кластерную систему реального времени высокой доступности для ...» - и вот они ушли ...
— Sorantis

Это то, что я делаю. Затем я жду 5 секунд молчания и говорю: «Эннннд, с дороги нет такого убийцы разговоров. Так что ты делаешь?»
— фунтовые

12

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


12

Я попросил моего брата Роба спросить меня об этом. (Он художник и иллюстратор, вроде детских книг, музейных интерьеров и тому подобного.)

Я попытался объяснить это, показав ему компьютер-ретранслятор Гарри Портера , потому что я думаю, что он отражает сущность компьютеров и программирования в некотором роде.

Это было не то, что он хотел, и я был немного сбит с толку.

Только позже я понял, в чем была настоящая проблема. Мне напомнили эту цитату Оскара Уайльда:

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

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

Мир художника совершенно другой. Если вы слушаете с закрытыми глазами исполнение 9-й симфонии Бетховена, вы переноситесь. Вы должны уделить этому все свое внимание, и когда оно закончится, вы жаждете этого. Если вы посетите шедевр Фрэнка Ллойда Райта «Падающая вода», вас транспортируют. Я, честно говоря, не знаю, как кто-то может жить в этом. Где можно сделать беспорядок? Это захватывает вас полностью. Это архитектурная симфония.

Искусство не делает что-то для тебя, оно делает что-то для тебя.

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


3
Я читал, что, как и на компьютере-ретрансляторе Гарри Поттера , магия часто используется для описания того, что мы делаем, конечно же;)
— jk.

@jk: Могу поспорить, что только это приводит студентов в его классы :)
— Майк Данлавей

@jk. Чаще всего я вижу черную магию в наших работах.
— Heishe

7

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


1
+1 за концентрацию на отношениях с коллегами. Каждый может относиться к такого рода вещам. «Я пошел на ланч с боссом, и он говорил ...» гораздо более убедительно, чем «Я провел половину своего дня, пытаясь устранить условия гонки»
— Энди Хант

3

Для этого у меня есть две аналогии: рецепт и массивная бюрократия. Вот что я объяснил в этом QA: 30 минут, чтобы объяснить программирование 15-летнему

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

Я фактически использовал аналогию с бюрократией только пару раз, потому что большинству людей действительно не нужно разбираться вне аналогии с рецептами, но оба раза были очень полезными для человека. Похоже, они думали, что программирование означает полный вызов каждой строки кода (например, «Но если у вас такая дрянная память, то как вы можете программировать компьютер?»), Но на самом деле речь идет о создании множества автономных модулей, которые работают вместе. для достижения большей цели. Модули программы похожи на отделы в большой компании: автономные подразделения, которые в основном имеют дело с собственным битом целого и общаются с другими отделами посредством заметок.


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

2

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

Например, недавно я попытался объяснить, как работает спам-фильтр. Я только что сказал, что он записывает слова, которые обычно встречаются в спаме, и те, которые не встречаются в спаме. Запись создается с использованием известных спамовых и не спам-писем. После этого, всякий раз, когда приходит новое электронное письмо, мы просто проверяем, сколько слов там выглядят спамерными (то есть встречаются в нашей записи спамерских слов) и сколько выглядит не спамовыми. Если спам-слов слишком много, возможно, это спам, и поэтому он отправляется в корзину для спама. Нетехнические люди, с которыми я разговаривал, достаточно хорошо следовали этой идее.


1

Метафоры

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

Это делает визуализацию программы намного более интересной, а иногда помогает мне взглянуть на нее в новом свете.

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



1

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

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


Это был бы болезненный мир, где вы не могли бы запрограммировать свой компьютер, чтобы упростить программирование («визуальный поиск ... ошибочной запятой»).
— комп

1

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


0

Вы не можете поделиться своим ремеслом - просто заголовки о своей работе с другими

Однако, вместо того, чтобы делиться своим ремеслом, вы можете делиться своей жизнью с людьми, которые занимаются тем же ремеслом, что и вы (:


0

Я обычно говорю не о том, как это делается, а об особенностях работы .

Я обычно подчеркиваю, что это невероятно сложно, настолько сложно, что ни один человек не может надеяться начать в мельчайших подробностях понимать, что именно происходит. Вероятно, потребуется 30 лет изучения различных взаимодействующих частей (электроники через фреймворки), плюс около часа на активную строку кода, и к тому времени вам придется вернуться к изучению, потому что аппаратное обеспечение изменилось бы настолько, что это еще 10 лет, грохнувший последней версией.

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

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


0

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

По крайней мере, так я на это смотрю. Я могу ошибаться.


0

В качестве другого ответа на остальные 15 ответов ...

Вместо того, чтобы объяснять детали моей работы (программирование), я стараюсь сосредоточиться на решениях, которые решает работа, то есть какие проблемы действительно решают системы / программное обеспечение, которые я создаю для пользователя. Обычно это непрограммная область, если вы не пишете компилятор или что-то еще, в этом случае вам придется объяснить, почему это полезно.

Таким образом, людям легче понять, что это сложная природа и как она связана с «реальным миром».

В качестве аналогии, как средневековый кузнец, я бы, вероятно, объяснил (даме в местной таверне), что я делаю мечи, чтобы разбить врага на куски, а не как я закаливаю сталь и бью его с определенным углом и силой (если только они спрашивают). Надеюсь, она поймет, что разбить врага на части полезно (...) и может быть сложно (нехватка стали, бронированные противники, дымное рабочее место и т. Д.), И, таким образом, вы получите некоторую оценку за выполнение сложной задачи.

(Таким образом, приведение наковальней будет эквивалентно созданию компиляторов, и вам придется объяснить, для чего они используются ...)


0

Я сравниваю это со строительством дома, если бы мы жили в странной вселенной с экзотическими частицами и анти-временем:

У вас есть идея по-настоящему классного дома, поэтому вы строите черновой набросок того, как он будет выглядеть, и у вас есть общий план действий. Вы идете в хозяйственный магазин и покупаете пиломатериалы, чтобы построить стены, но они продолжают падать, потому что земля неровная. Итак, вы идете и покупаете цемент, чтобы заложить фундамент, но цемент не высохнет, и вы не можете понять, почему. Вы возвращаетесь в хозяйственный магазин и спрашиваете почему, но сотрудник приходит в ужас. Вы ходите в 8 различных магазинов оборудования, пока один не скажет вам, что используемый вами цемент был разработан осенью 1989 года, но вы купили вашу собственность зимой 1989 года, поэтому они несовместимы, и он продаст вам самый последний цемент 2013.1.1. Вы возвращаетесь, чтобы заложить фундамент, и как только вы это делаете, цемент исчезает. На этот раз все сотрудники приходят в ужас так что вы заглядываете в свой дом и обнаруживаете, что когда-то это был сайт ядерных испытаний. Затем вы гуглите влияние ядерных испытаний на почву и обнаруживаете, что оно вызывает свободные радикалы. Вы гуглите это и начинаете исследовать электромагнитное излучение, затем фермионы, затем бозон, затем теорию струн и кое-что о кошке. Вы не хотите сдаваться, потому что вы потратили так много времени, поэтому вы сильно ударили по бутылке. Вы приходите домой поздно и вынимаете свой гнев на свою жену, утверждая, что она - причина, по которой вы не можете построить дом, потому что она и дети занимаются все ваше время ... Через 3 месяца вы понимаете, что ушли из и кое-что о кошке. Вы не хотите сдаваться, потому что вы потратили так много времени, поэтому вы сильно ударили по бутылке. Вы приходите домой поздно и вынимаете свой гнев на свою жену, утверждая, что она - причина, по которой вы не можете построить дом, потому что она и дети занимаются все ваше время ... Через 3 месяца вы понимаете, что ушли из и кое-что о кошке. Вы не хотите сдаваться, потому что вы потратили так много времени, поэтому вы сильно ударили по бутылке. Вы приходите домой поздно и вынимаете свой гнев на свою жену, утверждая, что она - причина, по которой вы не можете построить дом, потому что она и дети занимаются все ваше время ... Через 3 месяца вы понимаете, что ушли изпочти отделка дома, даже не зная, почему вы хотели построить дом в первую очередь.


-1

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


или смени работу, о нет !!!
— Джоккинг

-2

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


-2

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.