Del lenguaje ensamblador a la IA: cómo las bases técnicas definen el futuro de los programadores
El mito de la IA como reemplazo de los programadores
Las empresas que dicen la inteligencia artificial programara por nosotros y no deberíamos de preocuparnos ya de aprender programación, deberías de empezar por los fundamentos de la programación, como funciona un ordenador, variables, condiciones, bucles y estructuras de datos.
Pero tenemos que entrar en contexto, ¿para qué tenemos los lenguajes de programación?, son una capa de abstracción creada por el ser humano para poder dar instrucciones a computadoras sin sacrificar la capacidad de cómputo del ordenador, y que estas instrucciones sean entendibles por otros seres humanos
Pequeña historia de los lenguajes de programación
Los ingenieros que iban a implementar sus programas se dan cuenta de la dificultad en crear los programas y explicar su funcionamiento se dan cuenta que el ser humano crea herramientas para que otro ser humano que no tenga el mismo nivel de comprensión del problema en ese momento con el tema de crear software que solo funcionará con ceros y unos de cierta manera fuese un tema complejo de explicar cada vez que tuvieras una suma de números o una multiplicación de números. Aquí una muestra de código de ejemplo porque la computadora ENIAC de esa época se movían cables para poder mover sus ceros y unos
Apareciendo un lenguaje mnemónico para su facilidad y comprensión el lenguaje ensamblador 1950 Se crea el lenguaje ensamblador para tener más accesibilidad en el desarrollo del software teniendo en cuenta que esto de que cada programa hecho en este lenguaje ensamblador solo funcionaria en el procesador que entienda esas instrucciones, se crea un nuevo tipo de lenguaje el lenguaje de alto nivel Fortran, cobol y Pascal siendo los primeros lenguajes en tener un patrón en la forma en la que se hacían sus programas porque cada lenguaje se diseñó para un enfoque en específico. Ejemplo en las siguiente línea
1957 Fortran(FormulaTranslating) se diseñó por el científico John Backus en ese momento trabajando en IBM para el cálculo después se orientó a otras áreas llevando a que fuera un lenguaje de propósito general código ejemplo en la siguiente línea
1959 Cobol(COmmonBusiness-OrientedLanguage) pensado para que fuera la lengua franca de los mainframes de esa época, CODASYL Committee con formado por fabricantes de mainframes fue el creador de cobol, pero destacando a una mujer llamada Grace Hopper la cual ya había desarrollado un compilador y un programa el programa llamado FLOW-MATIC con el fin de crear programas que convirtieran oraciones en lenguaje natural agregado por el usuario y convertirlos en código máquina que este lenguaje fuera más accesible al usuario que no fuera un ingeniero, matemático o científico ella y su equipo se unieron a CODASYL y muchos de sus avances se convertirían en lo que se conoce como el lenguaje de programación Cobol código de ejemplo en la siguiente línea
1970 Pascal creado por el científico Niklaus Wirth y el nombre haciendo alusión a Blaise Pascal un matemático francés que creaba lo que podemos llamar los primeros ordenadores pensados para realizar cálculos aritméticos, Niklaus Wirth penso en este lenguaje para la enseñanza de sus alumnos este lenguaje le dio mucha estructura a la forma del lenguaje de programación como se entiende actualmente, Ejemplo en la siguientes líneas
Sin embargo estos lenguajes se vieron limitados por los propios principios que fueron hechos y no fueron creados en conjunto con un sistema operativo (aquí un paréntesis Cobol sigue vigente debido a la infraestructura bancaria de EE. UU. y otros países aunque no aparezca nuevo software desarrollado en este lenguaje hay que mantener el código ya existente que aunque suene muy loco hay programadores nodejs/Cobol)que iba a estar en muchas universidades, aparece entre (1972-1973) en laboratorios Bell el lenguaje de programación llamado C qué en conjunto con el sistema operativo Unix marco un antes y un después en lo que fue la programación de ordenadores.
Unix como sistema operativo brindaba un sistema sencillo de carpetas y el lenguaje de Programación en el que estaba hecho Unix el lenguaje C tenía un muy sencillo set de palabras de reserva que eran las instrucciones que iba a dar el programador para que sus programas funcionaran de manera correcta siguiendo la filosofía “Keep It Simple, Stupid”(«Mantenlo Simple, Estúpido”) este lenguaje hizo que se crearan los llamados “C-like languages”(” lenguajes como C”) traducción de la manera más literal, pero también se le puede llamar inspirados o que tomaron conceptos de este lenguaje, pero porque lo hicieron de esa manera puedo decir que fue por su sintaxis, la declaración de tipos el cierre de cada sentencia ,cada uno de estos pasos los toman muchos lenguajes de programación C++, Java, JavaScript como algunos de los lenguajes con más similitud con el lenguaje de programación C.
también este lenguaje gracias al libro El lenguaje de programación C de Brian w. Kernighan y Dennis Ritchie se popularizó a lo que es a día de hoy la primera línea de programación de todos los programadores el famoso “Hello, World” Hola mundo que realmente idealizar la idea de que los ordenadores nos entienden este programa hace parecer que el ordenador nos devuelve un saludo me imagino simplemente a un estudiante en una terminal sin GUI realizando este programa y la terminal dando esta respuesta Hola Mundo.
De un sencillo código todo lo que se puede explicar cada símbolo que se encuentra en ese programa esta puesto allí para que cumpla su tarea, esto se convirtió en un hito cultural entre los informáticos y trascendió su círculo, muchos lenguajes dejan esto como una muestra de que tan sencillo son con un hola mundo teniendo estos puntos en cuenta puedo enseñarte como con la sintaxis de C sabrás otros lenguajes ya sabes la declaración de las variables, pero que más necesitas realizaré una lista de símbolos y conceptos que tienen muchos C-like language.
Deepseek y la optimización
Porque hago hincapié en los fundamentos de las bases de la programación y desde el origen de el lenguaje ensamblador hasta algunos lenguajes modernos cuando vamos a la práctica lo que más vamos a usar es eso realmente son patrones que se repiten una y otra vez la importancia de sus fundamentos y porque los debes de aprender si es lo que te interesa te doy un gran ejemplo de la actualidad chat-gpt y gemini de Google son los dos productos predominantes en el mercado de las IA mostrando sus bondades y beneficios y de que necesitaban mucho dinero para inversión para que la tecnología siguiera creciendo el 20 de enero del 2025 aparece el modelo de IA de código abierto deepseek r1 agito el mercado de la inteligencia artificial la razón es gratuita y de código abierto tiene menos costo de fabricación que su competencia donde los otros dos modelos brindan modelos gratuitos con limitaciones y son de código cerrado deepseek hizo que se repensara si las inversiones millonarias en IA eran necesarias una vez deepseek liberado se vuelve la aplicación más descarga por varios días a nivel mundial tiene censura de parte del gobierno chino, pero llamaba mucho la atención como se construyó un modelo tan bueno y como fue entrenado tan rápido.
Uno de los métodos que destacaron los investigadores que hicieron las primeras reseñas sobre esta IA fue reinforcement learning en lugar de él fine tuning qué es el más común para entrar IA fue orientado al razonamiento
Una de las cosas y detalles importantes que tenemos actualmente Nvidia domina el mercado de las GPU por muchos años se convirtieron en la compañía con las mejores tarjetas de video del mercado una de las partes del hardware empleado y muy necesario para entrenar modelo de inteligencia artificial estas tarjetas de video usan una plataforma de programación llamada CUDA(compute unified device architecture ) qué dentro set de herramientas tiene un lenguaje de programación llamado CUDA C un ejemplo de código en la siguiente línea de código
Para programar algoritmos en la GPU Nvidia, pero los programadores de deepseek deciden saltar este paso e ir más allá y deciden usar un lenguaje llamado PTX (parallel thread execution ) no es que PTX sea más rápido, pero permite dar instrucciones más optimizadas .
El siguiente código es una representación de como seria en PTX el código mostrado en CUDA C
Que es PTX es un set de instrucciones similar al lenguaje ensamblador propuesto por Nvidia dentro del set de herramientas de CUDA
¿Por qué los programadores de deepseek tomaron decisión de que algunas partes del código tenia que ser escrito en PTX? China y los Estados Unidos tienen esta competencia de quien va a dominar la inteligencia artificial porque es una tecnología muy potente tiene un procesamiento de datos bestial e identifica patrones mucho más rápido entonces esto hace que esta tecnología sea a cualquier nivel desde económico hasta militar de que hay que usarla emplearla y estudiarla, Estados Unidos no ha dejado que China tenga las últimas joyas de Nvidia las GPU H100 entonces esta empresa china deepseek le ha tocado obtener de una forma u otra comprar GPU de una generación anterior a las H100 las GPU H800 y decidieron sacarle cada byte qué pudieran emplear usando PTX para que su modelo sea lo más eficiente posible al momento de entrenarla
Ellos entendieron que tenían que construir un código lo más óptimo posible y eficiente con esto nos damos cuenta de que entender los fundamentos las bases de como se construye el software es importante podemos ver que a veces desde esa carencia trabajaron con las bases de la programación.
las estructuras de estos lenguajes se realizan de manera similar o igual que en el viejo lenguaje como sería la declaración e inicialización de una variable en C.
De una manera muy simple se declaran e inicializan las variables
Lista de las palabras de reserva que usan en algunos compiladores del lenguaje de programación C
Símbolos que usa C de manera especial
Operador de asignación
Operador de comparación
Evaluación de verdadero o falso
Evaluaciones en corto circuito
Condiciones
Bucles o iteradores
Funciones en C las funciones no tienen una palabra de reserva, pero deben de ser declaradas con el tipo de dato que entregaran
Todas estas reglas, palabras de reserva varían según el lenguaje de programación muchos programadores identifican ya estos patrones y pueden ver que tan difícil se les hará aprender otro lenguaje, pero la mayoría de lenguajes que tienen una sintaxis similar con C siguen muchos de esos patrones de como se construyen sus bloques de código
con este conocimiento ya podemos hacer un programa interactivo muy entretenido el juego de adivina el número
Este programa de ejemplo se puede llevar a otros lenguajes y ver que tan complicado es construir un programa en ellos este código de adivina el numero lo aprendí con Python un lenguaje de programación interpretado de la tercera edición de inventar tus propios juegos de computadora con el lenguaje de programación Python
Recomiendo leer un lenguaje similar a C su sintaxis para que no te veas envuelto en confusión cuando tengas que escribir o leer código en alguno de estos y después si quieres pasar a Python no quieras salir de él, ya que su sencillez y el poder que brinda deja muy satisfecho a las personas que crean proyectos en este lenguaje.
Con C haces un manejo de la memoria manual con Python te abstraes de eso te preocupas más por la legibilidad de tu código dato curioso mucho del código fuente de Python está escrito en C y C++
Pequeña lista de las diferencia de python con C no profundizo mucho en los conceptos mas avanzados es simplemente para darte un contexto
Con los fundamentos es que vamos a darle forma a la resolución de problemas la puedes empezar por diagramas de flujo antes de irte a un lenguaje de programación por su puesto, pero ten en cuenta que un diagrama de flujo lo puedes hacer a manos para realizar el planteamiento de problemas no pierdas el tiempo tampoco buscando un software para diagramas de flujo en específico o que también llegues a escuchar o leer que aprendas con un pseudo lenguaje te pueden llegar a confundir al principio hasta puedes llegar a desistir.
IA como herramienta y no como un atajo
También los fundamentos son muy importantes porque son los cimientos con los que se desarrollan las diferentes tecnologías así te digan que empieces a aprender programación y te ayudes con una IA no lo hagas de manera directa porque te dará resultados directos sin procedimientos es como hacer cuentas con una calculadora ella no te enseña los pasos con los que llega al resultado aprender programación con una IA añade otra capa al aprendizaje que deberías tener conocimientos básicos de como fórmulas las preguntas (prompts) y darle contexto a la IA para que genere respuestas coherentes.
No estoy en contra de la IA, pero el marketing agresivo le está ganando y las empresas que están detrás de los productos que dependen de esto lo están tratando de vender de formas muy negativas te imploran qué pagues por la IA de ellos
La IA brinda buenos resultados cuando de una forma u otra estas IA de tipo chat ya vienen entrenadas con un sesgo de información tratan de dar un mensaje alagador tratan de hacer sentir bien al usuario en sus preguntas y respuestas tienes que ser siempre consciente de este chat gpt a la fecha de 20 de abril del 2025 le preguntas es buena idea saltar por un barranco te responderá buena pregunta (°_°) un halago de buenas a primeras, OpenAI compañía creadora de chat-gpt es consciente de este problema y muy probablemente cuando salga este artículo le bajaran el grado de adulación, pero como usuarios conscientes de que lo que nos está respondiendo es un software y no un ente consciente debemos tener cuidado la inteligencia artificial es muy buena para detectar patrones estoy preparando otro artículo para ver a primeros rasgos como funcionan y esto es algo que ni los mismos expertos pueden decir con certeza porque de la manera en la que estas llegan a los resultados después de haber aprendido no se tiene muy claro, no estoy en contra de la IA la puedes usar, pero debes de estar consciente de su poder y de aprenderla a usar para que no te veas perjudicado por ella.
Dominar los fundamentos de programación te convertirá en un programador adaptable a las tecnologías emergentes
Si quieres seguir aprendiendo de manera gratuita y realizando ejemplos y proyectos te recomiendo ingresar en