Cosas muy importantes que deseaba saber antes de convertirme en un ingeniero de software

¿Recuerdas la frustración de aprender a codificar y escribir tu primer programa «Hola Mundo», lidiando con errores y bugs que te mantenían despierto durante horas, días o incluso semanas y la constante idea de que no estabas haciendo ningún progreso y estabas atrapado sin saber a dónde ir a continuación?

Bueno, si te identificas con eso, definitivamente puedo relacionarme. Cuando comencé a aprender a codificar, mi progreso fue muy lento, constantemente me sentía frustrado y no sabía realmente qué estaba haciendo o hacia dónde iba. Por esa razón, quiero compartir contigo cinco cosas que {deseaba} haber sabido antes de convertirme en ingeniero de software.

Aunque estas cosas no hubieran resuelto todos mis problemas, habrían hecho que esta experiencia fuera mucho más placentera y me hubieran permitido avanzar mucho más rápido. Entonces, con eso dicho, veamos cinco cosas que {deseaba} haber sabido antes de convertirme en un ingeniero de software.

Recurso

BISSELL SpotClean Pet Pro | Limpiador de Manchas de Mascotas | Ideal para Escaleras, Tapicería, Autos y Alfombras
BISSELL SpotClean Pet Pro | Limpiador de Manchas de Mascotas | Ideal para Escaleras, Tapicería, Autos y Alfombras

El primer punto en esta lista tiene que ver con los recursos. Hay tantos recursos gratuitos y pagos disponibles para aprender a codificar, y debes averiguar rápidamente qué tipo de medio y recursos funcionan mejor para ti. Personalmente, me gusta leer mucho, prefiero pasar por la documentación o leer algunos libros simples. Me gusta obtener la información rápidamente y experimentar con ella por mi cuenta.

Pero sé que a muchos de ustedes les gusta el contenido en video, donde pueden encontrar un libro largo y a fondo, o incluso un artículo de blog. Sea lo que sea, debes descubrir cuál es el recurso que funciona para ti. Si prefieres el contenido escrito como yo, te encantarán los recursos gratuitos de nuestro patrocinador de vídeos, HubSpot. Uno de los recursos que me llamó la atención fue «50 plantillas de codificación gratuitas», que proporciona muchos fragmentos de código útiles que puedes copiar y pegar en tu propio código.

Esto es completamente gratuito y te brinda recursos relacionados con efectos CSS, barras de navegación, botones, transiciones, prácticamente cualquier cosa que puedas imaginar. Hay una gran cantidad de recursos allí, y a mí me encanta trabajar con estos fragmentos de código y plantillas predefinidas porque me permite crear un sitio web rápidamente sin tener que preocuparme por todos los detalles, como el CSS, que personalmente odio escribir.

He incluido el enlace en la descripción para que puedan echarle un vistazo ustedes mismos, pero HubSpot tiene muchos otros recursos excelentes que también pueden encontrar de forma gratuita en el enlace de la descripción. Un gran agradecimiento a HubSpot por hacer todos estos recursos gratuitos y patrocinar este vídeo. Ahora, pasemos al siguiente consejo.

Primer lenguaje de programación

Algo que realmente {deseaba} haber sabido es que el primer lenguaje de programación que aprendí no iba a ser el último. Creo que muchas personas, incluyéndome a mí mismo cuando recién comenzaba, gastamos mucha energía y tiempo enfocándonos en qué lenguaje deberíamos aprender como el primer lenguaje. Si bien eso es importante y vale la pena invertir algo de energía y tiempo, te das cuenta a medida que te conviertes en un ingeniero de software y aprendes muchas cosas diferentes que realmente el lenguaje se basa en lo que vas a hacer con él.

No es como si fueras solo un desarrollador de Python o solo un desarrollador de JavaScript o solo conocieras este lenguaje. Utilizas diferentes lenguajes según el tipo de aplicaciones y tareas que estés intentando lograr. Así que en lugar de decir «quiero aprender Python porque es más fácil» o «voy a aprender JavaScript o C++», {deseaba} haberme enfocado en lo que quería construir. ¿Quería construir sitios web? ¿Aplicaciones móviles? ¿Juegos?

Lo importante es elegir el lenguaje y stack adecuados en función de ese objetivo. Muchas personas lo hacen al revés, eligen un lenguaje y luego ven qué pueden hacer con él, en lugar de elegir qué es lo que realmente quieren hacer, especialmente al comenzar y tener una gran pasión por esto, y luego descubrir cómo hacer eso y qué necesitan aprender. Además, a medida que adquieres más experiencia como desarrollador de software, trabajarás con múltiples lenguajes, es posible que te contraten en un trabajo donde utilicen lenguajes que no conoces y tendrás que pasar algunas semanas aprendiendo ese lenguaje.

