2009-07-02 13 views
14

He estado haciendo un desarrollo activo en C# desde hace varios años. Principalmente construyo aplicaciones empresariales y frameworks internos en la pila .NET.Aprendiendo Python para un desarrollador de .NET

Nunca he tenido la necesidad de utilizar otros lenguajes de alto nivel principales además de C# para mis tareas, ya que .NET es la plataforma estándar que utilizamos.

Existen algunas aplicaciones heredadas de Python que se me ha pedido que admitan en el futuro, no tengo exposición a python y a los lenguajes dinámicos en general (aunque he hecho bastante JavaScript).

Tenía la esperanza de obtener alguna orientación/consejo para ayudarme a aprender un lenguaje como el de pitón para la mente estática.

EDITAR: Usar IronPython no es una opción.

+0

Duplicado: 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, etc. –

Respuesta

19

Foord and Muirhead's IronPython in Action es un libro increíblemente bueno, perfectamente adecuado para enseñar Python a gente de .NET, así como para enseñar .NET a gente de Python. Puedo ser parcial, ya que era un crítico de tecnología y Foord es un amigo, pero he tenido otros casos en el pasado en que un amigo escribió un libro y yo lo revisé tecnológicamente, y terminé decidiendo que el libro estaba equivocado y decir públicamente lo que (manera de perder amigos, pero, simplemente no puedo decir una mentira, no donde Python se trate al menos! -)

Editar: Si tienes prohibido se mueva a IronPython (que haría probablemente sea compatible con sus aplicaciones heredadas, por cierto), hay mejores respuestas: Mark Pilgrim's Dive into Python a menudo se considera la mejor introducción de Python para el desarrollador experimentado, y mi propio Python in a Nutshell ha sido elogiado como el modo más rápido a bordo para los desarrolladores de superestrellas. I soy por supuesto parcial a favor de estos - Mark es un colega, y mi esposa fue un editor de tecnología clave para su libro (y el mío también), y obviamente también estoy predispuesto a favor de mi propio libro ;-). Pero entonces, I do tienden a ser sesgados hacia muchos de los mejores libros de Python, ya que he tenido una mano en su edición, o soy amigo de sus autores, o ambos ;-).

+0

¿El objetivo de este libro es apuntar al framework .NET con python? si es así, entonces esto no es lo que estoy buscando ya que tengo que admitir aplicaciones heredadas escritas en python –

+0

Si tiene prohibido mudarse a IronPython (que probablemente sea compatible con sus aplicaciones heredadas, por cierto), hay mejores respuestas, déjame editar mi respuesta para mencionarlas. –

+0

Alex: ¿Iron Python 2.0.1 se integra con Visual Studio, es decir, puede crear y abrir proyectos de IronPyton en VS? –

1

Recomendaría usar IronPython para ayudarlo a aprender. Es una implementación de Python en .NET framework. Entonces puede usar/aprender Python con acceso a la biblioteca de clases .NET.

Un buen lugar para comenzar es descargando IronPython y mirando IronPython in Action, que es un muy buen libro mirando a Python en .NET Framework.

EDITAR: Dado que IronPython no es una opción, haga caso omiso de esta respuesta. Gracias sin embargo.

7

Lo más difícil con el que me enfrenté al usar python viniendo de Java fue para envolver apropiadamente mi cabeza con lo de Duck Typing ... Al principio pensé que era simplemente horrible y solo me puse los pelos de la nuca .

El siguiente es el alcance por convención, pero ese es bastante fácil. Y la importancia de los espacios en blanco me dio algunos baches.

Sin embargo, una vez que te acostumbras a la concisión del lenguaje y la velocidad de desarrollo, aprendes a apreciarlo mucho más. ¡Después de un tiempo, pensé que era lo mejor que me había pasado!:-)

Aquí hay algunas cosas que me ayudaron mucho:

Primero empecé con este book y tiene los fundamentos de la lengua y para todos los días utilizan el Python Quick Reference Card era muy útil. Además, el console será su mejor aliado para probar cosas rápidas y solidificar su aprendizaje.

Para IDEs, viniendo del mundo eclipse PyDev era una opción natural para mí, pero había muchos más para elegir. Pero si está más familiarizado con el entorno de Visual Studio, el Python Tools for Visual Studio es bastante bueno también.

Buena suerte, con suerte encontrarás a Python tan divertido como yo.

3

Hay un gran obstáculo inicial para sentirse cómodo con el tipado dinámico. El primer paso es cuando miras el código de Python y te das cuenta de que las variables no están definidas en ningún lugar, sino que simplemente las creas de la nada, lo cual se siente como saltar sobre un acantilado. Hay un breve momento antes de que su ala delta atrape el aire correctamente.

Y luego va a tomar un tiempo antes de confiar en sus recién descubiertas alas dinámicas, y probablemente solo pueda obtenerlas haciendo acrobacias aéreas con ellas. Aprenda cómo python maneja las referencias, diviértase con los métodos de parcheo de monos, pato escriba varios animales. Intenta aprender algunos trucos feos.

Y aunque no puede usar IronPython para esto, no hay ninguna razón por la que no pueda usarlo para aprender Python.

1

Yo recomendaría simplemente leer un libro sobre él. Un libro para principiantes. Contendrá muchas cosas que ya sabes, pero no te perderás nada con respecto al uso de un lenguaje dinámico. Puedo indicarle Dive into Python, que parece ser muy amigable, o The Python Tutorial, que parece ser muy acertado (así lo aprendí).

2

Experimentarás una gran conmoción cultural al pasar de C# al salvaje interior de tipo pato de Python. La falta de tipos e intellisense puede ser bastante desalentador. Lo bueno es que tienes experiencia en JavaScript. También debes saber que las reglas de bloqueo sensibles a Indent de Python pueden ser muy confusas para la inexperiencia (generalmente, te encanta o lo odias)

Aparte de eso, el mayor desafío para pasar de un idioma a otro suele ser el marco. Conocer todas las clases y funciones simplemente toma tiempo desafortunadamente.

1

Para un desarrollador con experiencia aprendiendo Python, Dive Into Python es un muy buen libro.

El libro de Wesley Chun Core Python Programming adopta un enfoque más "básico", que puede ser un poco lento para un desarrollador experimentado. Pero permitió comparaciones muy sencillas de la sintaxis básica y los operadores en comparación con otros lenguajes. El estilo de escritura de Wesley es muy fácil de leer, y sus proyectos de ejemplo no son lo suficientemente triviales como para ser realmente interesantes.

La Python Cookbook es una excelente referencia para aprender a programar de forma 'pitonica'. Este libro contiene cientos (?) De ejemplos de cómo resolver problemas cotidianos comunes con Python. En general, la serie "Libro de cocina" lo expondrá a las expresiones idiomáticas del idioma más rápido que cualquier otro libro.

Cuando necesito aprender un nuevo lenguaje de programación, empiezo a usarlo para todas las tareas de "mantenimiento diario" que surgen, todas las pequeñas cosas que normalmente resolvería con un script de shell o con herramientas comunes de Unix - I comienza a usar el nuevo lenguaje para resolver esos problemas. Ya que tienes.Experiencia NET, IronPython es probablemente una buena forma de aprovechar ese conocimiento mientras aprende Python. Incluso si solo instala IronPython en un recinto de seguridad personal ... y lo utiliza para todas sus tareas diarias de codificación ocupada, esa puede ser una excelente forma de aprender la sintaxis y las expresiones idiomáticas de Python.

Cuestiones relacionadas