Categorías
Algoritmos en Acción

Programar

Empezar a programar suena como algo imposible y muy complicado si nunca lo has hecho. Sin embargo, en mi opinión, se convertirá en una habilidad básica para trabajar en cualquier industria. Aquí lo bueno y lo malo de ser programador.

¿Cómo empezar a programar?

En el episodio ya hablamos de lo bueno y lo malo, pero ¿Cómo empezamos a programar? Buscamos en línea y solo encontramos un montón de letras que no tienen sentido: C, C++, PHP, HTML, CSS, Python, Java, Javascript (¿No son lo mismo?). Al principio esa lista sin fin de letras y acrónimos nos puede parecer muy confuso.

En opinión yo creo que importa más saber qué es lo que quieres crear. ¿Páginas web? ¿Aplicaciones para móvil? ¿Videojuegos? ¿Programas personales para incrementar la productividad en tu negocio? Después que lo hayas decidido podrás investigar cuales herramientas existen para hacer eso que tú quieres. De esa forma no solo aprenderás a programar sino que tendrás algo directamente relacionado con lo que quieres desarrollar y podrás empezar a crear ese proyecto que tienes en mente desde el principio.

Otra cosa a tomar en cuenta: cuando conoces lo básico en cualquier lenguaje, puedes aprovechar esos conocimientos para otros lenguajes. Te darás cuenta que cada vez es más fácil aprender un lenguaje nuevo ya que los principios son los mismos (o muy similares) para todos. Aprende los fundamentos en cualquier lenguaje y de allí podrás explorar nuevas áreas poco a poco.

Ventajas, desventajas de programar y porque me gusta tanto

A partir de ahora no importa la industria de la que te dediques vas a tener que al menos que entender cómo funciona un programa. No creo que todo el mundo tenga que volverse programador pero sí tener las nociones básicas de qué se puede hacer, que no se puede hacer y cómo funcionan las cosas. Esto nos va a ayudar a entender y aprovechar de la mejor forma posible la tecnología a la que tenemos acceso, saber cuáles son sus opciones y limitantes. También nos ayuda a mejorar nuestra productividad o incluso a tener noción de que si nuestro trabajo puede ser programable, ya que si lo es en algún momento ya no tendremos trabajo.

Es como resolver acertijos

Programar es como resolver pequeños acertijos, uno detrás de otro. Es descubrir cómo hacer algo de forma automática. Ya que descubres eso, llega el desafío de hacerlo más rápido, más eficiente, más intuitivo, más bonito o más visual y más entendible. Combinar este tipo de cosas con código es muy entretenido y satisfactorio, al menos para mí. Ya que a pesar de existen demasiadas opciones para hacerlo, tú vas a encontrar aquella que cumple con los requerimientos del proyecto pero también refleja tu experiencia personal y tu proceso de resolución de problemas. Eso, a mi parecer, es una muestra de creatividad e ingenio constante.

Te hace pensar en la experiencia del usuario

Uno de los retos de programar llega cuando otra persona utiliza tu programa. Yo creo que tal vez esa es la parte más complicada de todo. Los usuarios utilizarán el resultado de tu trabajo. Y tal vez otros programadores agregarán características a lo que tú hiciste previamente. Puedes hacer algo súper complejo con miles de características y funciones pero si al final no eres capaz de transmitir su funcionamiento a alguien más, lo que hiciste es más bien inútil. A veces se piensa que el programa es muy sencillo de usar pero te das cuenta que has cometido muchos errores por no tomar en cuenta el pequeño detalle de que no solo tú lo vas a usar. Por muchas cosas que pueda hacer tu programa si nadie lo entiende no sirve para nada. Lo cual lleva a un nuevo problema: descubrir como las personas siguen instrucciones y como el diseño puede ayudar a describir el funcionamiento de tu programa. Y sobre eso aún hay mucho que descubrir.

Debes documentar tus programas

En relación con el punto anterior llega el tedio de documentar. En algún momento te das cuenta de lo mucho que has hecho y de todos sus detalles. Ahora, tienes que escribir todo eso para explicarlo en un documento. Honestamente es la parte que menos me gusta de programar. Al final vale la pena y es necesaria. Si utilizas o agregas características al proyecto de alguien más siempre aprecias que este bien documentado para saber exactamente que hizo y porqué. Eso no solo te ahorra mucho tiempo sino que también es una herramienta de aprendizaje. Por eso, aunque sea muy tedioso siempre procuro comentar, dejar algunas notas y de ser posible un pequeño manual de uso con instrucciones.