Eso está totalmente bien. Solo quería enfatizar aquí que no importa con qué comiences, siempre puedes aprender diferentes lenguajes y lo importante es utilizar el lenguaje correcto para el trabajo y no estar apegado a una pila de tecnología o tecnología en particular. Ahora, pasemos al siguiente consejo.

Herramientas de ingeniería de software

La próxima cosa que {deseaba} haber sabido es que dominar las herramientas de ingeniería de software es casi tan importante como dominar la resolución de problemas y las habilidades de programación. Debo admitir que, al principio, como youtuber y ingeniero de software principiante, cometí algunos errores y hice algunos videos engañosos donde hablé sobre por qué no es necesario usar un IDE o por qué no es tan importante dominar esta herramienta.

Eso fue antes de tener mucha experiencia trabajando en un equipo de ingeniería de software. Ahora, como desarrollador que escribe código prácticamente todos los días, revisa código y ve a muchos desarrolladores junior, puedo afirmar que es súper importante que te sientas cómodo en el entorno en el que estás trabajando y seas eficiente con varias herramientas de ingeniería de software. La más importante que me viene a la mente es Git.

Es fundamental que estés cómodo con Git, que sepas cómo resolver conflictos, cómo crear una solicitud de extracción, cómo mover confirmaciones entre diferentes ramas, hay muchas cosas que suceden cuando trabajas en una base de código grande y ser cómodo con tu IDE, conocer los diferentes atajos y especialmente comprender cosas como los comandos de bash y Git es de gran ayuda y te ahorra mucho tiempo. No puedo decirte cuántas veces alguien más junior se me acercó y me dijo: «Oye, ¿puedes ayudarme con este problema de Git?».

Eso está bien, estoy feliz de ayudarlos, pero si hubieran pasado quizás una hora viendo un curso de Git o revisando algunos comandos más avanzados, eso les habría ahorrado mucho tiempo, no habrían tenido que esperar por mí y habrían sido mucho más eficientes. Entonces, lo importante aquí es asegurarse de que realmente estás aprendiendo tus herramientas de ingeniería de software, estás aprendiendo sobre los depuradores, estás aprendiendo sobre Git y estás poniendo un poco de énfasis en eso, especialmente cuando intentas trabajar en equipo y conseguir algún tipo de trabajo. Ahora, pasemos al siguiente consejo.

Hábitos y estilo de programación

Otra cosa que {deseaba} haber sabido es que debía enfocarme en mis hábitos y estilo de programación mucho antes en mi trayectoria como desarrollador de software. Muchas personas, cuando recién están comenzando, no consideran realmente cómo están escribiendo código, solo están tratando de hacer algo, resolver un problema y entender qué está sucediendo. Eso es muy comprensible y no culpo a nadie por eso, pero creo que también es muy útil considerar la forma en que estás escribiendo el código y los hábitos que estás formando.

Muchas personas se acostumbran, especialmente si son programadores competitivos, a escribir nombres de variables muy cortos o no ser expresivos con su código, simplemente resolviendo algo lo más rápido posible. Eso es genial en un entorno de programación competitivo, pero no cuando estás trabajando en un equipo. Deseas tener el hábito de escribir nombres de variables potencialmente largos, verbosos y fáciles de entender, incluso cosas como separar tu código en funciones más pequeñas, condensar algunos de tus niveles de anidamiento, tal vez tomar algunas condiciones y ponerlas dentro de una variable.

Hay muchas cosas muy simples que puedes hacer, que realmente son hábitos que desarrollas con el tiempo, que te permiten escribir un código más limpio, escalable y mucho más expresivo y fácil de entender. Es muy difícil si has estado programando de una cierta manera durante dos o tres años de repente comenzar a escribir código muy limpio porque tu hábito es escribirlo de la otra manera.

Entonces, si cuando recién estás comenzando te preguntas cómo puedes escribir el mejor código posible, cómo puedes ser consistente, ese es el gran punto, ser consistente en el estilo que uses, eso realmente te va a servir mucho, y cuando te enfrentes a una entrevista o te encuentres en un entorno de equipo donde alguien esté revisando tu código, ni siquiera tendrás que pensar en escribir de otra manera porque el hábito ya estará formado de que siempre escribes buen código, porque eso es lo que haces. Entonces, pasemos al siguiente consejo.

