Jak wytłumaczyć nie-programistom, że programowanie nie jest powtarzalnym zadaniem? [Zamknięte]

11

Niektórzy ludzie uważają, że programowanie polega na powtarzalnym pisaniu na klawiaturze. Nic z tego nie jest prawdą. Po pierwsze, jest o wiele więcej do zrobienia niż pisanie kodu, takie jak architektura projektowania i tak dalej. Po drugie, może to być bardzo zróżnicowane, nie powtarzalne zadanie, z nowymi wyzwaniami.

Jak wytłumaczyć, że programowanie nie jest powtarzalnym zadaniem dla osób niebędących programistami ?

Anto
źródło
5
Zapytaj, czy ich praca jest powtarzalnym zadaniem? Jeśli tak, to jest dla nich do bani, prawdopodobnie nie znają radości twórczego i różnorodnego zawodu. Jeśli nie, powiedz, że jest dokładnie tak samo.
Mark Canlas
4
@Mark Canlas: Dobra uwaga. Jakie prace wykonują ci ludzie (z myślą o programowaniu jako powtarzalnym pisaniu)? Możliwe, że możesz wskazać na powierzchowną powtarzalność w ich codziennych zadaniach i zredukować ich pracę do „powtarzalnego czegoś takiego”, a następnie poprosić ich o wyjaśnienie, jak to nie jest .
FrustratedWithFormsDesigner
14
Jeśli jest powtarzalny, robisz to źle.
1
To oświadczenie miało w ogóle na myśli. Wiele zadań jest wykonywanych źle, gdy ciągle robisz to samo. Po prostu sklejasz części samochodowe? Zaprojektuj robota, aby to zrobić (zakładając, że możesz, oczywiście - jeśli nie, przepraszam, że stracisz pracę). Po prostu sklejasz części robota? Zbuduj robota, aby zbudować roboty;) To w zasadzie programowanie . Dodaj więcej warstw, aby uzyskać nieskończoną powtarzalność.
2
Powiedz, że piłka nożna to sport powtarzalny (wszyscy robią to samo, kopiąc piłkę).
apoorv020

Odpowiedzi:

31

Podaj im przykłady, do których mogą się odnosić.

Tenis jest powtarzalny. Po prostu cały czas uderzasz piłkę w drugą stronę siatki.

Piłka nożna jest powtarzalna. Po prostu kopiesz piłkę za każdym razem, aż znajdziesz słupek bramki.

Gra na pianinie jest powtarzalna. Przesuwasz palcami po tablicy.

Cholera, wszystko takie nudne !!!

gofeddy
źródło
3
Gra w tenisa, piłkę nożną i fortepian jest nudna, w przeciwieństwie do programowania. We wszystkich tych dążeniach człowiek wielokrotnie staje w obliczu tej samej sytuacji i musi zrobić to samo. Jednak w programowaniu, jak wskazały inne odpowiedzi, jeśli znajdziesz się w tej samej sytuacji dwa razy, robisz to źle.
Avi
1
@Avi w tym samym stylu programowania jest nudne w ten sposób, że tenis lub fortepian nie są, więc to naprawdę dyskusyjny argument.
Maurycy
18

Zawsze możesz powiedzieć, że programowanie to powtarzanie się w dokładnie takim samym stopniu, jak pisanie prozy to powtarzanie się. Czy można napisać świetną (a nawet mierną) powieść, siedząc i starannie układając listy?

sharptooth
źródło
18

Cóż, jest w pewnym sensie. Ciągle wpisujesz te same litery (AZ, az, 0-9) w kółko. Tylko w różnych kombinacjach.

Zazwyczaj staram się unikać takich dyskusji z takimi ludźmi.

Wieża
źródło
1
@Rook - Dobra rada.
John Shaft
4
+1. Przypomina mi się miłe porównanie książek z alfabetem . (Luźno tłumaczy się na: Alfabet jest zbiorem liter, który przewyższa książki zarówno pod względem struktury, jak i treści. Podczas gdy w książkach wszystkie litery są pomieszane, te w alfabecie są sukcesywnie pisane w porządku rosnącym. )
back2dos
1
Mam nadzieję, że nie unikniesz wszystkich ludzi, którzy cię interesują.
3
@Rook: Posiadanie kogoś, kto zadaje pytania na temat świata programowania, jest błogosławieństwem. Nie unikaj ich. Porozmawiaj z nimi. Tyle ile potrafisz.
4
Staram się mieszać, używając interpunkcji. AZ nie jest dla mnie wystarczająco interesująca.
MJB
13

