{"id":48,"date":"2025-09-12T14:52:33","date_gmt":"2025-09-12T14:52:33","guid":{"rendered":"https:\/\/kelvinaraque.com\/blog\/?p=48"},"modified":"2025-09-12T14:52:33","modified_gmt":"2025-09-12T14:52:33","slug":"por-que-los-fundamentos-de-la-programacion-siguen-siendo-esenciales","status":"publish","type":"post","link":"https:\/\/kelvinaraque.com\/blog\/por-que-los-fundamentos-de-la-programacion-siguen-siendo-esenciales\/","title":{"rendered":"\u00bfPor que los fundamentos de la programaci\u00f3n siguen siendo esenciales?"},"content":{"rendered":"\n<p>Del lenguaje ensamblador a la IA: c\u00f3mo las bases t\u00e9cnicas definen el futuro de los programadores<\/p>\n\n\n\n<p>El mito de la IA como reemplazo de los programadores<\/p>\n\n\n\n<p>Las empresas que dicen la inteligencia artificial programara por nosotros y no deber\u00edamos de preocuparnos ya de aprender programaci\u00f3n, deber\u00edas de empezar por los fundamentos de la programaci\u00f3n, como funciona un ordenador, variables, condiciones, bucles y estructuras de datos.<\/p>\n\n\n\n<p>Pero tenemos que entrar en contexto, \u00bfpara qu\u00e9 tenemos los lenguajes de programaci\u00f3n?, son una capa de abstracci\u00f3n creada por el ser humano para poder dar instrucciones a computadoras sin sacrificar la capacidad de c\u00f3mputo del ordenador, y que estas instrucciones sean entendibles por otros seres humanos<\/p>\n\n\n\n<p>Peque\u00f1a historia de los lenguajes de programaci\u00f3n<\/p>\n\n\n\n<p>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\u00f3n del problema en ese momento con el tema de crear software que solo funcionar\u00e1 con ceros y unos de cierta manera fuese un tema complejo de explicar cada vez que tuvieras una suma de n\u00fameros o una multiplicaci\u00f3n de n\u00fameros. Aqu\u00ed una muestra de c\u00f3digo de ejemplo porque la computadora ENIAC de esa \u00e9poca se mov\u00edan cables para poder mover sus ceros y unos<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/a77831b68f0208e174ca233811d4e2b1.js\"><\/script><\/p>\n\n\n\n<p>Apareciendo un lenguaje mnem\u00f3nico para su facilidad y comprensi\u00f3n el lenguaje ensamblador 1950 Se crea el lenguaje ensamblador para tener m\u00e1s 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\u00f3n en la forma en la que se hac\u00edan sus programas porque cada lenguaje se dise\u00f1\u00f3 para un enfoque en espec\u00edfico. Ejemplo en las siguiente l\u00ednea<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/eca87e6c748b3bab3fffefafe30a9623.js\"><\/script><\/p>\n\n\n\n<p>1957 Fortran(FormulaTranslating) se dise\u00f1\u00f3 por el cient\u00edfico John Backus en ese momento trabajando en IBM para el c\u00e1lculo despu\u00e9s se orient\u00f3 a otras \u00e1reas llevando a que fuera un lenguaje de prop\u00f3sito general c\u00f3digo ejemplo en la siguiente l\u00ednea<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/84383a5505a5e6e0e389a098afb02982.js\"><\/script><\/p>\n\n\n\n<p>1959 Cobol(COmmonBusiness-OrientedLanguage) pensado para que fuera la lengua franca de los mainframes de esa \u00e9poca, 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\u00eda 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\u00f3digo m\u00e1quina que este lenguaje fuera m\u00e1s accesible al usuario que no fuera un ingeniero, matem\u00e1tico o cient\u00edfico ella y su equipo se unieron a CODASYL y muchos de sus avances se convertir\u00edan en lo que se conoce como el lenguaje de programaci\u00f3n Cobol c\u00f3digo de ejemplo en la siguiente l\u00ednea<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/8c7bcbafbaa7a6fd71763a71bf1fceed.js\"><\/script><\/p>\n\n\n\n<p>1970 Pascal creado por el cient\u00edfico Niklaus Wirth y el nombre haciendo alusi\u00f3n a Blaise Pascal un matem\u00e1tico franc\u00e9s que creaba lo que podemos llamar los primeros ordenadores pensados para realizar c\u00e1lculos aritm\u00e9ticos, Niklaus Wirth penso en este lenguaje para la ense\u00f1anza de sus alumnos este lenguaje le dio mucha estructura a la forma del lenguaje de programaci\u00f3n como se entiende actualmente, Ejemplo en la siguientes l\u00edneas<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/028b40db05166cdc7a42831aa9d668fa.js\"><\/script><\/p>\n\n\n\n<p>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\u00ed un par\u00e9ntesis Cobol sigue vigente debido a la infraestructura bancaria de EE.&nbsp;UU. y otros pa\u00edses aunque no aparezca nuevo software desarrollado en este lenguaje hay que mantener el c\u00f3digo 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\u00f3n llamado C qu\u00e9 en conjunto con el sistema operativo Unix marco un antes y un despu\u00e9s en lo que fue la programaci\u00f3n de ordenadores.<\/p>\n\n\n\n<p>Unix como sistema operativo brindaba un sistema sencillo de carpetas y el lenguaje de Programaci\u00f3n en el que estaba hecho Unix el lenguaje C ten\u00eda 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\u00eda \u201cKeep It Simple, Stupid\u201d(\u00abMantenlo Simple, Est\u00fapido\u201d) este lenguaje hizo que se crearan los llamados \u201cC-like languages\u201d(\u201d lenguajes como C\u201d) traducci\u00f3n de la manera m\u00e1s literal, pero tambi\u00e9n 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\u00f3n de tipos el cierre de cada sentencia ,cada uno de estos pasos los toman muchos lenguajes de programaci\u00f3n C++, Java, JavaScript como algunos de los lenguajes con m\u00e1s similitud con el lenguaje de programaci\u00f3n C.<\/p>\n\n\n\n<p>tambi\u00e9n este lenguaje gracias al libro El lenguaje de programaci\u00f3n C de Brian w. Kernighan y Dennis Ritchie se populariz\u00f3 a lo que es a d\u00eda de hoy la primera l\u00ednea de programaci\u00f3n de todos los programadores el famoso \u201cHello, World\u201d 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.<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/fe1b39a8223e47120950534139b21144.js\"><\/script><\/p>\n\n\n\n<p>De un sencillo c\u00f3digo todo lo que se puede explicar cada s\u00edmbolo que se encuentra en ese programa esta puesto all\u00ed para que cumpla su tarea, esto se convirti\u00f3 en un hito cultural entre los inform\u00e1ticos y trascendi\u00f3 su c\u00edrculo, muchos lenguajes dejan esto como una muestra de que tan sencillo son con un hola mundo teniendo estos puntos en cuenta puedo ense\u00f1arte como con la sintaxis de C sabr\u00e1s otros lenguajes ya sabes la declaraci\u00f3n de las variables, pero que m\u00e1s necesitas realizar\u00e9 una lista de s\u00edmbolos y conceptos que tienen muchos C-like language.<\/p>\n\n\n\n<p>Deepseek y la optimizaci\u00f3n<\/p>\n\n\n\n<p>Porque hago hincapi\u00e9 en los fundamentos de las bases de la programaci\u00f3n y desde el origen de el lenguaje ensamblador hasta algunos lenguajes modernos cuando vamos a la pr\u00e1ctica lo que m\u00e1s 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\u00f3n para que la tecnolog\u00eda siguiera creciendo el 20 de enero del 2025 aparece el modelo de IA de c\u00f3digo abierto deepseek r1 agito el mercado de la inteligencia artificial la raz\u00f3n es gratuita y de c\u00f3digo abierto tiene menos costo de fabricaci\u00f3n que su competencia donde los otros dos modelos brindan modelos gratuitos con limitaciones y son de c\u00f3digo cerrado deepseek hizo que se repensara si las inversiones millonarias en IA eran necesarias una vez deepseek liberado se vuelve la aplicaci\u00f3n m\u00e1s descarga por varios d\u00edas a nivel mundial tiene censura de parte del gobierno chino, pero llamaba mucho la atenci\u00f3n como se construy\u00f3 un modelo tan bueno y como fue entrenado tan r\u00e1pido.<\/p>\n\n\n\n<p>Uno de los m\u00e9todos que destacaron los investigadores que hicieron las primeras rese\u00f1as sobre esta IA fue reinforcement learning en lugar de \u00e9l fine tuning qu\u00e9 es el m\u00e1s com\u00fan para entrar IA fue orientado al razonamiento<\/p>\n\n\n\n<p>Una de las cosas y detalles importantes que tenemos actualmente Nvidia domina el mercado de las GPU por muchos a\u00f1os se convirtieron en la compa\u00f1\u00eda 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\u00f3n llamada CUDA(compute unified device architecture ) qu\u00e9 dentro set de herramientas tiene un lenguaje de programaci\u00f3n llamado CUDA C un ejemplo de c\u00f3digo en la siguiente l\u00ednea de c\u00f3digo<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/245f070df0287f7cf3fb4eff54a93975.js\"><\/script><\/p>\n\n\n\n<p>Para programar algoritmos en la GPU Nvidia, pero los programadores de deepseek deciden saltar este paso e ir m\u00e1s all\u00e1 y deciden usar un lenguaje llamado PTX (parallel thread execution ) no es que PTX sea m\u00e1s r\u00e1pido, pero permite dar instrucciones m\u00e1s optimizadas .<\/p>\n\n\n\n<p>El siguiente c\u00f3digo es una representaci\u00f3n de como seria en PTX el c\u00f3digo mostrado en CUDA C<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/9a4052d1dfbd1573a076a9867fe8bdf4.js\"><\/script><\/p>\n\n\n\n<p>Que es PTX es un set de instrucciones similar al lenguaje ensamblador propuesto por Nvidia dentro del set de herramientas de CUDA<\/p>\n\n\n\n<p>\u00bfPor qu\u00e9 los programadores de deepseek tomaron decisi\u00f3n de que algunas partes del c\u00f3digo 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\u00eda muy potente tiene un procesamiento de datos bestial e identifica patrones mucho m\u00e1s r\u00e1pido entonces esto hace que esta tecnolog\u00eda sea a cualquier nivel desde econ\u00f3mico hasta militar de que hay que usarla emplearla y estudiarla, Estados Unidos no ha dejado que China tenga las \u00faltimas 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\u00f3n anterior a las H100 las GPU H800 y decidieron sacarle cada byte qu\u00e9 pudieran emplear usando PTX para que su modelo sea lo m\u00e1s eficiente posible al momento de entrenarla<\/p>\n\n\n\n<p>Ellos entendieron que ten\u00edan que construir un c\u00f3digo lo m\u00e1s \u00f3ptimo 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\u00f3n.<\/p>\n\n\n\n<p>las estructuras de estos lenguajes se realizan de manera similar o igual que en el viejo lenguaje como ser\u00eda la declaraci\u00f3n e inicializaci\u00f3n de una variable en C.<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/581fae261bc426208d975bf2c836f728.js\"><\/script><\/p>\n\n\n\n<p>De una manera muy simple se declaran e inicializan las variables<\/p>\n\n\n\n<p>Lista de las palabras de reserva que usan en algunos compiladores del lenguaje de programaci\u00f3n C<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/2f96486167f096ef76469be325f55629.js\"><\/script><\/p>\n\n\n\n<p>S\u00edmbolos que usa C de manera especial<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/164078e802251455fd1f074ede9f76bc.js\"><\/script><\/p>\n\n\n\n<p>Operador de asignaci\u00f3n<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/54e9ae3ddcf4dff6c4a81b2979a16288.js\"><\/script><\/p>\n\n\n\n<p>Operador de comparaci\u00f3n<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/0e14d8c632b8720c007c0b6922d002ad.js\"><\/script><\/p>\n\n\n\n<p>Evaluaci\u00f3n de verdadero o falso<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/940c1441acf0b8138a2a078f0644035e.js\"><\/script><\/p>\n\n\n\n<p>Evaluaciones en corto circuito<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/88ffc1e85b3be2480920814cdb93d4ff.js\"><\/script><\/p>\n\n\n\n<p>Condiciones<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/9ae1d8df7813513a2b3fdf1ad4b24b44.js\"><\/script><\/p>\n\n\n\n<p>Bucles o iteradores<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/e339609ef791709ed9218900fb584372.js\"><\/script><\/p>\n\n\n\n<p>Funciones en C las funciones no tienen una palabra de reserva, pero deben de ser declaradas con el tipo de dato que entregaran<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/4b337527db721e27ee280b71f6429d10.js\"><\/script><\/p>\n\n\n\n<p>Todas estas reglas, palabras de reserva var\u00edan seg\u00fan el lenguaje de programaci\u00f3n muchos programadores identifican ya estos patrones y pueden ver que tan dif\u00edcil se les har\u00e1 aprender otro lenguaje, pero la mayor\u00eda de lenguajes que tienen una sintaxis similar con C siguen muchos de esos patrones de como se construyen sus bloques de c\u00f3digo<\/p>\n\n\n\n<p>con este conocimiento ya podemos hacer un programa interactivo muy entretenido el juego de adivina el n\u00famero<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/7e32f6a55645a87cecf9b11ce09ab4c6.js\"><\/script><\/p>\n\n\n\n<p>Este programa de ejemplo se puede llevar a otros lenguajes y ver que tan complicado es construir un programa en ellos este c\u00f3digo de adivina el numero lo aprend\u00ed con Python un lenguaje de programaci\u00f3n interpretado de la tercera edici\u00f3n de inventar tus propios juegos de computadora con el lenguaje de programaci\u00f3n Python<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/812aaa87ceceb84a774c88b5c0deceac.js\"><\/script><\/p>\n\n\n\n<p>Recomiendo leer un lenguaje similar a C su sintaxis para que no te veas envuelto en confusi\u00f3n cuando tengas que escribir o leer c\u00f3digo en alguno de estos y despu\u00e9s si quieres pasar a Python no quieras salir de \u00e9l, ya que su sencillez y el poder que brinda deja muy satisfecho a las personas que crean proyectos en este lenguaje.<\/p>\n\n\n\n<p>Con C haces un manejo de la memoria manual con Python te abstraes de eso te preocupas m\u00e1s por la legibilidad de tu c\u00f3digo dato curioso mucho del c\u00f3digo fuente de Python est\u00e1 escrito en C y C++<\/p>\n\n\n\n<p>Peque\u00f1a lista de las diferencia de python con C no profundizo mucho en los conceptos mas avanzados es simplemente para darte un contexto<\/p>\n\n\n<p><script src=\"https:\/\/gist.github.com\/loadresource\/0eb2adb2b927b7ca766148fc4fd25113.js\"><\/script><\/p>\n\n\n\n<p>Con los fundamentos es que vamos a darle forma a la resoluci\u00f3n de problemas la puedes empezar por diagramas de flujo antes de irte a un lenguaje de programaci\u00f3n 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\u00edfico o que tambi\u00e9n llegues a escuchar o leer que aprendas con un pseudo lenguaje te pueden llegar a confundir al principio hasta puedes llegar a desistir.<\/p>\n\n\n\n<p>IA como herramienta y no como un atajo<\/p>\n\n\n\n<p>Tambi\u00e9n los fundamentos son muy importantes porque son los cimientos con los que se desarrollan las diferentes tecnolog\u00edas as\u00ed te digan que empieces a aprender programaci\u00f3n y te ayudes con una IA no lo hagas de manera directa porque te dar\u00e1 resultados directos sin procedimientos es como hacer cuentas con una calculadora ella no te ense\u00f1a los pasos con los que llega al resultado aprender programaci\u00f3n con una IA a\u00f1ade otra capa al aprendizaje que deber\u00edas tener conocimientos b\u00e1sicos de como f\u00f3rmulas las preguntas (prompts) y darle contexto a la IA para que genere respuestas coherentes.<\/p>\n\n\n\n<p>No estoy en contra de la IA, pero el marketing agresivo le est\u00e1 ganando y las empresas que est\u00e1n detr\u00e1s de los productos que dependen de esto lo est\u00e1n tratando de vender de formas muy negativas te imploran qu\u00e9 pagues por la IA de ellos<\/p>\n\n\n\n<p>La IA brinda buenos resultados cuando de una forma u otra estas IA de tipo chat ya vienen entrenadas con un sesgo de informaci\u00f3n 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\u00e1 buena pregunta (\u00b0_\u00b0) un halago de buenas a primeras, OpenAI compa\u00f1\u00eda creadora de chat-gpt es consciente de este problema y muy probablemente cuando salga este art\u00edculo le bajaran el grado de adulaci\u00f3n, pero como usuarios conscientes de que lo que nos est\u00e1 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\u00edculo 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\u00e9s 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.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Dominar los fundamentos de programaci\u00f3n te convertir\u00e1 en un programador adaptable a las tecnolog\u00edas emergentes<\/p>\n\n\n\n<p>Si quieres seguir aprendiendo de manera gratuita y realizando ejemplos y proyectos te recomiendo ingresar en<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Del lenguaje ensamblador a la IA: c\u00f3mo las bases t\u00e9cnicas 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\u00edamos de preocuparnos ya de aprender programaci\u00f3n, deber\u00edas de empezar por los fundamentos de la programaci\u00f3n, como [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-48","post","type-post","status-publish","format-standard","hentry","category-sin-categoria"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kelvinaraque.com\/blog\/wp-json\/wp\/v2\/posts\/48","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kelvinaraque.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kelvinaraque.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kelvinaraque.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/kelvinaraque.com\/blog\/wp-json\/wp\/v2\/comments?post=48"}],"version-history":[{"count":14,"href":"https:\/\/kelvinaraque.com\/blog\/wp-json\/wp\/v2\/posts\/48\/revisions"}],"predecessor-version":[{"id":64,"href":"https:\/\/kelvinaraque.com\/blog\/wp-json\/wp\/v2\/posts\/48\/revisions\/64"}],"wp:attachment":[{"href":"https:\/\/kelvinaraque.com\/blog\/wp-json\/wp\/v2\/media?parent=48"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kelvinaraque.com\/blog\/wp-json\/wp\/v2\/categories?post=48"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kelvinaraque.com\/blog\/wp-json\/wp\/v2\/tags?post=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}