Freelance research fue una idea que se me ocurrió hace ya varios años, cuando recién había salido de la carrera. Investigar por mi cuenta. Y finalmente creo que podré implementar esa idea. Espero el contenido les resulte útil.

Posted

Ya sea que apenas empieces a programar, o seas un desarrollador experimentado, preparar tu ambiente de desarrollo es una actividad de la que no te puedes escapar, y necesaria para cualquier proyecto. Pero, ¿qué significa tener un ambiente de desarollo?

Vamos por pasos, porque depende tanto del proyecto, como de las preferencias del desarrollador, y las herramientas a su disposición. Es difícil decidir por dónde empezar. Lo más básico es un simple editor de texto y un compilador o un intérprete, según el lenguaje seleccionado para el desarrollo. Podemos tomar por ejemplo a Java o C, y el proyecto más simple, imprimir un “hola mundo”. La ejecución la podemos escribir con un nano en linux, o el bloc de notas en windows. Ejecutamos el compilador y generamos un nuevo archivo, el ejecutable. Si usamos un lenguaje interpretado, como bash o python, solo ejecutamos el intérprete y pasamos como parámetro el archivo de texto. Ese es todo nuestro ambiente de desarrollo.

Conforme avanzamos y hacemos cosas no tan triviales, comienzan a aparecer los errores. Para evitarlos, cambiamos el editor de texto por uno que adicionalmente tenga un corrector de sintaxis, y ya es posible notar algunos antes de compilar. Con la complejidad de los proyectos, aumentan el número de archivos y necesitamos tener varias ventanas abiertas. También debemos agregar librerías y añadir parámetros que las incluyan al momento de compilar. Entonces nos mudamos a un ambiente integrado de desarrollo (IDE).

El IDE facilita en gran medida el proceso. Se le puede configurar un depurador, tiene revisión de sintaxis, y se configuran librerías adicionales a compilar. También se conectan con repositorios de código, facilitando el versionaiento y despliegue. Hay IDEs especializadas por lenguaje, multilenguaje y multiplataforma. Android Studio, por ejemplo, está enfocado en aplicaciones móviles, mientras que Visual Studio tiene todos los elementos para desarrollar aplicaciones se ejecutarán en Windows. Eclipse, por poner otro ejemplo, es un IDE en java, por lo que se puede ejecutar tanto en Windows como Linux, y se puede desarrollar utilizando varios lenguajes.

Actualmente, el ambiente de desarrollo puede ser el mismo que el de producción mediante el uso de contenedores como Docker. Con este enfoque nos aseguramos que todas las librerías y configuraciones realizadas en el proyecto se lleven correctamente a un ambiente productivo. Otro avance es el uso de la inteligencia artificial (AI) para apoyar en el desarrollo. Aquí no puedo comentar mucho porque aún no he usado estas herramientas. Pero por lo que he leído, son de gran ayuda. Ya comentaré cuando las pueda probar.

La última pieza a tomar en cuenta, son las dependencias de sistemas externos, como bases de datos o interfaces de aplicación (APIs). Algunas se podrán instalar de forma local, otras solo estarán disponibles de forma remota. De cualquier manera, hay que hacer los ajustes apropiados para su correcta interacción e integración con el desarrollo del proyecto.

Como se puede ver, hay muchas variables a tomar en cuenta cuando se configura un ambiente de desarrollo. Sin embargo, una vez listo, el foco pasa completamente al proyecto, para que se desarrolle con la mayor rapidez posible y con el menor número de errores.

Author
Categories El camino del desarrollador

Posted

Últimamente he visto que se promocionan muchos cursos sobre cómo iniciarse en la programación. Existen diplomados, cursos en línea y en youtube, entre tantos otros. También hay discusiones sobre qué lenguaje es mejor para iniciar, o qué temas aprender. No puedo opinar sobre los cursos, así que aquí comentaré sobre mi experiencia de aprendizaje.

Lenguajes de programación hay muchos, algunos son para tareas muy específicas, como R y MatLab, y otros son más generalistas, como C o Java. Muchos sitios están hechos con PHP, y las últimas aplicaciones web usan Javascript tanto en la presentación como en servidor. Es difícil que una persona pueda conocer todos los lenguajes de programación a fondo. Sin embargo, existen elementos que todos tienen en común. Por ejemplo, la evaluación de operaciones lógicas, los ciclos y la recursión. Así que si entiendes lo que significa la expresión “si A entonces B”, puedes convertirla a código en el lenguaje de tu preferencia.

Con base en el ejemplo anterior, nos podemos dar cuenta que es posible programar hasta en papel, porque lo que nos interesa es definir los pasos para resolver un problema. Una vez que tenemos clara la solución, ésta se puede implementar en cualquier lenguaje de programación. De aquí se deriva la importancia de conocer conceptos básicos de programación, como diseño de algoritmos y estructura de datos, por mencionar un par. Aprendes a pensar, y al final se facilita el desarrollo del código. Como dato adicional, este conocimiento es algo que piden en la mayoría de las empresas grandes para puestos de desarrollador.

No es fácil programar en papel, yo también he escrito código sin la solución completa. Sin embargo, cuando lo hago así, las líneas de código fluyen con más facilidad. Muchos cursos de programación comienzan diciéndote cómo hacer ciertas acciones, como el típico “Hola mundo”. Sin embargo, cuando ya tenemos algo específico a codificar, podemos revisar la documentación del lenguaje, ver tutoriales o hacer preguntas en un curso, todo enfocado a implementar la solución. De esta forma podemos obtener mayor provecho de la información y aprenderemos más sobre el lenguaje.