Programowanie przypomina kompozycję muzyczną . Co wcale nie jest procesem powtarzalnym.

  • Zaczynasz myśleć o ogólnym widoku tego, co musisz osiągnąć
  • Myślisz o małej części swojej kompozycji i piszesz ją
  • Gdy to zrobisz, grasz (F5 w Visual Studio)
  • Powtórz proces w razie potrzeby
  • Czasami pożyczasz pomysły lub inspirujesz się innymi kompozytorami
  • Czasami refaktoryzujesz piosenkę, przenosząc lub przerabiając części

Czasami nie wiesz, czego chcesz i bawisz się. Prawdopodobnie najlepszy sposób na uzyskanie najciekawszych kompozycji ...


źródło
1
Haha ... +1 za grę (F5 w Visual Studio). Teraz gdybym mógł tylko dodać klawisz F5 do mojej gitary ...
JasCav,
3
-1 dla Visual Studio;)
Jordan
Pierre, choć nie zgadzam się z twoją ogólną reakcją na OP, nie zgadzam się, że kompozycja muzyczna jest podobna do programowania. Kompozycja jest trudniejsza - myślę, że dość dobrze
ułożyłem
1
@azheglov: trudniejsze w oparciu o co? Każdy może komponować. Teraz bardzo niewielu będzie na MTV, tak jak bardzo niewielu z nas udzieli wywiadu CNN
Nawet jeśli powiedzmy, że komponowanie muzyki jest „trudniejsze”, problemy w skali CS mają to zrekompensować: każdy wiersz kodu może być łatwiejszy do napisania niż jedna nuta, więc mamy projekty z dosłownie milionami (jeśli nie więcej) wierszy kodu. Nawet jeśli każde działanie atomowe jest prostsze, oczekuje się, że najlepsi programiści rozwiążą trudniejsze problemy.
Tikhon Jelvis
4

Zazwyczaj tłumaczę, że programowanie to twórcze rozwiązywanie problemów. Masz problem - chcesz mieć funkcję w produkcie (a ja zwykle wybieram dobrze znany produkt, Amazon.com, MS Word itp.), Ale go tam nie ma. To nigdy nie zostało zrobione wcześniej, a ty jesteś pierwszy, więc jest to jak każdy projekt artystyczny - masz wizję, ale musisz znaleźć ścieżkę.

Skupiam się również na tym, że istnieje więcej niż jeden sposób rozwiązania problemu, kilka naprawdę złych sposobów i prawdopodobnie więcej niż jeden dobry sposób. Na dłuższą metę może istnieć najlepszy sposób, ale ten najlepszy sposób nie będzie oczywisty przez długi czas (rozszerzalność, możliwość ponownego użycia itp.), Więc w momencie opracowywania istnieje wiele ważnych wezwań do oceny.

Wreszcie, produkt końcowy może być kochany lub znienawidzony przez odbiorcę. Tak jak niektórzy ludzie uwielbiają Picassa, a niektórzy nie potrafią tworzyć głów ani ogonów sztuki współczesnej - niektórzy mogą pokochać jakiś element, a niektórzy go nienawidzą. Robisz, co możesz, dla większości ludzi i nie możesz zadowolić wszystkich.

Skupiając się na:

  • nieznane terytorium
  • nikt nie odpowiada
  • podlega interpretacji

Pokazuje, że ta praca jest bardziej podobna do sztuki, a jeszcze bardziej do powtarzalnej nudnej pracy.

Rozmawiam o tym dość często z artystami (i wydaje się, że instynktownie wierzą, że praca przy komputerze jest mało kreatywna. Zazwyczaj potrafię też powiązać ją z ulubioną formą sztuki artysty. Na pewnym poziomie większość artystów to także technicy - malarstwo) , tańcząc, tworząc muzykę i prawdopodobnie każdą inną sztukę - wszystko to składa się z serii powtarzalnych czynności, które doprowadzają cię do momentu wykonania czegoś nowego, innego i kreatywnego. Mówiąc inaczej, artyści mają na ogół problemy z zaprzeczeniem, że pozornie powtarzalne działania mogą prowadzić do dzieł inspiracji i piękna.

W tym momencie zazwyczaj są skłonni przyznać, że tylko dlatego, że moja „sztuka” obejmuje zestaw dziwacznie wyglądających instrukcji składniowych i nijakie diagramy UML, nie oznacza to, że nie jest kreatywny w tych wierszach kodu i modele systemu ostatecznie tworzą coś zupełnie innego niż suma jego części.

