¿Cómo se hace el cambio de C ++ a Python? Me siento más cómodo con C ++ y lo he estado usando para hacer la mayor parte de mi programación; Me parece que lleva mucho tiempo y Python hace las cosas rápidamente. ¿Cuál es la mejor manera de hacer el cambio?

Te encuentro en una situación que es sorprendentemente similar a la que tuve hace unos meses. Mi lenguaje principal es C ++ y hasta entonces había hecho casi toda mi codificación usando el mismo, ya sea algorítmico (programación competitiva), tareas de laboratorio o proyectos de cursos. Aprendí PHP MySQL también para una de mis pasantías, pero eso es irrelevante aquí.

Mi primera incursión en el reino de Python fue comenzando con un código C / C ++ y literalmente traduciéndolo línea por línea en Python (un mapeo sintáctico uno a uno). ¡Pero muy pronto, me di cuenta de que esa no era una forma muy “pitónica” de hacer las cosas! Solía ​​rastrear aleatoriamente docenas de tutoriales en línea y recursos web tratando de encontrar el que hace clic. Encontré algunos realmente buenos en este proceso y enumero los que me ayudaron para su referencia:

  1. http://practicepython.org/: Un blog dedicado a los principiantes de Python. El autor publica un problema de práctica cada semana que cubre todas las construcciones de programación comunes que encontraría durante su viaje con Python. Como ya te sientes bastante cómodo con C ++ y tienes algo de experiencia en programación, ¡idealmente debería ser un día de trabajo!
  2. Una vez que se sienta cómodo con lo básico, le sugiero que lea este artículo: Cómo escribir un corrector ortográfico de Peter Norvig. ¡El autor demuestra el funcionamiento de un corrector ortográfico de fuerza industrial con la ayuda de un código Python de 21 líneas! En mi experiencia, revisar este código línea por línea y luego volver a implementarlo por mi cuenta me dio mucha confianza con el lenguaje.
  3. Comience a jugar con las bibliotecas de Python. Mi intimidad con Python fue motivada por la PNL. Instalé la biblioteca NLTK de Python y comencé a construir algunos proyectos de juguetes usándola. Necesitaba un corpus de entrenamiento para alguna tarea para la cual tuve que rastrear un sitio web de artículos de noticias. ¡Sopa hermosa (otra biblioteca de Python) al rescate! Puede parecer un cliché, ¡pero la única manera de sentirse cómodo con cualquier lenguaje es usarlo para construir proyectos!
  4. A juzgar por el hecho de que te gustan los concursos de programación, otra forma divertida de familiarizarte con Python es resolver problemas en el Proyecto Euler. No he comenzado personalmente en esto todavía (planifique hacerlo en el futuro cercano), pero por lo que escuché, Python hace que sea muy fácil lidiar con problemas de teoría de números.
  5. ¡Cuando te sientas lo suficientemente seguro como para abordar proyectos más grandes de forma independiente, puedes consultar Python Practice Projects para obtener algunas ideas geniales!

¡Buena suerte, diviértete!

Es más un ajuste que un interruptor. Lo hice el año pasado. Algunas de las formas predeterminadas de hacer las cosas son diferentes, pero los principios generales de la informática no se ven afectados en su mayoría. Paso mucho tiempo en ambos idiomas, y a menudo escribo módulos de extensión C ++ para mantener mi código Python rápido.

La cantidad de estadísticas y aprendizaje automático que necesitará para recoger es más desalentador, en mi opinión.

Creo que el cambio de C ++ a Python es bastante sencillo. Las cosas que realmente quieres aprender son numpy y scipy. PyLearn es una bolsa mixta, pero un buen lugar para comenzar si quieres probar cosas. Theano es genial si quieres experimentar con el procesamiento en tarjetas gráficas.

Entonces, el verdadero dolor es la sangría. Intercambia llaves para el nivel de sangría para descubrir en qué bloque de código se encuentra. La mejor manera de lidiar con esto es obtener un buen IDE. Me gusta el pydev de eclipse, sé que a la gente que le gusta Wing y Emacs es mejor que nada.

Por cierto: no te rindas en C ++. En algún momento descubrirá que Python, incluso con numpy, no es lo suficientemente rápido, o puede que necesite una implementación más rápida de un algoritmo.

¡No es tan difícil! y tampoco un “interruptor”. Como está familiarizado con C ++ y las estructuras de datos, no será un problema para usted elegir Python.
En cuanto a mí, disfruto programar en Python en comparación con C y Java. Python me permite escribir código para programas que me sentiría flojo de programar en un lenguaje como C ++.