Як пояснити непрограмістам, що програмування - це не повторюване завдання? [зачинено]


11

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

Як слід пояснити, що програмування не є повторюваним завданням для непрограмістів ?


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

4
@ Марк Канлас: Добре. Які роботи мають ці люди (з урахуванням програмування як повторного набору тексту)? Швидше за все, ви можете вказати на деяку поверхневу повторюваність у своїх щоденних завданнях і звести їх роботу до "повторюваного чогось чи іншого", а потім попросити їх пояснити, як це не так .
FrustratedWithFormsDesigner

14
Якщо це повторюється, ви робите це неправильно.

1
Це твердження малося на увазі загалом. Багато завдань робляться неправильно, коли ви робите одне і те саме і знову і знову. Просто склеюємо деталі автомобіля разом? Створіть робота, щоб це зробити (якщо, звичайно, ви можете, якщо ні, вибачте, що втратите роботу). Просто склеюємо деталі робота разом? Побудуйте робота для створення роботів;) Це в основному програмування . Додайте більше шарів для нескінченної повторюваності.

2
Скажіть, футбол - це повторюваний вид спорту (всі продовжують робити те саме, штовхаючи м'яч).
apoorv020

Відповіді:


31

Наведіть їм приклади, до яких вони можуть стосуватися.

Теніс повторюється. Ви просто продовжуєте ударяти м'яч весь час в інший бік мережі.

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

Гра на фортепіано повторюється. Ви продовжуєте рухати пальцями по дошці.

Чорт, все так нудно !!!


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

1
@Аві в тому ж вені програмуванні нудно таким чином, як теніс чи фортепіано не є, тому це справді суперечка.
Мерісі

18

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


18

Ну, це в певному плані. Ви повторно набираєте одні й ті ж літери (AZ, az, 0-9) знову і знову. Просто в різних комбінаціях.

Я зазвичай намагаюся уникати таких дискусій з такими людьми.


1
@Rook - Гарна порада.
Джон Шафт

4
+1. Змушує мене думати про приємне порівняння між книгами та алфавітом . (Вільно перекладається на: Алфавіт - це сукупність букв, яка перевершує книги за структурою та змістом. Хоча в книгах усі букви змішані, ті, що в алфавіті, послідовно записуються у порядку зростання. )
back2dos

1
Я сподіваюся, що ви не уникнете всіх людей, які мають певний інтерес до вас.

3
@Rook: Благополуччя у когось, хто задає питання про світ програмування. Не уникайте їх. Поговоріть з ними. Скільки можна.

4
Я намагаюся переплутати речі, використовуючи розділові знаки. AZ для мене недостатньо цікавий.
MJB

13

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

  • Ви починаєте думати про загальний погляд на те, що вам потрібно досягти
  • Ви думаєте про невеликий шматок своєї композиції і пишете її
  • Як тільки це буде зроблено, ви відтворюєте його (F5 у Visual Studio)
  • Ви повторюєте процес, якщо потрібно
  • Іноді ви позичаєте ідеї або надихаєтесь іншими композиторами
  • Іноді ви переробляєте пісню, переміщуючи або переробляючи деталі

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


1
Ха-ха ... +1 для його відтворення (F5 у Visual Studio). Тепер, якщо я міг би лише додати клавішу F5 до своєї гітари ...
JasCav

3
-1 для Visual Studio;)
Йорданія

П'єр, не погоджуючись із вашою загальною відповіддю на ОП, я не погоджуюся, що композиція музики схожа на програмування. Склад складніший - я думаю, що я досить чітко його виклав у цій публікації: linkedin.com/…
azheglov

1
@azheglov: важче на основі чого? Кожен може скласти композицію Зараз дуже мало буде на MTV, як мало хто з нас буде опитаний CNN

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

4

Я зазвичай пояснюю, що програмування - це творче вирішення проблем. У вас є проблема - вам потрібна функція в продукті (а я зазвичай вибираю добре відомий продукт, Amazon.com, MS Word тощо), і його там немає. Це ніколи не робилося раніше, і ти перший, тож це як у будь-якого мистецького проекту - у тебе є бачення, але потрібно визначити шлях.

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

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

Зосередження уваги на:

  • невідома територія
  • ніхто не відповідає
  • підлягають тлумаченню

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

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

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


2
Будучи самим художником, мені подобається це порівняння. Це матиме сенс для більшості художників усіх типів та тих, хто може стосуватися мистецької діяльності. (Я не впевнений у нехудожниках.)
DarenW

3

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

Можливе повторне програмування. Але це неефективно.


+1, коли кодування стає дуже повторюваним, це знак того, що, можливо, "ви робите неправильно!"
FrustratedWithFormsDesigner

3

Якби це було насправді, ми б просто скопіювали та вставили: D

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

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

За своєю суттю цей виклик вимагає від вас не повторюватися .

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


1

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

Введення тексту - лише один із способів реалізації рішення (і на даний момент найпопулярніший), хоча є й інші способи, такі як:

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

0

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

Чи застосували б вони цю логіку до: - Продавці багато спілкуються по телефону. - Менеджери ходять на безліч зустрічей. - Співаки просто співають. - Актори повторюють сценарії.

Якщо так, то вони не є програмістом.


-2

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


-2

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


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