bethlakshmi
źródło
2
Jako artysta lubię to porównanie. Będzie to miało sens dla większości artystów, wszystkich typów i tych, którzy mogą odnosić się do działań artystycznych. (Nie jestem pewien co do artystów niebędących artystami.)
DarenW
3

Programowanie dotyczy abstrakcji. Im więcej piszesz, tym więcej podobieństw możesz zobaczyć. Ale potem nadszedł czas na streszczenie. Przez refaktoryzację rozwija się struktura, która eliminuje powielanie. Zmniejsza to złożoność problematycznego kodu domeny.

Możliwe jest powtarzalne programowanie. Ale to jest nieefektywne.

Witek
źródło
+1, gdy kodowanie staje się bardzo powtarzalne, to znak, że może „robisz to źle!”
FrustratedWithFormsDesigner
3

Gdyby tak było, po prostu użylibyśmy funkcji kopiuj i wklej: D

Jednym z kluczowych wyzwań w programowaniu jest tworzenie wysokiej jakości elementów składowych, takich jak Ty

  • może ich użyć do zbudowania gmachu (tj. oprogramowania, które budujesz) z solidnych komponentów, zwiększając w ten sposób stabilność
  • może wielokrotnie ich używać w tym samym gmachu lub nawet w różnych budynkach (w celu zmniejszenia liczby powtórzeń), zwiększając w ten sposób wydajność
  • będzie mógł zmienić blok bez powodowania zawalenia się całego budynku, zwiększając w ten sposób elastyczność lokalną
  • będzie mógł zmieniać wszystkie wystąpienia bloku naraz, zwiększając w ten sposób globalną elastyczność

Z natury wyzwanie to wymaga, abyś się nie powtarzał .

W następstwie: Jeśli powtarzasz się jako programista, tracisz czas na tworzenie oprogramowania, które nie jest ani stabilne, ani elastyczne.

back2dos
źródło
1

Oprócz innych odpowiedzi, które wskazują, że powtarzalność lub pisanie / klikanie jest powierzchowne, można również zauważyć, że programowanie zwykle dotyczy bardziej rozwiązywania problemów niż pisania (i myślę, że to Djikstra powiedział, że informatyka jest tak samo wiele o komputerach, ponieważ astronomia dotyczy teleskopów - lub czegoś podobnego ).

Wpisywanie jest tylko jednym ze sposobów implementacji rozwiązania (i obecnie najpopularniejszym), choć istnieją też inne sposoby, takie jak:

  • pseudokod na białej tablicy (która ilustruje rozwiązanie, ale tak naprawdę nie działa ani nie robi nic, niestety)
  • karty dziurkowania (obecnie uważane za przestarzałe)
  • Być może programowalne tablice logiczne lub jeśli chcesz, aby twoje rozwiązanie było implementowane bezpośrednio w sprzęcie (chociaż najprawdopodobniej będzie trochę pisania, aby przenieść rozwiązanie z mózgu do PLA, nie wiem, jak często to jest „kodować” te rzeczy bezpośrednio - tak naprawdę nie pracuję z nimi, po prostu wiem o nich od innych, którzy to robią).
  • ludzie (ostatnio słyszałem o grupie, która zaimplementowała algorytmy sortowania jako taniec)
  • skały na pustyni . ;)
FrustratedWithFormsDesigner
źródło
0

Dużą część programowania stanowi pisanie. Malowanie polega na głaskaniu pędzlem, ale powtarzanie jest dość powierzchowne.

Czy zastosowaliby tę logikę do: - Sprzedawcy dużo rozmawiają przez telefon. - Menedżerowie chodzą na wiele spotkań. - Śpiewacy po prostu śpiewają. - Aktorzy powtarzają skrypty.

Jeśli tak, to dlatego nie są programistami.

JeffO
źródło
-2

Jeśli chcesz być dobry w programowaniu, jest powtarzalny, ale to samo można powiedzieć o wszystkim. Powtarzanie leży u podstaw opanowania każdej umiejętności.

John Shaft
źródło
-2

Programowanie może być naprawdę dość powtarzalnym zadaniem. Zwłaszcza po zbudowaniu infrastruktury zaczyna się od nowa nudny proces tworzenia tego samego oprogramowania dialogowego / biznesowego (tylko nieznacznie innego). Masz szczęście, jeśli nie musisz brać udziału w dotrzymywaniu terminów lub jeśli masz wystarczającą liczbę juniorów, aby wykonać taką pracę.

Sokół
źródło
1
Wygląda na to, że wykonujesz jakąś pracę
Anto