2009-07-02 13 views
14

Ho fatto lo sviluppo attivo in C# per diversi anni. Io principalmente realizzo applicazioni aziendali e framework interni sullo stack .NET.Learning Python per uno sviluppatore .NET

Non ho mai avuto la necessità di utilizzare altri linguaggi di alto livello mainstream oltre a C# per le mie attività, dal momento che .NET è la piattaforma standard che usiamo.

Ci sono alcune applicazioni Python legacy che mi è stato chiesto di supportare in futuro, non ho alcuna esposizione a Python e ai linguaggi dinamici in generale (anche se ho fatto un bel po 'di JavaScript).

Speravo di ottenere qualche consiglio/consiglio per aiutare a imparare un linguaggio come Python per la mente tipizzata staticamente.

MODIFICA: L'uso di IronPython non è un'opzione!

+0

Duplicato: http://stackoverflow.com/questions/934937/concise-python-book-recommendation, http://stackoverflow.com/questions/111857/what-did-you-use-to-teach-yourself -python, http://stackoverflow.com/questions/686301/python-book-to-buy, http://stackoverflow.com/questions/34570/what-is-the-best-quick-read-python-book -out-there, ecc. –

risposta

19

Foord and Muirhead's IronPython in Action è un libro incredibilmente buono, perfettamente adatto per insegnare a Python ai personaggi .NET e per insegnare a utenti di .NET a Python. Potrei essere di parte, dato che ero un revisore tecnico e Foord è un amico, ma ho avuto altri casi in passato in cui un amico ha scritto un libro e io l'ho revisionato tecnicamente - e alla fine ho deciso che il libro era solo sbagliato e dicendo pubblicamente in modo (modo per perdere gli amici, ma, non riesco proprio a dire una bugia, non dove Python è interessato almeno -!)

Edit: Se siete proibito di muoversi a IronPython (che avrebbe probabilmente supportano le tue app legacy bene, btw), ci sono risposte migliori: Mark Pilgrim's Dive into Python è spesso considerato la migliore introduzione di Python per lo sviluppatore esperto, e il mio Python in a Nutshell è stato elogiato come il modo più veloce a bordo per gli sviluppatori superstar. I am ovviamente in favore di questi - Mark è un collega, e mia moglie era un editor tecnologico chiave per il suo libro (e anche il mio), e ovviamente sono anche di parte a favore del mio stesso libro ;-). Ma poi, I do tendono a essere tendenziosi verso molti dei migliori libri di Python, dato che ho avuto una mano nel loro montaggio, o sono amico dei loro autori, o entrambi ;-).

+0

Il focus di questo libro è indirizzato al framework .NET con python? se è così, allora questo non è quello che sto cercando dato che ho bisogno di supportare applicazioni legacy scritte in python –

+0

Se ti è proibito spostarti su IronPython (che probabilmente supporterà le tue app legacy bene, btw), c'è di meglio risposte, lascia che modifichi la mia risposta per menzionarle. –

+0

Alex: Iron Python 2.0.1 si integra con Visual Studio i puoi creare e aprire progetti IronPyton in VS? –

1

Si consiglia di utilizzare IronPython per facilitare l'apprendimento. È un'implementazione di Python sul framework .NET. Quindi puoi usare/imparare Python con accesso alla libreria di classi .NET.

Un buon punto di partenza è scaricando IronPython e guardando IronPython in Action, che è un ottimo libro che esamina Python sul framework .NET.

MODIFICA: poiché IronPython non è un'opzione, ignorare questa risposta. Grazie comunque.

7

cosa più difficile che mi trovavo di fronte al utilizzando Python provenienti da Java è stato quello di avvolgere correttamente la mia testa tutto il duck typing cosa ... In un primo momento ho pensato che fosse semplicemente orribile e vestita solo i peli sulla schiena sul mio collo .

Il prossimo è lo scopo per convenzione, ma quello è piuttosto semplice. E l'importanza degli spazi bianchi mi ha dato qualche problema.

Tuttavia, una volta che ti consenti nella concisione della lingua e nella velocità di sviluppo, impari ad apprezzarlo molto di più. Dopo un po 'ho pensato che fosse la cosa migliore che mi fosse mai capitata !!:-)

qui sono alcune cose che mi hanno aiutato molto:

Prima ho iniziato con questo book e ottenuto le basi della lingua e per tutti i giorni utilizzano il Python Quick Reference Card è stato molto utile. Anche lo console sarà il tuo miglior alleato per provare cose veloci e consolidare il tuo apprendimento.

Per gli IDE, provenienti dal mondo di eclissi PyDev è stata una scelta naturale per me, ma c'erano molti altri tra cui scegliere. Ma se sei più familiare all'ambiente di Visual Studio, lo Python Tools for Visual Studio è davvero dannatamente buono.

Buona fortuna, spero che troviate Python tanto divertente quanto me.

3

C'è un grande ostacolo iniziale per familiarizzare con la digitazione dinamica. Il primo passo è quando guardi il codice Python e ti rendi conto che le variabili non sono definite da nessuna parte, ma le crei semplicemente dal nulla, il che sembra di saltare sopra una scogliera. C'è un breve momento prima che il tuo deltaplino catturi l'aria correttamente.

E poi ci vorrà del tempo prima che ti fidi delle tue ali nuove e dinamiche, e probabilmente puoi ottenerle solo facendo acrobazie con loro. Scopri come Python gestisce i riferimenti, divertiti con i metodi di patch delle scimmie, tipo anatra, vari animali. Prova ad imparare alcuni trucchi brutti.

E anche se non è possibile utilizzare IronPython per questo, non c'è motivo per cui non si possa usarlo per imparare Python.

1

Raccomanderei solo di leggere un libro a riguardo. Un libro per principianti. Conterrà molte cose che già conosci ma non ti mancherà nulla riguardo l'utilizzo di un linguaggio dinamico. Posso indicarti il ​​Dive into Python, che sembra essere molto amichevole, o The Python Tutorial che sembra essere molto al punto (è così che ho imparato).

2

Proverai un po 'di shock culturale passando da C# all'outback di Python, tipicamente selvaggio. La mancanza di tipi e intelligenza può essere piuttosto scoraggiante. Meno male che hai esperienza in JavaScript. Sappi anche che le regole di blocco indent-sensitive di Python possono essere molto confuse per l'inesperienza (di solito lo ami o lo odi :-)

A parte questo, la più grande sfida è il passaggio da una lingua all'altra. Conoscere tutte le classi e le funzioni, purtroppo, prende solo il tempo.

1

Per uno sviluppatore esperto che sta imparando Python, Dive Into Python è un ottimo libro.

Il libro Core Python Programming di Wesley Chun richiede un approccio più "ground-up", che può essere un po 'lento per uno sviluppatore esperto. Ma ha consentito confronti molto semplici della sintassi di base e degli operatori rispetto ad altre lingue. Lo stile di scrittura di Wesley è molto facile da leggere, ei suoi progetti di esempio non sono abbastanza banali per essere effettivamente interessanti.

Python Cookbook è un riferimento eccellente per imparare a programmare in modo "Pythonic". Questo libro contiene centinaia (?) Di esempi su come risolvere i problemi quotidiani più comuni con Python. In generale, la serie "Libro di cucina" ti espone agli idiomi della lingua più velocemente di qualsiasi altro libro.

Ogni volta che ho bisogno di imparare un nuovo linguaggio di programmazione, comincio ad usarlo per tutte le attività di "manutenzione giornaliera" che vengono fuori - tutte le piccole cose che normalmente risolverei con uno script di shell o con strumenti comuni Unix - I iniziare a utilizzare la nuova lingua per risolvere questi problemi. Dal momento che hai.Esperienza NET, IronPython è probabilmente un buon modo per sfruttare tale conoscenza durante l'apprendimento di Python. Anche se si installa IronPython in una sandbox personale ... e lo si utilizza per tutte le attività quotidiane di lavoro impegnato nella codifica, questo può essere un ottimo modo per imparare la sintassi e le espressioni idiomatiche di Python.

Problemi correlati