Come spiegare ai non programmatori che la programmazione non è un'attività ripetitiva? [chiuso]


11

Alcune persone hanno la visione di programmare che si tratta solo di digitare ripetutamente su una tastiera. Niente di tutto questo è vero. Prima di tutto, c'è molto di più da fare che scrivere il codice, come l'architettura di progettazione e così via. In secondo luogo, potrebbe essere un compito molto variabile e non ripetitivo, con nuove sfide che arrivano continuamente.

Come dovresti spiegare che la programmazione non è un compito ripetitivo per i non programmatori ?


5
Chiedi, il loro lavoro è un'attività ripetitiva? Se è, quindi, beh, fa schifo per loro, probabilmente non conoscono le gioie di una professione creativa e varia. In caso contrario, dire che è esattamente lo stesso.
Mark Canlas,

4
@Mark Canlas: buon punto. Che lavoro hanno queste persone (in vista della programmazione come digitazione ripetitiva)? È probabile che potresti evidenziare una superficiale ripetitività nelle loro attività quotidiane e ridurre il loro lavoro a "qualcosa di ripetitivo", e poi chiedere loro di spiegare come non lo è .
FrustratedWithFormsDesigner,

14
Se è ripetitivo, lo stai facendo male.

1
Tale affermazione era intesa in generale. Molte attività vengono eseguite in modo errato quando si ripetono le stesse operazioni. Basta incollare parti di automobili insieme? Progetta un robot per farlo (supponendo che tu possa, ovviamente - in caso contrario, scusa se perderai il lavoro). Basta unire le parti del robot? Costruisci un robot per costruire i robot;) Fondamentalmente è una programmazione . Aggiungi più livelli per infinita non ripetitività.

2
Supponiamo che il calcio sia uno sport ripetitivo (tutti continuano a fare la stessa cosa, calciare la palla).
apoorv020,

Risposte:


31

Fornisci loro esempi a cui possono riferirsi.

Il tennis è ripetitivo. Continui a colpire sempre la palla dall'altra parte della rete.

Il calcio è ripetitivo. Continui a calciare la palla ogni volta fino a quando non trovi un palo.

Suonare il piano è ripetitivo. Continui a muovere le dita sul tavolo.

Accidenti, tutto così noioso !!!


3
Il tennis, il calcio e il pianoforte sono noiosi, in un modo in cui la programmazione non lo è. In tutte queste attività, ci si trova più volte di fronte alla stessa situazione e si deve fare la stessa cosa. Nella programmazione, tuttavia, come hanno sottolineato altre risposte, se ci si trova nella stessa situazione due volte, lo si sta facendo male.
Avi,

1
Allo stesso modo, la programmazione è noiosa come non lo sono il tennis o il piano, quindi è davvero un argomento controverso.
Maurycy,

18

Si può sempre dire che la programmazione è la digitazione ripetitiva esattamente nella stessa misura in cui la scrittura in prosa è la digitazione ripetitiva. Si scriverà un grande (o addirittura mediocre) romanzo sedendosi e mettendo insieme le lettere con cura?


18

Bene, è in un certo senso. Digiti ripetutamente le stesse lettere (AZ, az, 0-9) più e più volte. Solo in diverse combinazioni.

Di solito cerco di evitare simili discussioni con queste persone.


1
@Rook - Un buon consiglio.
John Shaft,

4
+1. Mi viene in mente un bel confronto tra i libri e l'alfabeto . (Si traduce liberamente in: L'alfabeto è una raccolta di lettere, che supera i libri sia nella struttura che nel contenuto. Mentre nei libri le lettere sono tutte
confuse

1
Spero che tu non eviti tutte le persone che hanno un certo interesse per te.

3
@Rook: Avere qualcuno che fa domande sul mondo della programmazione è una benedizione. Non evitarli. Parla con loro. Tanto quanto puoi.

4
Cerco di mescolare le cose usando la punteggiatura. L'AZ non è abbastanza interessante per me.
MJB,

