¿Es una buena idea aprender algoritmos antes de los conceptos de OOP en la programación de Python?

Algoritmo

Un proceso o conjunto de reglas a seguir en los cálculos u otras operaciones de resolución de problemas, especialmente por una computadora.

OOP (Programación Orientada a Objetos)

es un modelo de programación organizado alrededor de objetos en lugar de “acciones” y datos en lugar de lógica.


En resumen, si piensa lo suficiente sobre OOP, se daría cuenta de que es una arquitectura de algoritmo.

No estoy seguro de dónde la gente comenzó a dividir la idea de algoritmos como algo específico para aprender por separado de otros conceptos de desarrollo.

Un algoritmo es una metodología de computación de algo. Un programa en resumen.

Una aplicación muy complicada puede contener varios algoritmos más pequeños, y cada uno puede desglosarse hasta llegar a los conceptos básicos de sumar, restar, etc. Incluso estos pueden desglosarse en niveles de hardware de puertas lógicas y demás.


En resumen, deje de verlos como conceptos separados, se fusionan como varios patrones de diseño. Conocer el nivel detallado le permite trabajar en las capas más abstractas de manera más efectiva (y eficiente, que es algo que los programadores modernos parecen carecer a menudo).

Debes aprender las teorías de la informática en todos los niveles, y no hay ninguna razón por la que no puedas comenzar con OOP vs procedimiento.


Demasiadas personas en estos días piensan “Usaré un marco”. Si bien esto no siempre es malo, si no puede entender lo que está haciendo el marco, ¿cómo sabe que está haciendo lo que necesita?

Después de haber enseñado algoritmos en Coding Dojo en los últimos años, les doy algunos consejos a mis alumnos que también pueden ayudarlos.

Mantenlo simple. Casi todos los problemas de algoritmos que tiene que resolver no requerirán OOP. OOP es lo mejor, utilízalo y practícalo, pero hazlo cuando sea apropiado. Tendrás tanta práctica con OOP a medida que evolucionas como desarrollador que no tienes ninguna razón para forzar que suceda en este momento. Espere hasta llegar a MVC / MVVM / MV: lo que sea que necesite para comprender la POO.

¡Buena suerte!

La mayoría de los algoritmos no necesitan ningún concepto OOP. Aprender algoritmos es siempre la mejor idea. Aprende tantos algoritmos como puedas. Mejorará su poder de diseño del módulo de datos y podrá implementar eficientemente su código en sus idiomas OOP / non-OOP. Es un hecho que tratamos de evitar el uso de conceptos OO mientras resolvemos problemas. Es necesario hacer aplicaciones. Yo diría-

“OOP es la arquitectura de tu edificio. Y los algoritmos son los elementos únicos como aceros, ladrillos, vidrios, azulejos. Varían en cualidades y hace la deferencia. No mostrarán qué tan bueno es su edificio sino cómo se mantendrá en cualquier tipo de desastre ”.

Si. Digo que sobre todo lengua en la mejilla porque he estado sobre OOP desde mediados de los años 00 y todavía estoy usando algoritmos.

Aunque Python es oficialmente un lenguaje de paradigmas múltiples, en el mejor de los casos es apenas un lenguaje funcional y favorece en gran medida a OO. Dicho esto, puedo decir que mi metodología Python es principalmente funcional, a veces de procedimiento y nunca OO y estoy muy contento con ella.

Hoy, desafortunadamente, todavía uso OO de vez en cuando, pero afortunadamente rara vez y solo cuando tengo que entrar y extender alguna herramienta o marco heredado que no he reemplazado. No estoy usando Python en estas situaciones.

Creo que la mayoría de la gente le sugeriría que aprenda tanto los algoritmos (supongo que quiere decir imperativo) como los conceptos de OOP en Python usándolos a medida que aprende. Claro, la mayoría de las personas aprenden primero la programación imperativa, supongo.

Si lee algoritmos y Python paralaly sería más beneficioso ya que puede relacionar los conceptos.

El libro de cocina de Python es un gran recurso si quieres aprender ambos.