Mi camino como desarrollador web y estudiante de ingeniería en sistemas y computación

Andres Prieto
10 min readMay 15, 2021

--

Introducción

Este es mi primer blog y deseo compartir mi experiencia; actualmente soy desarrollador web y estudiante de últimos semestres de ingeniería por lo cual he ido acumulado algo de experiencia… Hasta ahora he desarrollado más de 10 proyectos personales y he trabajado con 2 startups en la primera como desarrollador web y en la segunda como backend engineer y bien deseo empezar por las pequeñas cosas que me llevaron a obtener experiencia desde el primer semestre de la carrera, mencionar las herramientas que uso para mi día a día como desarrollador y compartir algunos tips que me hubiera gustado tener

Contenidos

  • ¿Como obtener experiencia desde el día 0?
  • El primer contacto y el segundo día
  • Competir contigo mismo todo el tiempo
  • Las herramientas que me han ayudado
  • Tips para nuevos Ingenieros
  • Don’t lose momentum

¿Como obtener experiencia desde el día 0?

Un golpe de suerte:

Bien, para este apartado tengo que decir que tuve mucha suerte, puesto que cuando inicie mi carrera una una startup de desarrollo de tecnologías variadas estaba buscando recién ingresados para darles pautas de como entrar en la industria Tech, para formalizar un contrato, así que si; tuve mucha suerte para esta postulación solo ingresamos 4 personas de las cuales quedamos los 4; pero este golpe de suerte es replicable con guías como está, así que veamos que aprendí yo que le puedes servir a otros

Lo que la “suerte” me dejó

Ahora bien, yo la defino como:

“La suerte es la probabilidad de que algo suceda, mezclado con los conocimientos que tú tienes de una materia"

Así que, este artículo es un golpe de “suerte" pues, las habilidades que pude aprender fueron:

  1. Consultar por ti mismo, todos los problemas que tú tienes alguien más ya los tuvo
  2. Preguntar a otros está bien
  3. Usa una f*** agenda
  4. Estás en una universidad, aquí es donde más conocimiento puedes sacar de forma rápida

Estás son “habilidades blandas" (Más bien snippets), lo sé; pero quiero parar un momento en ellas y pensar en todo lo útil que me fue tenerlas desde el día 1, en el primer semestre de las Ingenierías relacionadas con código es donde mucha gente se choca con una pared de realidad, dónde te das cuenta que programar no es como ponerte en frente de un PC y tocar todas las teclas como un loco, es más como ver a un pianista leyendo una partitura, por lo que te vas a topar con muchas cosas raras, errores y warning que en principio no vas a entender, por eso es muy útil aprender a buscar los errores con los que te topes, eso sí; de forma técnica, no solo arrojar todo lo que salga en rojo en Stack overflow y tomarse la delicadeza de identificar el origen del error; de manera similar, una de las cosas más poderosas de la Ingeniería del software es su componente de comunidad, no siempre te van a responder, pero hacer parte de una comunidad y preguntar a otros sobre las cosas que vas aprendiendo ayuda, te puede dar una mejor perspectiva pues, estamos en constante aprendizaje de una cosa y otra, organizar un pequeño grupo de compañeros de carrera te puede ser muy útil con estos aspectos; de estos puntos hay uno que sinceramente es muy importante, tanto para la vida como para los estudios y es ser ordenado u ordenada con tus actividades, para lograr sacar el máximo provecho a una carrera es necesario tener orden y saber en todo momento de cuento tiempo de dispone para hacer las cosas, por ello una agenda como Google calendar te va a ser indispensable y por último hay una realidad de la que me dí cuenta hace relativamente poco, la universidad es como un bootcamp gigante con muchas disciplinas en el que puedes aprender sobre cualquier cosa, solo debes preguntar a las personas correctas y este punto es un poco complicado en principio pues, es abrir el espectro de posibilidades de tu carrera a toda la universidad, pero cuando se entiende lograrás obtener contexto de lo que sea muy rápido, lo cual es muy útil.

¿Y la exp?

Bien, todo este contexto sirve para 2 cosas; tener más tiempo libre e ideas más interesantes; con ambas cosas has de crearte la costumbre de trabajar constantemente en ti mismo como profesional, para crecer profesionalmente vas a necesitar experiencia y cuando llegues a las bolsas de empleo te vas a chocar con esa pared, la forma que yo encontré de suavizar ese golpe es trabajar constantemente en algo que te llame la atención y terminarlo, por ejemplo; mi primer desarrollo fue un vídeo juego, un clon de Mario hecho en un lenguaje hecho para matemáticas (Dejo aquí el link para quién desee verlo); fue la primera cosa interesante que hice y fue difícil, en verdad pues pasé muchas noches desarrollando, dibujando y calculando cosas para poder llegar a hacer 1 nivel muy corto, pues no tenía mucha idea de lo que estaba haciendo en realidad, pero me gustaba y lo disfrutaba; con ello aprendí a usar matrices se n saber que era una matriz entre muchas cosas, son esos momentos dónde tienes un problema que no tienes idea de cómo solucionar cuando realmente empiezas a crecer profesionalmente, claro en mi caso; me dieron documentación como para poder llegar a algo pero el esfuerzo es propio, sin embargó agradezco mucho lo que me brindo la primera startup, algo que en ese momento no entendí, contexto.

