¿Es el lenguaje Python una buena herramienta para aprender algoritmos, estructuras de datos e ingeniería de software?

No ha especificado su nivel de conocimiento y experiencia en ciencias de la computación, y qué tan profundamente tiene la intención de estudiar algoritmos, estructuras de datos e ingeniería de software, pero dado que preguntó sobre los tres en una pregunta, asumiré que está cerca Las primeras etapas de su aprendizaje. Python es un buen lenguaje para comenzar en los tres temas, pero tiene limitaciones para el estudio avanzado de cualquiera de ellos.

Con respecto a los algoritmos y las estructuras de datos, las estructuras de datos integradas y el sistema de objetos de Python son poderosos bloques de construcción para estructuras más sofisticadas. Sin embargo, en Python no es realmente posible construir esas estructuras de datos muy básicas. Además, algunas de las características que hacen que Python sea muy conveniente para principiantes y para una programación rápida hacen que sea imposible construir estructuras de datos realmente eficientes. Para tomar el ejemplo más importante, todos los valores en Python son objetos etiquetados en la memoria del montón recolectado, lo cual es muy conveniente pero hace que sea esencialmente imposible construir grandes estructuras de datos con buena memoria local. (Y si sospechas que eres un principiante, esa advertencia probablemente no tenga sentido para ti, pero el punto es que Python no es un gran lenguaje para aprender qué es una buena localidad de memoria o cómo se pueden diseñar estructuras de datos y algoritmos para lograrlo .)

Python también es un buen lenguaje para aprender algunos conceptos básicos de ingeniería de software. De hecho, uso Python en un curso de ingeniería de software de segundo año que desarrollé. Puede aprender a construir sistemas de forma incremental, a escribir recursos de prueba automáticos, a utilizar el control de versiones de manera efectiva, a factorizar la información dependiente del objetivo a partir de la información utilizada en todos los objetivos de implementación, y muchas otras cosas. Pero a medida que avance, seguramente también querrá aprender algunas cosas sobre ingeniería de software que se abordan mejor en un lenguaje que tenga un sistema de tipos más sofisticado, un paso de compilación o compilación distinto de la ejecución del programa y un mejor soporte para estructurar sistemas grandes . De hecho, realmente debería aprender a construir sistemas de software que comprendan piezas escritas en múltiples lenguajes de programación, trabajando juntas.

El mensaje básico es: Python es un lenguaje muy agradable para comenzar, pero no se limite a un lenguaje de programación. Me preocupa que haya preguntado si Python es un buen lenguaje para aprender algoritmos, estructuras de datos e ingeniería de software, como si fuera a usar un idioma para aprender todas esas cosas a la profundidad que las estudie. En su lugar, apunta a aprender más idiomas a medida que progreses.

Para ser honesto, es lo suficientemente bueno.

En muchas universidades, la programación comienza con Python, eso es realmente muy bueno. Con el debido respeto a otro lenguaje de programación, si comienza con cualquier lenguaje de programación que fuera valioso en el nivel académico y de producción, seguramente traerá un gran beneficio.

Python es ese tipo de lenguaje.

Sí, Python es una gran herramienta para aprender las habilidades básicas de ingeniería informática. Se “quita del camino” para que pueda centrarse estrictamente en comprender los algoritmos y las estructuras de datos sin preocuparse por las complicaciones que surgen del uso de lenguajes de nivel inferior.

Python es un buen lenguaje para aprender estructuras de datos y algoritmos, pero diría que no es un buen lenguaje para aprender ingeniería de software. La ingeniería de software se ocupa de escribir programas grandes y complejos, y una de las principales herramientas para escribir dichos programas es la capacidad de un lenguaje como Java para detectar errores de tipo en tiempo de compilación. Python no tiene esta habilidad.

si. Python es un excelente lenguaje de programación.

More Interesting

¿Cuál es la diferencia entre ciencia de la información y tecnología de la información?

¿Qué puede usar para averiguar qué herramientas y tecnologías hay detrás de un sitio web?

¿Por qué alguien sería un desarrollador de juegos, si es más difícil, poco disfrutable y de bajos salarios en comparación con otros trabajos de ingeniería de software?

¿Por qué bancos como JP Morgan y Bank of America Merrill Lynch utilizan Python para reemplazar los sistemas históricos heredados construidos en Java / C ++?

¿Cuánto valora Amazon a sus ingenieros de control de calidad?

¿Qué debo hacer para conseguir un trabajo en Silicon Valley como ingeniero de software? ¿Qué tipo de antecedentes o experiencia / educación se requiere?

¿El soporte técnico es una marca de por vida para un desarrollador de software?

Soy bueno haciendo pequeños proyectos. Pero me siento frustrado al hacer grandes programas. ¿Qué tengo que hacer?

¿Cuál es la mejor manera de escribir documentación de software?

¿Existe un servicio web que le diga cuánto tardan en cargarse las páginas de su sitio en varios países del mundo?

¿Cómo es pasar a la gestión corporativa después de una carrera en ingeniería de software?

¿Cuál fue el error de software que resultó en un premio gordo erróneo de $ 43M que no fue otorgado por una máquina tragamonedas?

¿Cuáles son las mejores prácticas para implementar productos de software en las instalaciones del cliente?

¿Cómo es la transición de un ingeniero de producto a un ingeniero de infraestructura?

¿Por qué se eligió Erlang para usar en el chat de Facebook?