13

La programmazione è molto simile alla composizione musicale . Che è lungi dall'essere un processo ripetitivo.

  • Inizi a pensare alla visione d'insieme di ciò che devi raggiungere
  • Pensi a un piccolo pezzo della tua composizione e lo scrivi
  • Una volta fatto, lo suoni (F5 in Visual Studio)
  • Ripeti il ​​processo, se necessario
  • A volte prendi in prestito idee o ti ispiri ad altri compositori
  • A volte si esegue il refactoring della canzone spostando o rielaborando le parti

A volte, non sai cosa vuoi e giochi. Probabilmente il modo migliore per ottenere composizioni più interessanti ...


1
Haha ... +1 per averlo giocato (F5 in Visual Studio). Ora, se solo potessi aggiungere un tasto F5 alla mia chitarra ...
JasCav,

3
-1 per Visual Studio;)
Giordania,

Pierre, pur non essendo d'accordo con la tua risposta globale all'OP, non sono d'accordo sul fatto che la composizione musicale sia simile alla programmazione. La composizione è più dura - penso di averla ragionevolmente messa bene in questo post: linkedin.com/…
azheglov,

1
@azheglov: più difficile in base a cosa? Chiunque può comporre. Ora pochissimi saranno su MTV come pochissimi di noi saranno intervistati dalla CNN

Anche se, per esempio, comporre musica è "più difficile", i problemi nella scala CS compensano: ogni riga di codice può essere più facile da scrivere di una singola nota, quindi abbiamo progetti con letteralmente milioni (se non più) righe di codice. Quindi, anche se ogni azione atomica è più semplice, i migliori programmatori dovrebbero semplicemente risolvere problemi più difficili.
Tikhon Jelvis,

4

Di solito spiego che la programmazione è una soluzione creativa dei problemi. Hai un problema: vuoi una funzionalità in un prodotto (e di solito scelgo un prodotto ben noto, Amazon.com, MS Word, ecc.), E non è lì. Non è mai stato fatto prima, e tu sei il primo, quindi è come qualsiasi progetto artistico: hai una visione, ma devi capire un percorso.

Mi concentro anche sul fatto che esiste più di un modo per risolvere il problema, un sacco di modi davvero cattivi e probabilmente più di un modo buono. A lungo termine potrebbe esserci un modo migliore , ma quel modo migliore non sarà evidente per molto tempo (estensibilità, riutilizzabilità, ecc.), Quindi al momento dello sviluppo, ci sono molte importanti richieste di giudizio.

Infine, il prodotto finale può essere amato o odiato dal destinatario. Proprio come alcune persone adorano Picasso e alcune non riescono a creare teste o code di arte moderna - alcune persone potrebbero amare un film e altri potrebbero odiarlo. Fai il meglio che puoi per la maggior parte delle persone e pensi di non poter piacere a tutti.

Concentrandosi su:

  • territorio sconosciuto
  • nessuna risposta
  • soggetto a interpretazione

Mostra che questo lavoro è molto più simile all'arte e molto meno come il lavoro noioso ripetitivo.