El primer contacto y el segundo día

La última palabra “contexto” ¿Saber buscar contexto? Bien, yo no sabía cuál era el contexto de la industria Tech cuando inicie, sabía que aquí había dinero y que las bases de datos podían darme de comer, pero no sabía cómo funcionaba eso que ves tras un ladrillo de cristal, la frase de “yo aprendí en mi primer trabajo” yo no la entiendí, hasta que entre cómo intern (Practicante) en mi primera startup, para mi fortuna ahí me dieron un gran contexto sobre las ramas de esta industria y de cómo se mueve todo, ese primer contacto con la realidad del mundo del software es lo que es vida a la frase “me tocó aprender en mi primer trabajo”, la universidad no te prepara para ese golpe de realidad, el empleo es como tomar el océano de un centímetro de profundidad que te da la universidad y lo convierte en la fosa de las marianas, ese ese momento te das cuenta de la inmensa cantidad de cosas que te faltan por aprender, es tanto que te pierdes… Hasta que llega el segundo día, el primer día cuando hablas con quién sea que te está dando empleo (O la oportunidad de ser practicante, en mi caso), no llegas a mucho, concretas un sitio y una labor; pero cuando realmente debes aportar algo a ese compañía vez como cada cosa se conecta de alguna manera y ese ese punto tienes contexto de como funciona lo que está por detrás, en ese punto dejas de ser un estudiante y te comienzas a volver un profesional (Junior y sin experiencia, pero un profesional). En realidad, para la mayoría no será tan fácil como que alguien llegué a la puerta de tu salón de clases y te ofrezca esa primera oportunidad de entrar, la mayoría tendrá que tomar el camino que yo he tomando desde hace un par de años (Lamentablemente ya no hago parte de esa startup), ese camino que te toma más tiempo y que a su vez te hace ir con pasos firmes, el de los proyectos personales; primero, define que algo que te moleste o te guste y trata de solucionarlo con código, trata de nutrir tanto como te sea posible eso que estás solucionando y aprende cuánto puedas, esa es la forma de crecer con los proyectos personales, pero es importante no perder de vista eso que te gusta o te molesta, el software te da súper poderes, puedes hacer cualquier cosa con un mouse, un teclado y una conección a Internet; con tiempo y esfuerzo, los desarrolladores nos convencemos de ello.

Competir contigo mismo todo el tiempo

Hay algo que te va a afectar a nivel emocional y esas coyunturas son los puntos cuando vas a querer renunciar, apagarlo todo y preguntarte: “¿Soy realmente bueno en esto?” Bien, esa pregunta yo la he formulado tantas veces que ya he perdido la cuenta y me percate de algo; en estadística sería comprar 2 muestras individuales como si fueran la única información disponible, lo cual para nuestro contexto es un gran error; nunca has de comprarte con otros, pues esto hace que se generen “burbujas seguras", esos puntos en los que crees que sabes, pero en realidad no sabes lo que te falta o peor hace que veas tu esfuerzo y progreso como algo insignificante comparado con alguien que corre más rápido, al final el ser profesional no es una carrera de velocidad, sino de resistencia, es una constante lucha contra tu pasado en el que buscas estar mejor en el futuro, competir consigo mismo es esto, Connor McGregor, luchador de la UNFC lo describe así:

“Los ganadores se enfocan en ganar. Los perdedores se enfocan en el ganador”

E independientemente de lo que puedas pensar de esta persona, esa frase; sinceramente me parece útil, en esos momentos en los que yo me comparé individualmente con otra persona, solo salía mal en un aspecto u otro; esto lo evitas compitiendo contra tu pasado, contra la persona que solías ser, el premio eres tú, no un título sino tú y tu futuro como profesional, compites contra eso porque competir contra otros en algún punto se hace aburrido…

Las herramientas que me han ayudado

Tengo que mencionar esto porque si yo no lo digo alguien más lo hará y probablemente cuando esa otra persona lo haga no será fácil de entender, Windows es un sistema operativo hecho para consumidores y los desarrolladores somos creadores; como experiencia este sistema de causo muchos problemas en mi carrera y a pesar de que al principio fue muy complicado cambié a GNU/Linux hace un largo tiempo ya, ese será el primer gran golpe que te den el desarrollar, los desarrolladores que poseen una terminal aprenderán muchas más cosas que los que no; a pesar de lo polémico que esto pueda sonar es cierto, nunca hubiera podido aprender como funcionan los sistemas operativos a profundidad si me hubiera quedado en Windows, muchos menos sabría cómo funciona un manejador de paquetes, un servidor o como se conectan las diferentes parte de una página web; has de cambiar a un sistema operativo que te permita crear para poder crecer de una forma realmente óptima. Luego de generar polémica con esto, pasemos a las herramientas que uso y que me ha ayudado siendo la primera se ella y ¿Cómo sería diferente?:

