Aprender a programar DESDE CERO -- Una introducción (parte 1)
¡Hola, gente de Steemit! Hoy empiezo una serie en la que quiero poner el máximo de empeño y dedicación. Voy a hablarles de uno de los temas que más me apasiona en la vida: La programación de computadores. El objetivo es enseñarle a las personas que me lean, a través de explicaciones básicas y comprensibles (espero que así sea), a programar sin necesidad de tener algún conocimiento previo en la materia. Serán mis primeros posts haciendo tutoriales, así que espero sus comentarios constructivos para mejorar cada día, pues soy un novato en esto de enseñar a través de un blog. Antes de empezar, algunas aclaraciones importantes:
- En estos tutoriales no se abordan temáticas excesivamente profundas y no se hace énfasis en aprender muchos lenguajes de programación ni muchos frameworks. El objetivo es entender qué es programar y cuál es la lógica necesaria para hacerlo.
- No utilizo ningún libro o fuente externa para hacer estos tutoriales. Soy estudiante de cuarto año de Ingeniería en Sistemas, por lo que toda la información que doy acá ha sido extraída de mis clases en la universidad y de lo que he consultado por mis propios medios en ocasiones anteriores. En caso de utilizar conocimiento sacado de otras fuentes, haré claridad. Así mismo, para el caso de las imágenes, citaré la fuente en el caso de que no sean mías. Las imágenes que no aparecen con su fuente abajo son hechas por mí.
Sin más preámbulos, ¡EMPECEMOS!
Fuente
Una introducción:
Empecemos por lo básico
¿Qué es programar? Después de todo, esa es la pregunta más interesante que nos podemos hacer en un principio. Bien, esta vez lo definiremos como aquella disciplina en la que se le dan instrucciones a un equipo de cómputo (computadores, smartphones, robots, electrodomésticos inteligentes, etc.) para que haga alguna tarea específica. En términos más cotidianos, se trata de darle órdenes al computador en uno o más lenguajes que él entienda. A estos lenguajes se les conoce como lenguajes de programación (ojo con ese concepto. Es muy importante). Es más, si queremos hacer aún más sencilla la definición, podemos decir que programar es hablar con el computador.
¿Cómo hago que el computador me entienda?
Normalmente nos enseñan que el computador es un dispositivo inteligente. En mi concepto, esta afirmación es bastante discutible, pues normalmente el computador no es capaz de realizar un proceso cognitivo importante que el ser humano sí hace: Aprender por sí mismo. Los procesadores modernos pueden hacer todo tipo de operaciones lógicas y matemáticas billones de veces más rápido que un ser humano, pero siempre necesitan de alguien que les diga qué hacer. Es allí donde el programador entra en escena y se vuelve importante. Este ser superior (dicen que eso somos los programadores) tiene la tarea de enseñarle a los computadores qué operaciones realizar para lograr un fin específico. El problema está en que las máquinas no entienden el español o el inglés. Es necesario hablarles en su mismo idioma.
Pues bien, en el primer capítulo de este tutorial hablaremos un poco de los lenguajes que se usan para establecer comunicación con el computador. Bienvenidos al mundo de los lenguajes de programación.
El lenguaje de las máquinas
Los computadores son máquinas digitales. Eso quiere decir que, en todos sus circuitos y procesos, trabajan con código binario (mucha atención a las palabras que pongo en negrita). El código binario combina de todas las formas posibles los únicos dos números que usa: El uno (1) y el cero (0). Por lo tanto, el único lenguaje que entienden los dispositivos digitales está compuesto por largas cadenas de unos y ceros. Es realmente complicado, pues este código conocido como lenguaje de máquina es totalmente incomprensible para el ser humano.
Sin embargo, los ingenieros son unos genios y una de sus funciones es facilitarnos la vida. Por eso, a través de más de 50 años de investigación, han desarrollado algunas estrategias que permiten que la difícil tarea de programar no sea excesivamente ardua. En la actualidad, casi nadie programa a través de unos y ceros, sino que los programadores utilizamos un invento maravilloso: Los lenguajes de alto nivel. Les explicaré un poco cómo es el proceso:
El viaje de las instrucciones
Normalmente, el programador escribe su código en un lenguaje de programación de alto nivel. Estos lenguajes son mucho más sencillos que el lenguaje máquina, pues utilizan palabras cotidianas (en inglés) y tienen reglas sintácticas sencillas de aprender. Algunos de los más conocidos y usados son C++ (el padre de casi todos), PHP, Python, Java, Ruby, JavaScript, entre otros. En este tutorial aprenderemos algunas cosas en uno de estos lenguajes (en el segundo capítulo sabrán cuál es).
Luego de que codifica su programa, el programador deberá pasar el código por un compilador o por un intérprete (son distintos y se usan dependiendo del tipo de lenguaje de programación. En otros capítulos profundizaremos un poco). Tanto los compiladores como los intérpretes son programas que se encargan, en primer lugar, de analizar el código en busca de errores sintácticos o semánticos (por ejemplo, que falte una coma en algún lugar donde debería ir). Si no encontró ningún error de este tipo, el compilador traduce el código hecho por el programador a un lenguaje de mediano nivel.
El lenguaje de mediano nivel es menos comprensible para el ser humano que el de alto nivel, pero es mucho más comprensible para la máquina. Se comunica directamente con el procesador, quien es el que realiza todos los cálculos; es el que, en última instancia, ejecuta el programa. El lenguaje de mediano nivel también se conoce como ensamblador y le indica al procesador cuáles son las direcciones específicas de memoria que debe utilizar, entre otros detalles técnicos en los que no profundizaremos. Por último, el código en lenguaje de mediano nivel es traducido a lenguaje máquina. Como lo indiqué anteriormente, este lenguaje está compuesto solamente por largas cadenas de unos y ceros, las cuales son recibidas por el procesador directamente. Es allí realmente donde el programa cobra vida. Algunos compiladores traducen directamente el código del lenguaje de alto nivel al de máquina, obviando el paso por el lenguaje ensamblador.
Fuente
Bien, aquí llegamos al final del primer capítulo de este tutorial. Fue bastante teórico; pero lo cierto es que los conceptos aquí tratados son fundamentales a la hora de programar. Si la información les resultó útil e interesante, no olviden dar upvote y resteem. Nos reencontramos pronto.
Holaa, muy buen post, te sigo, un gran saludo!
Usted ha recibido un upvote por la comunidad @inteligentzia y su TRAIL de curadores ya que consideramos su post de información útil y de relevancia creativa.
Si quieres saber más del proyecto aquí te dejamos nuestro post introductorio
También puedes unirte a nuestro canales en el Chat Discord o en nuestro Grupo de Facebook para saber más del proyecto!
¡Muchas gracias!
Congratulations! This post has been upvoted from the communal account, @minnowsupport, by juancrdrums from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.
If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.
¡Muchas gracias!