Ne parlo abbastanza spesso con artisti (e sembrano avere una convinzione istintiva che il lavoro al computer non sia creativo. Di solito riesco anche a metterlo in relazione con la forma d'arte preferita dell'artista. Ad un certo livello, la maggior parte degli artisti sono anche tecnici - la pittura , ballare, fare musica e probabilmente qualsiasi altra arte - tutte implicano una serie di attività ripetitive che ti portano al punto di eseguire qualcosa di nuovo, diverso e creativo. In questo modo, gli artisti hanno generalmente problemi a negare che attività apparentemente ripetitive possono condurre a opere di ispirazione e bellezza.

A quel punto, di solito sono disposti ad ammettere che solo perché la mia "arte" comporta una serie di dichiarazioni di sintassi bizzarre e diagrammi UML dall'aspetto insipido, ciò non significa che non sia creativo in quelle righe di codice e i modelli del sistema alla fine realizzano qualcosa di molto diverso dalla somma delle sue parti.


2
Essendo un artista me stesso, mi piace questo confronto. Avrà senso per la maggior parte degli artisti, di tutti i tipi e per coloro che possono relazionarsi con attività artistiche. (Non sono sicuro dei non artisti.)
DarenW,

3

La programmazione riguarda le astrazioni. Più scrivi, più somiglianze riesci a vedere. Ma poi è tempo di astrarre. Rifattorizzando si evolve un framework che elimina la duplicazione. Ciò riduce la complessità del codice di dominio problematico.

È possibile una programmazione ripetitiva. Ma è inefficiente.


+1 quando la codifica diventa molto ripetitiva, è un segno che forse "stai sbagliando!"
FrustratedWithFormsDesigner,

3

Se davvero fosse, useremmo semplicemente copia e incolla: D

Una delle sfide chiave nella programmazione è quella di modellare blocchi di alta qualità, così che tu

  • puoi usarli per costruire il tuo edificio (ovvero il software che stai costruendo) di componenti solidi, aumentando così la stabilità
  • possono riutilizzarli più volte nello stesso edificio o anche in edifici diversi (per ridurre la ripetizione) e quindi aumentare la produttività
  • sarà in grado di cambiare un blocco senza far crollare l'intero edificio, aumentando così la flessibilità locale
  • sarà in grado di cambiare tutte le istanze di un blocco contemporaneamente, aumentando così la flessibilità globale

Per sua stessa natura, questa sfida ti richiede di non ripetere te stesso .

Come corollario: se ti ripeti come programmatore, perdi tempo a costruire software, che non è né stabile, né flessibile.


1

A parte le altre risposte che sottolineano come la ripetitività o la digitazione / clic sia superficiale, potresti anche sottolineare che la programmazione di solito è molto più sulla risoluzione dei problemi che sulla digitazione (e penso che sia stato Djikstra a dire che l'informatica è come molto sui computer come l'astronomia riguarda i telescopi - o qualcosa di simile ).

La digitazione è solo un modo per implementare la soluzione (e attualmente la più popolare), sebbene ci siano altri modi, come:

  • pseudocodice su una lavagna bianca (che illustra la soluzione, ma in realtà non esegue o fa nulla, purtroppo)
  • schede perforate (ora considerate obsolete)
  • Forse array logici programmabili o se vuoi che la tua soluzione sia implementata direttamente nell'hardware (anche se molto probabilmente ci sarà qualche digitazione per ottenere la soluzione dal tuo cervello al PLA, non so quanto sia comune "codificare" questi le cose direttamente - non lavoro davvero con loro, solo conoscerle da altri che lo fanno).
  • persone (ho sentito parlare di un gruppo recentemente che ha implementato algoritmi di ordinamento come una danza)
  • rocce in un deserto . ;)

0

Gran parte dell'atto della programmazione è scrivere. Dipingere comporta accarezzare con un pennello ma chiamare ripetitivo è piuttosto superficiale.

Applicerebbero questa logica a: - I venditori parlano molto al telefono. - I manager partecipano a molte riunioni. - I cantanti cantano e basta. - Gli attori ripetono gli script.

Se è così, ecco perché non sono un programmatore.


-2

Se vuoi essere bravo a programmare è ripetitivo, ma lo stesso si può dire per qualsiasi cosa. La ripetizione è al centro della padronanza di qualsiasi abilità.


-2

Beh, la programmazione può davvero essere un compito piuttosto ripetitivo. Soprattutto quando l'infrastruttura è stata costruita, il noioso processo di creazione dello stesso dialogo / software aziendale (solo leggermente diverso) ricomincia continuamente. Sei fortunato se non devi partecipare per rispettare le scadenze o se hai abbastanza ragazzi per fare quel tipo di lavoro.


1
Dipende dal tipo di lavoro che fai, immagino
Anto,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.