La terminal

La terminal de comandos, linea de comandos, Bash shell, “la cosita negra con letras” o la versión de terminal más pobre que conozco el cmd; es esa pequeña ventana negra que sale al presionar crtl + alt + t en muchas distros de GNU/Linux, por ejemplo Ubuntu o Linux Mint, en esta pequeña ventana negra con blanco o de colores dependiendo que tan Fancy seas aprenderás a hacer muchas cosas como desplegar servidores, usar manejadores de paquetes entre otras cosas… En ella tienes tienes acceso a todo lo que posee tu PC, desde archivos hasta nuevo software, pasando por los procesos de la máquina y algo que no todos se aventurar a usar llamado Vim.

Neovim (Editores de texto o IDEs)

Este es un fork se vim, es un editor de texto súper liviano que se usa en la terminal, personalmente me parece más cómodo pues no consume muchos recursos y es altamente personalizable (Aquí un tutorial), para personas más normales, herramientas como VSCose, Sublime Text, Atom o todo lo creado por Jet Brains (O esa IDEs), son lo como nuestros libros de magia, ahí es donde se escribe código, dónde se suele depurar y dónde se hacen las “cajas negras” que nos permiten jugar a The Last Of Us Part: 1 (Que la 2 no me gustó).

GNU/Linux (Distros)

Sin GNU/Linux no sería quien soy hoy, actualmente uso Arch Linux y la cantidad de conocimiento que he logrado adquirir gracias a todos mis fracasos con este sistema operativo me han enseñado demasiado, GNU/Linux te va a soltar errores y siempre va a haber algo que te haga pensar: “Puedo modificarlo todo, esto no me gusta ¿Cómo lo cambio?” Siendo ese mi caso aprendí mucho solo por usar este sistema, no siempre tuve el contexto necesario, pero lo solucioné con el siguiente apartado.

YouTube, Udemy, Coursera, Platzi, How to, etcétera

Era imposible no mencionar la cantidad de cursos que he visto en todos lados, en los anteriores encuentras cursos prácticos de lo que sea desde desarrollo web hasta artículos muy completos, claro, depende del dinero con el que cuentes tardarás o menos en aprender de una materia específica, pero llegarás a ello y esa es lo que importa, el como es indiferente.

Comunidades online

Hablando de aprender y conocimiento ¿Te has parado a pensar que lo que estás leyendo lo escribió alguien más? Bien, cuando piensas en eso un momento te das cuenta de algo: “¡Hay más gente como yo!” y si, las comunidades de desarrolladores suelen ser muy abiertas y hay mucha gente dispuesta a ayudar, el mismo Stack overflow es una muestra de ello, por ello te recomiendo que busques en un par de plataforma no tan comunes, la primera es Discord y ka segunda es Telegram; ambas apps tienen un buscador y ahí puedes encontrar comunidades de prácticamente cualquier cosa.

Tips para nuevos Ingenieros

Vamos terminando, así que me gustaría dejar al lector un par de tips que me hubiera gustado saber, algunos más técnicos y otros más simples…

Iniciando por los simples:

  • Mira muy bien tu malla curricular, hay están las materias que vas a ver en la carrera, coge una hoja y anota que tienes que ver si o si cada semestre para no atrasarte en la carrera, tienes que matricular ciertas materias para no graduarte en 6 años, cuando no te fijas en eso te atrasas, lo digo porque a mí me pasó, a mis amigos les pasó y probablemente a los tuyos también les pase.
  • Duerme bien por lo que más quieras, es muy difícil, no debería serlo, pero por lo es; la diferencia entre una buena noche de descanso y 8 tasas de café son varias consultas médicas.
  • Has ejercicio, la cultura geek por alguna razón premia el no hacer ejercicio y el apartarse de la sociedad, ambas cosas son malas.

Ahora las técnicas:

  • Sin inglés no hay nada, si miraste los links de arriba te debes haber percatado que están en inglés, este mismo articulo debería estar en inglés, no tienes excusa este siglo para no aprender a hablar inglés.
  • Sin sistemas de controles de versiones (Git) no vas a obtener empleo, git es lo más básico para poder trabajar en equipo, sin querer arrancar la cabeza de tus co-workers.
  • Crea cosas, ahora que llegaste hasta acá, crea cosas, tienes un poco más de contexto, ahora ve y crea cosas; hacerlo es gratis, no hay excusa

Don’t lose momentum

Thanks for reading, this is my first blog… Now, you got some context don’t lose momentum, keep learning and developing, it’s time to start your life as developer

(Para el que no presto atención en el colegio)

Gracias por leer, este es mi primer blog… Ahora, tienes algo de contexto, no pierdas el impulso, sigue aprendiendo y desarrollando, es tiempo de empezar tu vida como desarrollador

--

--

Andres Prieto

I'm a web developer & std. of system and computational engineering, who teach himself as much as possible, I GNU/Linux since I met it and I loading what I learn