I libri di programmazione in altre lingue sono utili per Python? [chiuso]

3

Sono un programmatore Python intermedio autodidatta; Mi imbatto spesso in libri popolari sullo sviluppo e la programmazione di software scritti in altre lingue (spesso Java).

Esempi tipici:

  • Refactoring: migliorare la progettazione del codice esistente
  • Design Patterns, Gang of Four
  • Test Driven Development: per esempio
  • The Art of Unit Testing: con esempi in .NET

In generale, quanto è utile leggere un libro scritto per un'altra lingua? In particolare, che dire di Python? Si dovrebbe attenersi a libri specifici della lingua?

Ad esempio, molte persone lodano Design Patterns dal GOF, non l'ho mai letto perché il modello si applica ad altri linguaggi (dopotutto Python riguarda anti-patterns , giusto?) tuttavia sento il bisogno di per via del suo posto nel cannone della letteratura CS.

Allo stesso modo, L'arte del test delle unità: con esempi in .NET aiuta un programmatore Python a imparare il test delle unità anche se gli esempi sono in .Net?

    
posta Jason Wirth 21.04.2013 - 18:50
fonte

2 risposte

11

Assolutamente! In realtà è molto utile staccarsi occasionalmente dalla tua lingua principale, perché questo ti consente di vedere i concetti di programmazione attraverso una lente diversa che ti permetterà di ottenere nuove prospettive.

Ciò che rende buono qualsiasi software, o l'alta qualità non riguarda mai la sintassi o la lingua di scelta. È come viene applicata questa lingua. Steve McConnell chiama questa programmazione in una lingua invece di programmare in una lingua.

McConnell ha scritto Codice completo , un libro che consiglio vivamente. Fa una nota specifica perché gli esempi sono in molte lingue diverse. Una delle ragioni è che vuole che il lettore si concentri sui concetti che sta illustrando e non sulla sintassi.

I libri nel tuo elenco descrivono concetti generali che sarebbero sicuramente utili per qualsiasi programmatore, indipendentemente dalla lingua di scelta.

Partendo, si vuole concentrarsi solo sulla possibilità di scrivere codice che compila. Non ci vuole molto tempo per imparare la sintassi di una determinata lingua e con la documentazione e l'intelligenza ciò richiede ancora di più da quanto devi effettivamente ricordare. La maggior parte delle lingue può essere appresa in pochi mesi. Tuttavia, scrivere software di alta qualità è una disciplina e un lavoro artigianale che richiede anni di pratica ed esperienza e anche allora ci sarà sempre spazio per miglioramenti. Apprendere concetti di design come come rendere il tuo software più testabile, modulare, liberamente accoppiato, ecc., Ti aprirà gli occhi su come guardi il codice in generale.

Quando smetti di preoccuparti della sintassi e riesci a vedere il codice attraverso una lente neutra, questo ti avvantaggerà davvero come programmatore.

    
risposta data 21.04.2013 - 19:41
fonte
2

Prima di tutto, alcuni dei libri che hai menzionato sono scritti con esempi in più linguaggi di programmazione. Ad esempio, DP di GOF è scritto con C ++ e, se meno, con esempi di Smalltalk, e TDD è scritto con esempi Java e Python.

Se sei ben preparato nel raccogliere ciò che è utile, lasciando perdere ciò che non lo è e traducendo ciò che hai raccolto, trarrai vantaggio dalla lettura della maggior parte dei libri generalmente consigliati per i programmatori. Tuttavia, se hai poca esperienza in questo, puoi iniziare dai libri "near-transfer". Altrimenti imparerai molto poco, o imparerai cattive idee e abitudini - alcune delle pratiche sono dipendenti dal paradigma della lingua. Ho visto una buona quantità di programmatori Python con tutti i fastidi per l'implementazione di DP di GOF in C ++.

Trasferimento è un termine psicologico ed educativo per applicare ciò che hai imparato in un contesto diverso. Essi distinguono tra trasferimento vicino e lontano. Solitamente il trasferimento quasi ravvicinato è più semplice e più efficace, il che significa che è necessario impegnarsi maggiormente per il trasferimento remoto.

Per l'apprendimento vicino al trasferimento, consiglio vivamente di imparare da lingue simili, in termini di paradigma, alla lingua di destinazione, fratelli nella tipologia linguistica. Per Python, sarebbe qualcosa come Smalltalk - o al giorno d'oggi Ruby ma l'eredità di Smalltalk è maggiore.

Ad esempio, imparerai molto di più leggendo DPSC piuttosto che leggendo esclusivamente la DP di GOF. (BTW, leggere contemporaneamente DPSC e GOF's DP con un attento contrasto e confronto è un'esperienza di apprendimento molto gratificante)

Dalle mie esperienze di trasferimento prossimo, ricordo salti di miglioramento nella mia programmazione Python dalla lettura di libri (articoli, documenti ed ecc.) per Smalltalk, APL, Io e ICON, tutti di natura dinamica.

    
risposta data 22.04.2013 - 02:44
fonte

Leggi altre domande sui tag