Codificación aprenderaprogramar.com: CE00103A
Resumidamente expondremos la necesidad de dar dos pasos para aprender a programar:
1. Adquirir unos "fundamentos de programación".
2. Desarrollar programas utilizando un lenguaje.
Obviamente estamos hablando de "comenzar a programar". Hacernos expertos supondrá más pasos y más tiempo quizás el reciclaje dure "toda la vida".
Detengámonos en "comenzar a programar", que ya de por sí es un paso importante y tras el que, una vez alcanzado, podemos decidir tranquilamente pararnos.
Al hablar de fundamentos de programación nos referimos a aquellos conocimientos básicos que nos permitirán desenvolvernos sin excesivo número de tropiezos. Veamos a qué tipo de tropiezos nos referimos utilizando un símil de transporte. El conductor (programador) dispone de un coche (el ordenador) y desea trasladarse entre dos puntos de una ciudad (objetivo del programa). Como es lógico existen unos criterios en la búsqueda del objetivo como hacerlo en el menor tiempo posible (ahorrar tiempo de programación), ir por las calles o autovías más cómodas (un programa sencillo y comprensible) y economizar combustible, neumáticos, etc. (ahorrar memoria y evitar procesos innecesarios que ocupen recursos de nuestro ordenador). Si nuestro hipotético conductor no tiene ningún tipo de conocimiento ¿qué fundamentos habría que darle para cumplir el objetivo? Indiquemos algunos:
a) Antes de usar un modelo de coche concreto (lenguaje) es conveniente conocer generalidades sobre los coches (tener unos fundamentos de programación).
b) Hemos de ser conscientes de que si no tenemos fundamentos básicos para llevar un coche (programa) seguramente tendremos una avería (el programa no funcionará) dando lugar no sólo a que no alcancemos el objetivo, sino, lo que puede ser más frustrante, a no tener ni idea de lo que está pasando. Por ejemplo, si no sabemos lo que significa que se encienda el indicador de temperatura y continuamos circulando terminaremos por fundir el motor dando por terminado el viaje en nuestro coche.
c) Debemos saber discernir objetivos plausibles, difíciles, e inalcanzables. Recorrer 100 km en media hora es un objetivo fuera de lo que se puede considerar habitual: en este caso conviene reconsiderar el problema (viabilidad) o el dejarlo en manos de profesionales (programas comerciales o programadores profesionales).
d) Existen unas normas de circulación (normas de sintaxis y construcción del lenguaje informático que utilicemos) que pueden variar de un país a otro (de un lenguaje a otro). Desconocer o infringir las normas de circulación puede llevarnos a la imposibilidad de alcanzar el objetivo, incluso siendo éste de poca entidad.
e) El simple hecho de conocer las normas de circulación no asegura el éxito del viaje, pues cumpliendo las normas podemos perdernos o establecer recorridos circulares que no llevan a ningún sitio.
f) Antes de emprender viaje (programar), debemos tener claro:
f.1) Dónde queremos ir (qué queremos que haga el programa).
f.2) La ruta del viaje (estructura del programa), que no es fruto de la inspiración divina, sino del estudio conjunto de objetivos - medios disponibles - normas - restricciones, etc. Invertir tiempo en el estudio de la ruta supondrá que el viaje sea más cómodo y satisfactorio que si nos ponemos precipitadamente al volante.
f.3) En general, pero sobre todo para viajes complicados, conviene dividir el problema en apartados como podrían ser:
--> Tránsito por autopistas (algoritmo principal o guía del programa).
--> Tránsito por carreteras principales (algoritmos de procesos relevantes).
--> Tránsito por carreteras secundarias (algoritmos de procesos poco relevantes). Si el tránsito por autopistas está mal planteado de poco valdrá el haber afinado en la elección del tránsito por carreteras.
g) Distintas rutas (estructuras de programa) pueden llevar al mismo objetivo. Puede ocurrir que dos rutas sean igualmente buenas.
Vistos ya, basándonos en un símil, qué son, para qué sirven y cuestiones básicas relacionadas con los "fundamentos de programación", sobre los que tratamos en nuestra web, vayamos al segundo paso: desarrollar programas utilizando un lenguaje. Siguiendo el símil, equivaldría a realizar viajes (programas), planificándolos correctamente y utilizando un modelo de coche (lenguaje) que sirva adecuadamente a nuestras pretensiones.
El manejo de un lenguaje debe basarse en la progresividad, en la práctica y en el reciclaje. Progresividad en cuanto a que debe comenzarse con las instrucciones básicas que permitan la ejecución de pequeños programas. Posteriormente se introducirán, gradualmente, los aspectos de mayor complejidad. Práctica porque, como en casi toda disciplina, la experiencia que vamos acumulando aumenta nuestra destreza. Y reciclaje porque, para bien o para mal, los lenguajes evolucionan y aparecen nuevas versiones o variantes. Aunque en relación con esto, siempre hay quien prefiere un buen clásico a las modernidades.
En aprenderaprogramar.com abordamos tanto fundamentos, métodos y buenas prácticas de programación como lenguajes específicos, siempre desde un punto de vista didáctico y sencillo.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.