martes, 27 de septiembre de 2022

¿Por qué el buen programador se hace así mismo desde el bajo/medio nivel?

Buenas programadores que disfrutáis de la programación

Hoy os quería hablar sobre como un buen programador se construye así mismo empezando por lenguajes de bajo/medio nivel.

Uno de los momentos más bonitos que tuve en mi vida fue cuando empecé a interactuar con un lenguaje de programación, haciendo programas simples de calculadora de estos que pides al usuario introducir dos números y sacas un resultado a partir de la suma de los mismos, y demás programas por el estilo, y es por todo esto que una de las mayores decisiones que tiene que afrontar uno en la vida cuando empieza a programar es la de elegir en lenguaje de programación con el que comenzará su aventura por este mundo tan mágico, yo en su día lo tuve fácil, ya que empecé a programar en la carrera de Ingeniería del Software, y en el plan de estudios nos especificaba que teníamos que empezar por Pascal, también en el mismo año de carrera, llegamos a usar el lenguaje ensamblador, como podéis comprobar, lenguajes de alto nivel (aunque Pascal maneja conceptos de medio nivel) y bajo nivel.

Un lenguaje es considerado de bajo nivel cuando tienes que pensar en instrucciones que requieran un control sobre el hardware y por lo tanto estás condicionado por la computadora que lo vaya a soportar, entonces en este caso programar en Ensamblador fue algo bastante difícil debido a que tenía que pensar a nivel de registro, de memoria, literalmente cuando programas en Ensamblador, tienes que imaginarte que tu eres la memoria y solo así lograrás entenderlo, luego es bastante entretenido por que es como un rompecabezas, aunque posteriormente vas a Pascal que es considerado de alto nivel aunque con características y conceptos que te hacen pensar en la memoria del programa y ya las cosas se vuelven un poco más sencillitas, por que ya se acerca un poco a la forma de pensar de las personas, pero aun así tienes que pensar en cosas tan importantes como en las direcciones de memoria donde se guarda la información que quieras usar para resolver un problema.

A lo que quiero llegar con por que es tan importante comenzar con un lenguaje de estas características, es por que pelearte con la memoria te hace comprender como operan las estructuras de datos que se usan en todas las aplicaciones que conoces, el como son esos procesos internos de inserción y borrado de elementos en dichas estructuras de datos, como por ejemplo, en las listas, por que al final en los lenguajes de alto nivel como Java, Python, Javascript, etc... Todos estas funcionalidades nos vienen ya hechas, y nosotros solo tenemos que invocarlas y realizan la función que nosotros queremos, pero no sabemos como operan por detrás estas funciones, y ahí es donde entran estos lenguajes que están un poco más cercanos a la memoria, los que te proporcionan estos conceptos como los punteros, los que te permiten irte moviendo por la memoria accediendo a los contenidos de las direcciones de memoria que apuntas, por que al final una lista no deja de ser un puntero al primer elemento de la misma, que a su vez guarda la dirección de memoria del siguiente elemento de la lista y que puede ser accesible. Definitivamente, al final el hecho de usar estos conceptos a estos niveles de la programación te ayudan a entender cosas muy curiosas que no sabes cuando programas a alto nivel, en mi experiencia personal, cuando más lo he visto, ha sido a la hora de usar estructuras de datos y colecciones como el ejemplo que acabo de poner ahora mismo, y de hecho cada vez que alguien me pide consejo para aprender a programar, siempre le digo que empiece por lenguajes como C o Pascal, y que luego vaya escalando a lenguajes como Java y similares, que al final manejan ya conceptos como los de clases, herencias, etc... que se acercan a la forma de pensar de la persona, en resumidas cuentas, de los lenguajes de programación orientados a objetos.

En conclusión, cada quien que empiece por el lenguaje que más le guste, por que al final lo importante es que amemos este mundo tan mágico como es el de la programación, disfrutemos con ello y queramos aprender todos los días más, aunque yo soy de los frikis que les gusta saber un poco de todo, que toca un poco los diferentes ensambladores, que aunque en alto nivel las estructuras de datos se nos vengan dadas, siempre mola mucho programarse una propia y aprender un poco lo que se esconde por detrás, todavía me acuerdo como fue mi paso desde Pascal a Java, cuando tuve que programar mi primer borrar elemento de una lista, programando un método de decenas de líneas en el que tenía que contemplar varios casos e ir todo el rato pensando en los punteros a la hora de moverme por la memoria hasta encontrar el elemento que quería, para borrarlo de forma segura sin perder información del resto de la colección, sin embargo, cuando llegué a Java, coger y en una línea de código, e invocar una sentencia con el objeto lista correspondiente del tipo remove o algo por el estilo, y hacer toda la magia, fue un golpe de realidad, pero al menos me llevé aprendido el funcionamiento que hay por detrás de las estructuras de datos, siempre serás capaz de ver más allá cuando quieras crear dichas colecciones.

Este es mi primer artículo, ya se que doy la chapa y me emociono mucho, a si que sed buenos conmigo y seguid disfrutando de la programación.


¡Saludos Programadores!




No hay comentarios:

Publicar un comentario

Recolector de Basura, cosas de las que las que no estamos pendientes.

Buenas programadores/as que disfrutáis la programación.  Esto de escribir, la verdad es que me está empezando a gustar, y hoy quisiera habla...