Aprendí codificación haciéndolo.
Mis primeros intentos fueron triviales. Esto condujo a un código menos trivial, pero realmente mal escrito. Pero poco a poco, aprendí de mis errores interminables. Siempre estuve orientado a objetivos. Quería hacer X, pero para llegar allí tenía que descubrir a, b, c …
Lo creas o no, la codificación se inventó para facilitar la programación de computadoras. Las primeras computadoras tuvieron que ser programadas al reconectarlas físicamente. Luego surgió la idea de almacenar los programas en la memoria, por lo que no fue necesario volver a cablearlos, pero podría operar interruptores para establecer los patrones de bits en la memoria. Esto se llama código de máquina. Eso fue tedioso, por lo que el siguiente paso fue crear mnemónicos cortos para representar las instrucciones binarias, y podría escribir programas en términos de estos mnemónicos. Se puede ingresar a la memoria usando tarjetas perforadas, luego, un teclado y un editor de línea simple. Este tipo de codificación se llama lenguaje ensamblador. Cada tipo diferente de CPU tiene un lenguaje ensamblador diferente. Se inventaron lenguajes como FORTRAN y BASIC, entre otros, para abstraer la parte conceptual de escribir código a partir de los detalles de implementación, y la computadora misma los convirtió usando un intérprete o compilador en el código de máquina. Gradualmente, los lenguajes mejoraron y aparecieron nuevos que agregaron conceptos cada vez más útiles a la tarea de codificación, pero en el interior, todas las computadoras aún usan código de máquina. Todas estas características pueden parecer desalentadoras al principio, pero realmente hacen que la tarea de codificación no solo sea más fácil, sino también posible. Imagínese si todavía tuviéramos que ingresar el código de máquina o incluso el lenguaje ensamblador a mano. Ciertamente no tendríamos los dispositivos complejos que todos usamos hoy en día: la tarea de programación no sería manejable.
Toda la programación se reduce a tres cosas clave:
- secuencia
- selección
- repetición
Secuencia simplemente significa que la computadora ejecuta una cosa tras otra, por lo que el orden en que escribe su código es el orden en que se ejecuta (sin tener en cuenta el código asincrónico o multiproceso por ahora).
La selección significa que una computadora puede tomar decisiones sobre qué código ejecutar a continuación en función de alguna condición existente. Esto normalmente se materializa en la declaración if (…).
La repetición significa que una determinada pieza de código puede ejecutarse más de una vez. Bucles, en otras palabras.
Todo lo demás en un lenguaje de programación es realmente una decoración adicional: se basa en estos fundamentos para hacer que otros patrones de diseño comunes sean fáciles de usar (objetos, por ejemplo), pero en última instancia todo se reduce a esto.
Comience escribiendo pequeños programas triviales para familiarizarse con el proceso de codificación. Por ejemplo, una pequeña utilidad de línea de comando para agregar dos números e imprimir el resultado. Eso solo debería requerir un par de líneas, pero para un principiante completo es un desafío suficiente para comenzar. ¿Cómo se obtienen los números que se agregarán al programa? ¿Cómo imprime la respuesta en la pantalla? Esos son los tipos de ‘objetivos’ que podría establecer para mí mismo, luego leer, leer, leer hasta que crea que tengo las piezas en su lugar. Luego prueba y corrige hasta que funcione. Disfrute de su éxito, luego establezca un nuevo objetivo: ¿qué sucede si quiero imprimir una salida si la suma está por encima de cierto valor, digamos, y una salida diferente por debajo? Cada objetivo puede ser pequeño y trivial, pero gradualmente le presentará las características del lenguaje que existen para apoyar cada tipo de objetivo.
Debería descubrir que el lenguaje de programación en sí mismo llega bastante rápido. A diferencia del aprendizaje de un lenguaje natural, la mayoría de los lenguajes de computadora solo tienen unas pocas palabras nuevas y una estructura muy, muy regular. Bastante rápido aprenderá las palabras, y los patrones en la estructura se enfocarán. Pronto dejarás de pensar en el idioma y comenzarás a pensar en los problemas que estás tratando de resolver. El lenguaje se vuelve completamente transparente después de un tiempo, confía en mí.