I poveri scrittori fanno i programmatori poveri? [chiuso]

16

Sto leggendo Coders at Work di Peter Seibel, e molte volte è stato detto che i programmatori che non possono scrivere in genere fanno dei programmatori poveri - è stato rivendicato da Douglas Crockford, Joshua Bloch , Joe Armstrong, Dijkstra (e ho letto solo metà del libro).

Che ne pensi di questo? L'incapacità di esprimerti per iscritto in un linguaggio naturale come l'inglese è un ostacolo alla scrittura di un buon codice?

    
posta gablin 06.11.2010 - 00:38
fonte

12 risposte

30

C'è molto di più nella programmazione di "scrivere codice". Gran parte dell'essere un programmatore di successo implica la comunicazione; Essere in grado di connettersi con i clienti, comprendere le loro esigenze, tradurli in ambito tecnico, esprimerli in codice e quindi spiegare i risultati ai clienti.

I programmatori che hanno difficoltà a esprimersi chiaramente per iscritto potrebbero non essere in grado di comunicare bene in generale, mentre coloro che hanno una buona padronanza del linguaggio e della scrittura possono generalmente tradurre tali competenze nel codice che scrivono.

Penso che non riuscire a scrivere bene, e quindi comunicare bene, impedirà di essere un ottimo programmatore.

Come dicono Jason Fried e David Heinemeier Hansson (di 37signals) nel loro libro Rework:

If you're trying to decide among a few people to fill a position, hire the best writer.

Being a good writer is about more than writing. Clear writing is a sign of clear thinking. Great writers know how to communicate.

    
risposta data 06.11.2010 - 01:01
fonte
16
  • Se non riesci a spiegare qualcosa abbastanza bene probabilmente non lo capisci abbastanza bene Essere una persona intelligente significa che lavorerai con altre persone intelligenti e dovrai comunicare con loro in modo efficace.
  • Qualsiasi idea eccezionale che hai è inutile se esiste solo nella tua testa Essere in grado di comunicare efficacemente le tue idee è un segno di grande comprensione. Questo vale per qualcosa di più del semplice campo della programmazione.
risposta data 06.11.2010 - 01:08
fonte
4

Penso che se esaminiamo la domanda, otteniamo direttamente la risposta:

Is an inability to express yourself in writing in a natural language such as English a hindrance of writing good code?

Che cosa significa in realtà scrivere un buon codice?

Programs must be written for people to read, and only incidentally for machines to execute.
- Abelson & Sussman, Structure and Interpretation of Computer Programs

Significa esprimersi in modo chiaro, conciso, corretto ed elegante scrivendo in un linguaggio di programmazione.

L'unica differenza tra esprimersi abilmente in inglese o in un linguaggio di programmazione è che l'inglese è molto più indulgente.

    
risposta data 06.11.2010 - 14:21
fonte
3

Non penso che sia un ostacolo importante per una scimmia del codice (sto assumendo un certo livello / abilità di base per esprimere se stessi nella loro lingua madre). Tuttavia, penso che possa rapidamente diventare un ostacolo importante quando tu (lo sviluppatore) devi iniziare a articolare meglio i progetti / l'arco / i piani per un pubblico non tecnico. Secondo la mia esperienza, portare qualcosa a qualcun altro che è più o meno allo stesso livello tecnico di me è più facile e richiede competenze linguistiche (naturali) considerevolmente inferiori a quella di articolare qualcosa per un cliente e / o un manager. Allo stesso modo, anche quando si tratta di un pubblico tecnico, poiché l'argomento diventa meno concreto, la persona che sta scrivendo su di esso (o parlando per quella materia) deve essere abbastanza articolata.

    
risposta data 06.11.2010 - 01:04
fonte
3

Dipende da cosa intendi per "codice buono".

Se intendi il codice che funziona, non c'è quasi alcuna relazione tra l'essere in grado di comunicare con gli umani e la capacità di comunicare con i computer.

Se intendi il codice che funziona, è manutenibile ed esprime chiaramente l'intenzione del codice, c'è assolutamente una relazione tra la scrittura di un buon codice e la scrittura in una lingua destinata esclusivamente agli esseri umani.

Anche se non avresti bisogno di tutte le diverse abilità richieste per essere un buon scrittore per scrivere codice comprensibile, ci sono ancora alcuni elementi che devono esserci, poiché entrambi saranno letti dagli umani. Per certi versi è ancora più difficile scrivere un buon codice, in quanto dovrebbe descrivere l'intenzione con il codice, mentre non si utilizzano costrutti che si comporterebbero male mentre venivano eseguiti dal computer.

    
risposta data 06.11.2010 - 14:40
fonte
2

Il fatto è che la codifica è anche un'abilità comunicativa. Jack Ganssle nella sua e-newsletter Embedded Muse ha recentemente citato Doug Abbott:

When you write a program, what you’re really doing is communicating to another human what it is you want the computer to do. Programming is about communication, just like any other form of writing. So yes, computer science students should be exposed to good writing. But since there’s so precious little of it in computer science, maybe they just need some basic creative writing classes.

I programmatori che non sanno come scrivere la prosa probabilmente non sanno nemmeno come scrivere codice.

Altro su questo interessante articolo:

La cattiva scrittura riflette le scarse abilità di programmazione?

    
risposta data 06.11.2010 - 01:39
fonte
2

Questo è del tutto aneddotico, ma:

Uno dei migliori programmatori di "rockstar" con cui abbia mai lavorato era uno scrittore molto povero. E quando dico "molto povero", intendo il tipo che è apparso come se fosse estremamente ubriaco, o appena alfabetizzato - quando hai visto le sue e-mail. Gli errori di battitura, la mancanza di punteggiatura, la difficoltà di esprimere chiaramente le idee e gli errori di ortografia comuni ("loro / loro sono" e così via) erano tutti abbondanti, a volte a volte atroci. Leggendo alcune delle sue e-mail - mi sarei preoccupato che inviasse direttamente i clienti via email (non avevamo bisogno di farlo in quella società) - perché avrebbe reso l'azienda brutta!

Tuttavia, era un programmatore di super star. Un ordine di grandezza più produttivo e acceso rispetto alla media.

Non sono sicuro di cosa farne. L'ho visto diverse volte con persone diverse. Alcuni semplicemente non sembrano avere un talento per sedersi e scrivere cose. E spesso non sembra influenzare il loro talento in altre aree (anche relativamente apparentemente simili, talenti del "lavoro di conoscenza", come la programmazione). Penseresti che sarebbe collegato, ma ho visto molti esempi viventi come questo, dove non lo era. Anche se credo sia possibile che siano " eccezioni che dimostrano la regola " - probabilmente non ho mai pensato di notare i cattivi scrittori che non sono programmatori, e i bravi scrittori che sono .

    
risposta data 06.11.2010 - 02:55
fonte
2

Se non riescono a scrivere bene, come possono convincerti che sono buoni programmatori?

    
risposta data 06.11.2010 - 12:10
fonte
0

Qualcuno non è in grado di esprimere con precisione un'organizzazione di sistema o un'idea in grado di scriverlo sarebbe in grado di scrivere codice - che sono istruzioni precise - interpretate correttamente da (molto) stupido computer?

    
risposta data 06.11.2010 - 00:57
fonte
0

Penso che sia molto importante per un programmatore essere in grado di comunicare bene, sia con la lingua parlata che scritta. La capacità di tradurre un'idea in parole è un prerequisito per scrivere codice.

Sia che comunichiamo con un computer o una persona, dobbiamo mettere le parole in un ordine che abbia senso seguendo le regole della grammatica. Dobbiamo pronunciare correttamente le parole o scriverle correttamente in modo che l'altra parte della conversazione possa capirle. I computer genereranno errori di sintassi, i colleghi diranno "COSA?" o sconto quello che viene detto come balbettio insano o peggio, una distrazione irritante.

Ho strongmente scoraggiato l'assunzione di candidati perché non potevano completare un pensiero o rimanere su un argomento. Una persona è stata assunta dal nostro capo in ogni caso, e si è rivelata incapace di consegnare un incarico semplice in tempo perché era distratto da qualsiasi nuova tecnologia brillante o brillante o giocattolo catturato la sua attenzione.

Quindi, sì, è importante che i programmatori siano in grado di comunicare bene. Se non riescono a comunicare efficacemente con un umano, non possono farlo con un computer.

    
risposta data 06.11.2010 - 03:22
fonte
0

I poveri scrittori fanno scrittori poveri e nient'altro. Scarsa abilità di scrittura non significa che non possono comunicare affatto, ma semplicemente non possono scrivere o esprimere molto bene. Naturalmente chiunque può affermare che l'abilità comunicativa è importante e cruciale in azienda e così via e così via, ma ciò non significa che un programmatore con scarsa capacità comunicativa non riesca a svolgere bene il lavoro. La programmazione e la scrittura sono arte, ma di tipo completamente diverso. La scrittura riguarda il modo in cui altri umani comprendono ciò che stai dicendo e / o agiscono di conseguenza, ma la programmazione non sta facendo capire al computer il tuo requisito, perché nessun computer comprenderà alcun requisito dell'utente (almeno entro 100 anni da oggi IMO). La programmazione riguarda come tradurre il requisito nel linguaggio di programmazione, ed è per questo che scrivere abilità non è così correlato.

    
risposta data 06.11.2010 - 08:51
fonte
0

Assolutamente NON!

Un buon scrittore non è altro che un buon scrittore. Chiedi a un buon scrittore di descrivere il concetto di un database a una persona non tecnica. Cosa pensi che otterresti ...?

Un buon scrittore, scrive. Un buon programmatore scrive un buon codice.

  • Codice che altri possono leggere sei mesi dopo che è stato sviluppato.
  • Codice che ha senso alle 2:00 del mattino quando il sistema ha fallito ed è in corso il debug.
  • Codice che a tutti piace prendere in prestito perché lo capiscono e possono modificarlo facilmente
  • Codice che funziona 24/7 365

Avrei continuato, ma preferirei trascorrere il mio tempo a rispondere ad altri post. Penso che voi ragazzi sappiate esattamente dove mi trovo su questo tema.

    
risposta data 06.11.2010 - 16:48
fonte

Leggi altre domande sui tag