¿Cómo se prepara alguien para un trabajo de programación de software siendo ingeniero textil por grado?

La belleza de la ingeniería de software es que mucho puede ser autodidacta si tienes una computadora. Tengo colegas que trabajan como ingenieros de software que tienen títulos que van desde ingeniería aeroespacial hasta geografía.

Realmente hay dos partes para su pregunta aquí.

  1. ¿Cómo obtengo un trabajo como ingeniero de software sin un título relacionado?
  2. Una vez que obtengo un trabajo como ingeniero de software, ¿cómo puedo tener éxito sin un título relacionado?

¿Cómo obtengo un trabajo como ingeniero de software sin un título relacionado?

No mencionaste la cantidad de experiencia que tienes en programación. Obviamente, debe dominar la codificación en al menos un idioma. Si la codificación no le resulta natural, comience con Python, que es un lenguaje muy legible para los humanos. Si ya tiene algo de experiencia, comience a sumergirse en lenguajes de nivel inferior como C o incluso ensamblaje. ¿Por qué es necesario sumergirse en los idiomas de nivel inferior? Debido a que estos lenguajes superan la abstracción proporcionada por lenguajes de nivel superior como Python. Te obligan a comprender lo que está sucediendo a nivel de máquina, lo que te permite programar de manera más eficiente.

No es suficiente simplemente comenzar a producir código en el idioma que elija. Hay codificación, y luego hay una buena codificación. El hecho de que el código funcione no significa que el código se haya escrito bien. Existen conceptos como el algoritmo de tiempo y complejidad espacial que pueden no ser inherentemente obvios para un nuevo programador. Estos son temas que deberá bloquear, ya que sin duda los encontrará en sus entrevistas, que abordaré más adelante.

Internet te proporciona una gran cantidad de recursos. A menudo recomiendo tomar clases en Coursera. Una vez que tenga una sólida formación en programación, desafíese a sí mismo para aprender otro lenguaje de programación. Esto no es estrictamente necesario, es solo una prueba. Si tiene una sólida comprensión de la programación, entonces el desafío de aprender un nuevo idioma debería consistir principalmente en aprender una nueva sintaxis en lugar de desarrollar nuevos conceptos.

El siguiente elemento básico de cualquier ingeniero de software, y estoy dando intencionalmente a esta parte su propia sección, es el control de fuente. Debe aprender a usar el control de código fuente como Git. Este proceso en sí mismo es confuso y requiere mucha paciencia. Muchos ingenieros de software que conozco aún luchan con Git, a pesar de trabajar en la industria durante años. Aproveche Coursera, lea y practique. Lo más probable es que trabajes en un equipo. Si no conoce el control de fuente, no puede tocar el código fuente.

Ahora tiene que aplicar lo que sabe construyendo una cartera. No es suficiente incluir en su currículum que usted es “competente en programación orientada a objetos” y que tiene “competencia avanzada en estructuras de datos”. Necesita proyectos y experiencia para respaldar sus habilidades. Si está buscando un puesto de ingeniero de software de nivel de entrada, nadie esperará que haya codificado una pieza de software multimillonaria. Pero debe poder hablar de sus habilidades a través de los proyectos que ha realizado, ya sea a través de Coursera o de sus propios proyectos personales. Si ya tiene algunos antecedentes, considere encontrar un proyecto de código abierto para unirse y perfeccionar sus habilidades de codificación. No solo se convertirá en un programador más fuerte, sino que perfeccionará sus habilidades de una manera directa orientada a proyectos que es visible para toda la comunidad en línea, ¡incluidos los empleadores!

Ahora, la entrevista. Como eres ingeniero, las entrevistas técnicas no deberían ser nuevas para ti. Aun así, manejar entrevistas de codificación de ingeniería de software es un arte en sí mismo. Generalmente, si no practica manejar una entrevista, no tendrá éxito en la entrevista. Dependiendo de dónde espera trabajar, investigue los tipos de preguntas de la entrevista que se hacen. A algunas compañías les encanta preguntar sobre la recursividad con árboles binarios y listas vinculadas. Algunas compañías le preguntarán sobre la complejidad de tiempo y espacio para cada algoritmo que escriba. Algunos te harán emparejar el programa y ni siquiera te permitirán tocar el teclado. Cuando se trata de manejar entrevistas, es probable que las primeras sean difíciles. Recomiendo obtener un libro que contenga preguntas de entrevistas técnicas y estudiarlo.

