Autor Tema: Abstrayendo lo concreto: Una ayuda para quienes comienzan a programar  (Leído 4469 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Abstrayendo lo concreto

¿Cómo lograr dejar de computar como humano para hacerlo como máquina?

Uno de los mayores desafíos con el que se encuentran las personas que están comenzando a programar es lograr volcar en código sus ideas.

Si bien el proceso de adaptación resulta igualmente, en la mayoría de los casos, lento y difícil considero que hay ciertas pautas y consejos que deberían tenerse en cuenta por el programador que está dando sus primeros pasos. Así que si te sobra un ratito de tu tiempo tal vez pueda ayudarte a que logres dar tus primeros pasos por este maravilloso e infinito mundo de la programación de microcontroladores.



Reservado para el indice.

« Última modificación: 29 de Abril de 2009, 03:32:16 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Abstrayendo lo concreto: Una ayuda para quienes comienzan a programar
« Respuesta #1 en: 29 de Abril de 2009, 03:25:05 »
0.1

Pre-pactos con el lector:

•   Asumiré que el lector conoce mínimamente algún lenguaje de programación. Preferentemente assembly(de ahora en adelante llamado asm) y un poco de electrónica básica.
« Última modificación: 29 de Abril de 2009, 03:32:02 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Abstrayendo lo concreto: Una ayuda para quienes comienzan a programar
« Respuesta #2 en: 29 de Abril de 2009, 03:26:14 »
1.0
Diferencias entre el procesamiento humano y el de un microcontrolador


   Si bien comparar el procesamiento humano con el de un microcontrolador puede resultar casi imposible debido a las grandes diferencias, yo sólo quiero hacer hincapié en un puñado de ellas.

El procesamiento de un cerebro humano es sumamente más complejo que el de un microcontrolador(de ahora en adelante llamado uC). Esto puede hacer que usted se pregunte, entonces, cómo puede ser que no logre comprender cómo programar un uC rápidamente…pero no nos precipitemos. Recordemos que el cerebro humano aprende por sedimentación y que programar uC no es una tarea naturalmente cotidiana por lo que lograr comprender cómo programar un uC puede (y debe) llevar cierto tiempo. Para algunos lectores requerirá más que para otros.

Un uC es miles de veces mas rápido para realizar ciertas operaciones aritméticas como contar, sumar o restar, pero el cerebro humano es en realidad capaz de procesar y calcular muchísima más cantidad de datos en un mísmo instante. La diferencia radica en que la mayoría de las veces lo hacemos de manera inconciente. Realizamos muchos cálculos pero sin tener que detenernos a “pensar” demasiado en ellos.

Tomemos por ejemplo la capacidad necesaria para poder hacer seguimiento de un pelota con la visión, reconocer colores, distinguir olores, hablar o hasta la mismísima tarea de leer y razonar lo que en este instante estan leyendo. Todas estas tareas que son cotidianas para la mayoría de nosotros, son sumamente difíciles de imitar para un uC. Alguna de ellas tal vez hasta prácticamente imposibles debido a sus limitaciones(actuales).

Entonces podríamos decir que el uC ofrece mucha ventaja cuando se lo utiliza para determinadas funciones pero es sumamente inferior al cerebro humano en muchas otras.
« Última modificación: 29 de Abril de 2009, 13:47:58 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Abstrayendo lo concreto: Una ayuda para quienes comienzan a programar
« Respuesta #3 en: 29 de Abril de 2009, 03:29:59 »
2.0
Abstraer lo contreto para luego concretizarlo

Así como suena es lo que la mayoría de las veces sus desarrollos con uC realizarán. Será tomar datos del exterior para procesarlos y luego volcarlos en el exterior nuevamente. Vamos con un ejemplo práctico:

Una balanza electrónica. Para realizar una balanza necesitamos mínimamente de 3 partes básicas. La primera dedicada a obtener los datos, la segunda a procesarlos y la tercera a mostrarlos.

Fíjese que los 3 pasos mencionados anteriormente están claramente definidos. Para obtener los datos podríamos utilizar por ejemplo una celda de carga, para procesarlos un uC y para comunicarlos un array de displays de 7 segmentos.

Entonces, tal vez muchos que tienen experiencia en la electrónica sepan cómo realizar el circuito electrónico para conectar la celda al uC y los displays al uC pero no sepan cómo obtener los datos con el uC, procesarlos y luego mostrarlos.

He visto a muchas personas que ingresan al foro (http//www.todopic.com.ar/foros) preguntando precisamente esto. Sus conocimientos son vastos en electrónica pero pobres en materia de programación. Saben exactamente lo que quieren hacer, lo que el uC debe hacer, pero no saben cómo volcarlo en código. Este es el problema y éste es el fin de mi escrito. Ayudar a que logren codificarlo.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Abstrayendo lo concreto: Una ayuda para quienes comienzan a programar
« Respuesta #4 en: 29 de Abril de 2009, 03:31:42 »
3.0   
Apaciguando miedos
   ¡Cuántos nos hemos horrorizado al ver una porción de código por primera vez!.

A primera vista parece sumamente complejo, irreal y hasta roza lo ilógico. Ahora intentemos ver la parte positiva: no olvidemos que absolutamente todo ese código que los horroriza, el set de instrucciones de un uC, su diseño hardware y el resto de sus partes han sido diseñadas por humanos para humanos.
Entonces, toda su esencia, sus detalles y “truquitos” tienen un motivo. Fueron hechos con un fin.

No desesperen. No intenten comenzar con un programa de muchas líneas de código. Probablemente fracasen, y no lo harán por asnos. Lo harán porque seguramente no van a poder resolver todos los problemas que involucra un proyecto complejo. Pero puedo asegurarles que no fracasarán si van poco a poco, leen mucho y se preguntan siempre el por qué del por qué de las cosas.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Abstrayendo lo concreto: Una ayuda para quienes comienzan a programar
« Respuesta #5 en: 29 de Abril de 2009, 06:26:15 »
Me suscribo a uno de los hilos más filosóficos que he leído nunca. Ánimo Don Bruno.

Desconectado LoPages

  • PIC10
  • *
  • Mensajes: 29
Re: Abstrayendo lo concreto: Una ayuda para quienes comienzan a programar
« Respuesta #6 en: 29 de Abril de 2009, 11:08:52 »
Muy pero que muy muy bueno...leyendo me viene a la mente mis momentos delante del ordenador preguntandole como conseguir hacer un programita que hiciese una simple suma...por lo que va muy bien encaminado este hilo. Adelante con ello BrunoF!!
« Última modificación: 01 de Mayo de 2009, 08:34:05 por LoPages »
"Nuestra carrera es puta, pero nosotros lo somos mas!!!"---->By Meroño.

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Abstrayendo lo concreto: Una ayuda para quienes comienzan a programar
« Respuesta #7 en: 29 de Abril de 2009, 13:50:23 »
muy buena iniciativa bruno,
Citar
¡Cuántos nos hemos horrorizado al ver una porción de código por primera vez!.
a mi personalmente me pasa esto, me cuesta trabajo entender la rutina de otros y por eso siempre prefiero tratar de construirla yo mismo...
adelante y saludos..
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Abstrayendo lo concreto: Una ayuda para quienes comienzan a programar
« Respuesta #8 en: 29 de Abril de 2009, 13:55:39 »
sigo muy pendiente del hilo,  a ver si aprendo a programar y asi ganarme una postal de esas que rifan por ahi  :mrgreen:
El papel lo aguanta todo

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Abstrayendo lo concreto: Una ayuda para quienes comienzan a programar
« Respuesta #9 en: 30 de Abril de 2009, 15:06:52 »
Me suscribo a uno de los hilos más filosóficos que he leído nunca. Ánimo Don Bruno.

Se ve que tan mal no voy porque mi idea no era redactar técnicamente las explicaciones sino desde un punto de vista más reflexivo y rico en analogías.

Muy pero que muy muy bueno...leyendo me viene a la mente mis momentos delante del ordenador preguntandole como conseguir hacer un programita que hiciese una suma...por lo que va muy bien encaminado este hilo. Adelante con ello BrunoF!!
sigo muy pendiente del hilo,  a ver si aprendo a programar y asi ganarme una postal de esas que rifan por ahi  :mrgreen:

Jaja. Gracias por leer! :)

muy buena iniciativa bruno,
Citar
¡Cuántos nos hemos horrorizado al ver una porción de código por primera vez!.
a mi personalmente me pasa esto, me cuesta trabajo entender la rutina de otros y por eso siempre prefiero tratar de construirla yo mismo...
adelante y saludos..

Entender una rutina ajena es casi(por no decir siempre) más dificil que entender una propia. Obviamente no todos razonamos las cosas de la mísma manera, por lo que cada algoritmo lleva un sello propio, una marca personal en cada una de sus líneas que identifican al código con el programador. Tal cual un libro, aunque con menos libertad expresional pero igual libertad de ideas.

Un saludo.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.


 

anything