Mientras más veces se repita el ejercicio anterior, obtenemos más dominio sobre el lenguaje, y somos mejores para pensar en papel. Además, ya existen sitios como HackerRank y LeetCode, que ofrecen retos que ayudan a aprender una gran variedad de lenguajes. Finalmente, el siguiente paso es hacer sistemas completos, aunque sea pequeños, de inicio a fin. Con más experiencia entenderemos la necesidad de la documentación, diagramas de flujo, diagramas de bases de datos y otros tantos que son requeridos, pero que como desarrolladores no siempre queremos realizar.

Author
Categories El camino del desarrollador

Posted

Este es el inicio de una aventura. Quieres iniciarte en la programación. La manera de hacerlo es seleccionando un lenguaje y comenzar a aprenderlo. Puedes buscar información el libros, blogs, cursos en línea, Youtube, etc. Existen muchos recursos. ¿Por dónde iniciar?

Como ya mencioné, primero selecciona un lenguaje. Dependiendo de tus antecedentes y tus metas, puedes iniciar con Python o PHP (incluso si dicen que este último ya está muerto, lleva así desde hace varios años). Hay muchos frameworks, pero úsalos hasta que domines lo básico. Después te puedes mover a Javascript para programación de FrontEnd, combinado con HTML y CSS. También te puedes mover a algo más estructurado como Java, C o C++.

Conocer bien alguno de los lenguajes anteriores de puede llevar a una entrevista de trabajo, o a algunos proyectos freelance.

Ahora, algunos puntos importantes a tener en cuenta:

  • Piensa en un problema que tu o alguien más tenga y que quieras resolver. La solución a ese problema tiene que ser algo que programes en el lenguaje que quieres aprender. Esto te dará una guía de lo que tienes que construir, y los recursos necesarios para construirlos.
  • Implementa algunos algoritmos en el lenguaje seleccionado. Qsort, la ruta más corta, búsqueda en árboles binarios, etc. Con esto aprenderás los fundamentos de la programación, y serás un mejor programador. También aprenderás a pensar antes de escribir código, lo que es más difícil de lo que parece.
  • Involúcrate en algún proyecto de código abierto. Busca algo que te guste, contacta a las personas que lo mantienen, ayuda con la documentación, lee y entiende el código, qué es lo que hace, cómo y por qué lo hace. Conforme avances podrás incluso contribuir con tu propio código.

Además de aprender el lenguaje de tu elección, también tienes que aprender a crear tu ambiente de desarrollo. Selecciona un IDE (Integrated Development Environment), un compilador, un framework de pruebas y un administrador de código fuente. Finalmente, aprende cómo desplegarlo en producción, para compartir con el mundo la solución de tu problema.

Esta es información básica, pero suficiente para tenerte entretenido un rato. Justo después de esto es cuando las ramas de TI comienzan a diverger, pero esa será otra publicación.

¡Diviértete programando!

Author
Categories El camino del desarrollador

Posted

Hola, mi nombre es Juan Pablo, y soy un ingeniero en sistemas computacionales. Por razones personales, quiero hacer un mapa del conocimiento que una persona técnica necesita para desarrollarse profesionalmente en el mundo te las tecnologías de información.

Si, ya se que hay muchas infografías al respecto, tal vez incluya algunas aquí, pero quiero intentar un enfoque diferente. Quiero contar una historia, no mía ni de alguien más, de cómo al final, cualquier persona puede terminar en el mundo de las TI, y vivir de ello.

La primer manera es la más simple, tu eliges seguir el camino de las ciencias computacionales, o áreas similares. Inicias en la prepa o en la carrera, tomando algunos cursos o aprendiendo por tu cuenta. De cualquier manera, desde el inicio ya sabes que quieres tratar con computadoras y tecnología.

Personalmente, de niño, visité a un tío que tenía una computadora. El puso un juego, Breakout (https://en.m.wikipedia.org/wiki/Breakout_clone), y me gustó jugar con él. Años más tarde, mis papás me inscribieron en un curso de verano de programación. Era un sistema simple, en el cual tu escribes las instrucciones y una tortuga se movía de la manera especificada. Había más, pero esto es lo que recuerdo.

Es curioso para mi que en la secundara y preparatoria no entendía muy bien las clases de computación. Me fue bien, pero no entendía lo que era la programación, sino hasta la universidad. Aún no conocía todo el panorama del campo de las TI.

Hay muchos otros ejemplos de por qué las personas eligen las ciencias computacionales. He conocido casos que se dieron porque tuvieron acceso temprano a una computadora. Otros querían escribir videojuegos. Pregúntale a Google y encontrarás muchas historias que llevaron a buscar un grado en computación.

Pero como ya lo dije, las ciencias computacionales no son la única manera. Conozco un chef que se convirtió en desarrollador, ingenieros en otras áreas que se cambiaron a TI a mediados de la universidad, o incluso al final. Matemáticos, físicos y de otras carreras que terminaron aprendiendo a escribir código.

No podemos negar que hoy casi todo involucra la tecnología, y programar es una muy buena habilidad para aprender. Pero hay muchas ramas en este árbol, y mientras más conoces, la rama se hace más grande, y el futuro más brillante.

Author
Categories El camino del desarrollador