¡No es una competencia!

Lo siguiente que {deseaba} haber sabido es que esto no es una competencia. Creo que muchas personas, yo incluido, entran en esta mentalidad en la que constantemente nos comparamos con otras personas. Podemos ver videos sobre cuánto gana un ingeniero de software y decir: «Oh, ese tipo gana 200k en Google» o «ese tipo gana 250k, pero yo ni siquiera tengo trabajo» o «él lo logró en seis meses, pero yo he estado programando durante dos años y aún soy un desarrollador junior», lo que sea. Tenemos esta mentalidad constante de comparar el éxito de otras personas y decir que deberíamos estar ahí, deberíamos ser mejores que ellos.

La realidad es que esa mentalidad no es útil, no te llevará a ninguna parte, a menos que realmente sea la energía y la pasión que sientas para aprender más cosas. Simplemente no creo que sea algo útil de hacer. Todos aprendemos a codificar a un ritmo diferente, hay personas que son naturalmente muy inteligentes y pueden aprender en unos pocos meses, y hay personas que tardan dos o tres años en aprender, no importa cuánto tiempo te lleve, lo que importa es que estés mejorando constantemente y estás dando lo mejor de ti.

La única persona con la que creo que deberías compararte es contigo mismo, y preguntarte: «¿Estoy mejorando más que ayer? ¿Realmente estoy progresando? ¿Estoy alcanzando mi capacidad?». Esa es una buena comparación que puedes hacer, no contra otras personas que están en una situación completamente diferente a la tuya. Sé que es mucho más fácil decirlo que hacerlo, todos probablemente sigamos haciéndolo hasta cierto punto, pero creo que tanto como sea posible, intenta mantener la comparación contigo mismo y no con otras personas.

Simplemente no creo que sea algo útil de hacer. Bueno, así que mi último punto aquí es tener un poco de motivación o inspiración, y es que realmente puedes aprender cualquier cosa. Creo que muchas personas, especialmente cuando recién están comenzando a programar o se están adentrando en un campo más difícil, limitan lo que piensan que serán capaces de hacer. Piensan: «Bueno, puedo hacer Python, pero creo que algo como C++ puede ser un poco demasiado difícil para mí» o «No creo que pueda incursionar en el aprendizaje automático, las matemáticas serán demasiado complicadas».

Se forman estas creencias limitantes. Te prometo que puedes aprender cualquier cosa que quieras aprender. Lo que será diferente es cuánto tiempo te tomará aprenderlo. Realmente creo en este momento, después de aprender tantas cosas diferentes y pasar innumerables horas, probablemente miles, tal vez decenas de miles de horas frente a mi computadora, que no importa lo que me pidas construir, podré hacerlo. No importa lo que necesite aprender, podré aprenderlo. Solo tomará quizás más tiempo que a otras personas.

Así que creo que adoptar esa mentalidad de que puedes resolver cualquier cosa, puedes aprender cualquier cosa, es solo cuestión de cuánto tiempo te tome hacerlo, es realmente efectivo y te da la confianza para salir y tal vez tomar un trabajo para el cual aún no sabes cómo hacerlo. No puedo decirte cuántas veces alguien se me ha acercado y me ha dicho: «Necesito construir esto, estoy dispuesto a pagarte X dólares, ¿puedes hacerlo?». No tengo idea de cómo hacerlo, pero simplemente digo: «Sí, claro, lo solucionaré» y así lo hago, y voy y lo construyo.

Dado que me están pagando, eso me motiva aún más a salir y aprender esta nueva pila de tecnología y descubrirlo todo. Ha habido todo tipo de cursos y cosas que quería hacer en YouTube o que ustedes me han pedido, en las que no sabía nada antes de comenzar a producir el curso, pero como sabía que iba a tener que enseñarlo a ustedes, tuve que averiguarlo, pasar por todos los pasos, hacer un montón de investigación y asegurarme de que tuviera confianza en lo que sabía para presentárselo a ustedes, practicar y reforzar todo mi aprendizaje.

De todos modos, solo quería dejarte con eso. Les prometo que pueden aprender cualquier cosa, solo pónganle mente, dediquen tiempo y obtendrán los resultados que necesitan.

Por favor síguenos y suscríbete:

Autor

  • Manuel Mascus

    Soy un ingeniero y periodista con una amplia experiencia en ambos campos, y aquí, en mi sitio web, encontrarás una variedad de artículos y análisis rigurosos que buscan fomentar la comprensión y el entusiasmo por estas disciplinas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad