Pensamiento de arriba abajo vs Aprendizaje de abajo hacia arriba
La programación se enseña de abajo hacia arriba, es decir, aprendes las tuercas y los pernos de forma aislada y luego te quedas solo para construir un coche de carreras.
El software de construcción es una operación de tipo pinza.
Debe desglosar sus funciones en operaciones / interacciones de objetos (de arriba a abajo). Entonces necesitas codificar (de abajo hacia arriba). Es posible que deba recorrer esto hasta obtener el nivel de abstracción correcto.
Sin embargo, la mayoría de los libros de texto o maestros no hacen un buen trabajo al decir cómo y por qué unirlos en buenas combinaciones. Es por eso que ves mucho desorden en los programas para principiantes.
Respuesta del usuario de Quora a Para volver a aprender matemáticas, tanto los sitios web como los libros ofrecen contenido visual (el texto y algunos de ellos muestran ilustraciones). Entonces, ¿son los sitios web una alternativa a los libros (contenido en cuanto a calidad)?
Sin embargo, hay libros realmente muy, muy buenos que te dicen cómo construir y por qué ciertas combinaciones de construcciones básicas funcionan mejor que otras.
La práctica de programación de Brian Kernighan muestra exactamente “el proceso de pensamiento” de los sistemas de construcción a partir de tuercas y tornillos y el uso de las herramientas adecuadas para la situación. Es como seguir a un tío experto cuando te muestra cómo construir un auto en miniatura y luego mostrar cómo se puede hacer que funcionen los mismos principios en la construcción de un verdadero auto de carrera (con algunas modificaciones, por supuesto).
Asunciones de enseñanza
a) Deja de referirte a libros con ejemplos matemáticos aburridos. Solo está aumentando la confusión, ya que ahora tiene que envolver su cabeza en torno a 2 incógnitas en lugar de solo programar.
b) Intenta encontrar libros escritos por autores aficionados. Están tratando de ubicarse en dos dominios diferentes, por lo que se toman la molestia de explicar el significado práctico de cada cosa que dicen. No asumen tanto
c) Para obtener una visión general de las cosas, busque videos interesantes sobre el tema. Filtre los videos de corta duración ya que en realidad no pueden enseñar mucho en 5 minutos.
d) Probar libros / tutoriales que enseñan el uso de soluciones a situaciones del mundo real.
e) Trate de aprender los lenguajes más legibles y fáciles de usar pero potentes como python.
f) La serie de libros Head first / dummies son excelentes para los novatos de CUALQUIER experiencia, ya que revelan qué, cómo y por qué detrás de lo que está haciendo, es decir, el proceso de pensamiento. http://www.headfirstlabs.com/boo …
Roll Your Own
Inventa tus propios problemas para resolver en lugar de ejercicios de muestra. Esto le asegura que conoce el tema y solo tiene que lidiar con la traducción a “computerese”.
Por ejemplo :
Una aplicación de revisión de libros, utilidad o sitio web.
O trata de hacer un clon de un software que uses como un editor de texto, la aplicación Pincel, y agrega funciones pequeñas a medida que avanzas.
Piense de arriba hacia abajo, código de abajo hacia arriba
Es necesario diseñar de arriba a abajo desde la casa hasta las habitaciones, las paredes y los ladrillos.
Aún debe ordenar la cantidad correcta de ladrillos y cemento y construir secciones de pared, etc.
Lo mismo se aplica en la codificación:
a) Descomposición funcional:
Divida lo que desea hacer en tareas lógicas cada vez más pequeñas hasta que alcance una abstracción lo suficientemente baja que pueda codificarse (es decir, descomposición funcional).
b) Edificio de la biblioteca:
El resultado de la descomposición funcional se puede agrupar en Clases, es decir, “Actores” en Programaciones Orientadas a Objetos (OOPS). Puede haber clases auxiliares que actúen como conductos entre diferentes subsistemas. La mayoría de la codificación real se realiza de abajo hacia arriba, es decir, a nivel de ladrillo y mortero y tuberías.
El libro Head First Object-Oriented Analysis and Design y Head First Software Development podrían ser buenos puntos de partida.
¡Puedes descubrir que eres mejor en diseño que otros programadores rápidos!
Vea también mi respuesta relacionada: la respuesta de Gurudutt Mallapur a ¿Cuánto de aprender un lenguaje de programación de computadora (como C ++) está arraigado en mathematicvs?