Te ayuda a incrementar tu productividad

También me gusta mucho el hecho de que programar puede incrementar tu productividad. Si realizas alguna tarea repetitiva y que se realice de forma constante, lo más seguro es que se pueda programar. Por ejemplo, generar un reporte o analizar tus finanzas. Un programa puede hacerlo por ti y, no solo eso, generalmente lo hará más rápido y con menos errores. Si delegas el tedio a una maquina puedes dedicarte a otras labores más sociales o creativas. Sí alguna vez has hecho macros en Excel tú entiendes lo que me refiero.

Entender cómo funcionan las cosas

También me gusta mucho que gracias a que sabes un poco de programación tienes cierta noción de cómo funcionan las cosas. Por ejemplo en una página web, las redes sociales o alguna app. Entiendes como es que algunas de esas características funcionan y también porque fallan. Incluso en ciertos puntos puedes tener ideas sobre cómo replicar un resultado similar.

Es un trabajo de escritorio

Cuando están pensando en cómo resolver un problema o como programar cierta característica puedes estar en cualquier lugar pero al final la mayoría de tu trabajo ocurre en un escritorio frente a la computadora. Si eso no te atrae para nada o no lo soportas, tal vez la programación no sea para tí.

Puede ser un trabajo remoto

Un programa lo puedes hacer en cualquier lugar, en cualquier computadora (que tenga los programas y las herramientas que necesitas) pero no necesitas estar físicamente en el mismo lugar que tu cliente. Eso te abre muchas posibilidades, muchos clientes nuevos incluso de otras nacionalidades. Eso viene con varias desventajas y ventajas pero ya hablaremos en otra ocasión sobre ello.

Beneficios económicos

Programar, al menos por ahora, es un buen trabajo económicamente hablando. La demanda es más grande que la oferta en varias áreas lo cual incrementa los salarios. Eso sí, como en muchas otras industrias, tendrás que dedicarte a algo más específico para ganar más. Ya que lo básico muchas personas pueden ofrecerlo y eso mismo lo vuelve más barato. Puede ser bases de datos, aplicaciones para móvil, inteligencia artificial, ciencia de datos o lo que quieras pero procura tener un extra no tan común en tu repertorio. Yo siento que primero debe de gustarte programar. El beneficio económico no va a cambiar el hecho de que te la vas a pasar estresado y aburrido frente a una computadora si no lo disfrutas.

Correspondencia con la ciencia (y los videojuegos)

También que me gusta mucho en programación es que combina muy bien otras áreas como puede ser la ingeniería, matemáticas, ciencia e incluso los videojuegos. Eso te hace conocer otras cosas, que si bien están relacionadas a la programación forman parte de otras áreas. Eso me ayuda mucho a no sentirme atascado, a seguir creciendo y aprendiendo nuevas cosas todo el tiempo.

Tener pensamiento algorítmico y abstracto

Esto es abrumador en ocasiones pero también muy útil. Necesitas un pensamiento algorítmico para tener noción de que pasos vas a seguir para poder terminar el problema actual. Necesitas un pensamiento abstracto para no solo resolver un caso específico de ese problema sino poder abarcar tantas opciones como sea posible, volverlo más robusto. Esto solo se consigue con la práctica y el estudio y siempre se puede continuar mejorando. En lo particular me gusta mucho porque una vez que adquieres esa habilidad puedes aplicarlo a otras áreas de tu vida.

  • Codeacademy
  • Otras páginas como Udemy, Coursera y edX también ofrecen cursos sobre programación no dudes revisar estas plataformas.
    • Mi recomendación si quieres empezar desde cero es este curso de HarvardX CS50.
  • Existe un desafío llamada #100diasdecodigo (o en ingles #100daysofcode) que consiste en programar de forma constante durante 100 días continuos, puede ayudarte a mejorar tus habilidades y sigues el hashtag también puedes obtener inspiración de otras personas o incluso saber a quién preguntar.

Por MarianoOG

MarianoOG es un científico de datos que ha participado proyectos científicos, apasionado de la tecnología, la ciencia y la educación, con experiencia en programación e inteligencia artificial. A través de su podcast, comparte su conocimiento y experiencia con personas curiosas y autodidactas que buscan crecer profesional y personalmente.