Ahora, tengo que poner una divulgación aquí. Muchas compañías estarán dispuestas a contratarlo en función de sus habilidades y experiencia. Es posible que muchas compañías no lo consideren un candidato en función de su título. Lamento que ese sea el caso, ya que muchos de mis pares sin títulos técnicos que trabajan como ingenieros de software son algunos de los mejores que he visto. De todos modos, es algo que debes saber. Tendrá que buscar en la empresa para ver si están dispuestos a contratar ingenieros de software que no tengan un grado particularmente relevante. Sin embargo, diré que tener un título en ingeniería textil significa que sabes cómo cumplir con la ética y los enfoques de la ingeniería, así que eso es una ventaja.

Una vez que obtengo un trabajo como ingeniero de software, ¿cómo puedo tener éxito sin un título relacionado?

En mi opinión, si has logrado pasar el pie por la puerta, independientemente de tu grado, ahora estás a la par con todos los demás. El nombre de tu título ya no importa. Ahora, debe cumplir con las prácticas de codificación fuertes. Conozca los estándares de su empresa. Lo más importante, no tengas miedo de pedir ayuda. Ya no estás en una entrevista, puedes abrir el Javadoc o aprovechar Stack Overflow. Solo asegúrese de comprender lo que está haciendo, ya que muchos codificadores nuevos se acostumbran a la “codificación de mono”. En otras palabras, su programa se rompe y, en lugar de pensarlo detenidamente, hacen algunos cambios aleatorios, compilan y correr. Y repiten hasta que su programa funcione. Como ingeniero de software, seguramente llegará a un punto en el que su código ya no es tan complejo como el código mono, y deberá comprenderlo para solucionarlo.

No tenga miedo de intercambiar ideas de sus compañeros en el trabajo y recibir comentarios. Esta parte puede dar miedo, ya que los ingenieros pueden ser competitivos, especialmente en ciertas empresas. Sin embargo, si está en un equipo, está bien pedir ayuda. Sin embargo, recuerde que sus preguntas no deberían ser “¿Cómo hago esto?”. Ese es su trabajo como ingeniero de software para responder. Sus preguntas deben estar en la línea de “Esta es la solución que he desarrollado y el enfoque que me gustaría tomar. Creo que tiene los siguientes pros y contras … ¿cuál es tu opinión?

Como ingeniero de software, recuerde que mientras trabaja, siempre aprenderá también. Algunos de los proyectos con los que he trabajado requieren escribir código que interactúe con varios idiomas nuevos que nunca antes había visto. Para desarrollar soluciones, tuve que aprender nuevos idiomas. Eso no es porque no estaba preparado. Esa es la naturaleza de la ingeniería de software. El ingeniero de software preparado no es el que ha memorizado una docena de idiomas y puede escupir información del Javadoc de la parte superior de su cabeza. El ingeniero de software preparado es el que puede enfrentar nuevos problemas, reunir y utilizar rápidamente los recursos necesarios para aprender nuevos enfoques y resolver esos problemas.

Los mejores ingenieros de software son los estudiantes hábiles.

Aprenda a codificar bien y manejar entrevistas técnicas, cree una cartera y, lo más importante, aprenda a aprender, y será un excelente ingeniero de software independientemente de su título.

Simple: aprendiendo a programar.

More Interesting

¿Qué ventajas y desventajas tendrá un matemático si decide comenzar una carrera desarrollando software?

¿Puede un estudiante internacional de doctorado en física teórica de primer año que estudie en los EE. UU. Hacer una pasantía de ingeniería de software de 2-3 meses?

¿Cuáles son las mejores herramientas para el ingeniero de control de calidad manual?

¿Cuánto le paga Bloomberg a un nuevo ingeniero de software graduado?

¿Un doctorado ralentizará mi carrera como desarrollador / ingeniero de software?

Como ingeniero de software recién graduado, ¿cuál es la mejor opción para mi carrera en Silicon Valley, unirme a una startup estatal bien financiada ($ 60 millones), startup serie B / C, unicornio, Google o Facebook? ¿Cuál proporcionará más oportunidades?

¿Debo dejar mi trabajo si no estoy contento y trabajo como freelance? ¿Es esta una buena decisión?

Cómo manejar una pasantía de software que odio

¿Qué conocimientos básicos debo tener para ser ingeniero de software en Google? Actualmente soy un estudiante universitario con 0 conocimientos de programación

¿Cuáles son los pros y los contras de convertirse en desarrollador de software a los 30 años?

Cómo comenzar mi carrera en ingeniería de software

¿Cómo es el proceso de entrevista para la pasantía de ingeniería de software de verano en Twitter y cómo debo prepararme? Además, ¿los pasantes con buen desempeño reciben ofertas de devolución a tiempo completo?

¿Cómo cambiar la tecnología?

¿Por qué todos en el software de gestión de información escolar?

¿Los ingenieros o desarrolladores de software lamentan alguna vez su profesión? Si es así, ¿por qué?