Che cosa significa Dijkstra quando raccomanda una padronanza eccezionalmente buona della propria lingua madre? [chiuso]

28

Dijkstra scrive qui :

Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.

Non capisco l'ultima parte di questa citazione. Puoi spiegare o elaborare per favore?

P.S. Sono cresciuto in India. Parlo bengalese a casa; Parlo Marathi nella comunità in cui vivo; Hindi è la lingua nazionale e molto ampiamente parlata, quindi lo so, e a scuola e all'università mi è stato insegnato l'inglese come la prima lingua Certo, ora penso in una moltitudine di lingue e devo ammettere che non ho padronanza su nessuno . Questo sta davvero influenzando la mia attitudine alla programmazione? Se sì come? e ci sono soluzioni ?

    
posta Chani 06.05.2011 - 07:11
fonte

6 risposte

28

Mentre sono d'accordo con ciò che alex e quick_now hanno detto, credo che ci possa essere una rotazione diversa. Questa è la mia teoria e non sto suggerendo che Dijkstra intendesse la stessa cosa.

Che cos'è la "padronanza di una lingua": è la capacità di prendere gli elementi costitutivi di base di una lingua e di inserirli in frasi e frasi costruttive e utili. Alfabeti e personaggi non hanno senso in se stessi. Devi metterli insieme e ricavarne un significato. Le parole non hanno senso da sole; è solo quando li metti in una sequenza corretta basata su sintassi e grammatica che esprimono idee concrete.

Non è esattamente la stessa cosa nella programmazione del computer? Mettiamo insieme alcune parole chiave e simboli e ne ricaviamo materiale concreto. Un linguaggio di programmazione ha simboli e grammatica proprio come un linguaggio naturale. La padronanza di un linguaggio di programmazione richiede la capacità di mettere insieme questi simboli (individualmente privi di significato) e le regole per rendere qualcosa di significativo e utile.

Credo che questo significhi che esiste una diretta correlazione tra la capacità di una persona di apprendere una lingua umana e una lingua di computer. Entrambi hanno bisogno dello stesso insieme di abilità umane e capacità di pensiero. Dai uno sguardo ai tuoi colleghi e scoprirai che quelli con scarse capacità di programmazione sono anche quelli che non sanno parlare o scrivere in modo chiaro come gli altri. Coloro che sono bravi a scegliere le lingue umane hanno le competenze necessarie per diventare anche dei buoni programmatori.

    
risposta data 06.05.2011 - 07:49
fonte
22

Dijkstra sta dicendo che devi essere in grado di scrivere e parlare chiaramente, concisamente e con forza nella lingua dell'ambiente del tuo posto di lavoro. Ha perfettamente ragione: a meno che tu non possa parlare e scrivere di problemi tecnici (e non tecnici) in un modo che gli altri possano capire immediatamente, sei ostacolato e in qualche modo inefficiente come un ingegnere del software.

L'idea è che scrivere il codice su sia tanto importante quanto scrivere il codice stesso.

SO è l'esempio perfetto: quante volte abbiamo visto domande buone, incisive e preziose saltate via o chiuse perché il poster non poteva esprimersi bene in inglese? Risposta: troppi.

    
risposta data 06.05.2011 - 13:32
fonte
7

La citazione dice che devi conoscere la tua lingua madre (ad esempio Marathi nel tuo caso). Questo è un vantaggio importante.

Gli psicologi generalmente pensano che conoscere bene una lingua ti aiuti a esprimere meglio i tuoi pensieri. Alcuni dicono che tutto il pensiero che facciamo è limitato al nostro linguaggio primario. Più ricco è il linguaggio (e la sua conoscenza), migliore è la capacità di comunicare e strutturare le idee.

Conoscere più lingue aiuta a comprendere anche diversi modelli di pensiero.

    
risposta data 06.05.2011 - 07:18
fonte
6

Guardando il pezzo nella sua interezza, è un elenco interessante ma risale al 1975. È giusto dire che in una certa misura i tempi sono cambiati nel frattempo, rendendo alcune parti di quella lista di principi un po 'obsolete.

Un'abilità chiave che credo che i programmatori dovrebbero avere è la capacità di comunicare in modo efficace. Questo non significa solo spiegazione; significa comprensione. Indipendentemente da quale sia la tua lingua di lavoro, inglese nel tuo caso, sebbene non sia la tua lingua madre, coloro che hanno difficoltà a comunicare efficacemente nella loro lingua madre non troveranno più facile altrove.

Come nota generale, è giusto dire che indipendentemente da quale sia la tua posizione nella vita, se hai difficoltà nella tua lingua madre, sarai svantaggiato nella tua vita quotidiana.

Non vorrei essere tagliato su ciò che intende per padronanza - in base al tuo contributo di cui sopra, sospetto tu abbia una padronanza dell'inglese più che adeguata e da ciò, estrapolo che comunichi efficacemente nelle altre lingue.

    
risposta data 06.05.2011 - 10:43
fonte
5

Sospetto che si stia riferendo ad avere una buona comprensione di ciò che le persone vogliono da te - in altre parole, una buona capacità di comunicazione verbale.

(Per mettere il mio punto di vista su di esso: parte di questo significa, nel contesto della programmazione, che a volte è necessario capire cosa le persone NON dicono, o cosa dicono ma non molto chiaramente.)

    
risposta data 06.05.2011 - 07:20
fonte
2

Penso che essere bravi a (qualsiasi) lingua serva questo -

Se il tuo punto non è chiaro, puoi pensare, rivedere, riformulare in modo migliore. Finché quello che dici è esattamente ciò che vuoi che la prossima persona (o macchina) capisca.

    
risposta data 25.04.2012 - 11:57
fonte

Leggi altre domande sui tag