¿Qué hace realmente un ingeniero de software?

Realizamos ideas. Las hacemos realidad en código.

Es algo más que resolver un problema de codificación matemática en un hackathon y es diferente de la codificación competitiva.

Se puede ganar mucho dinero en este campo. Pero esa no es la razón por la que deberías elegir la ingeniería de software. Porque si esa'es tu razón para hacer un trabajo que no'te gusta no serás feliz.

Los problemas que resolviste en la escuela o en tu primer año en la universidad son como una sola piedra en el camino del desarrollo de software que'se hace con grava.

No te voy a mentir. El trabajo tiene sus propias exigencias, como cualquier otro trabajo. Hay una serie de reglas que tienes que seguir. Trabajar un día en una empresa de software no es como un problema matemático en el que sigues resolviéndolo hasta que encuentras la solución. Profundiza demasiado en la ingeniería de software y te perderás. Tienes que entender que el código no lo es todo. Hay muchos más factores que forman parte del trabajo. La codificación es un deporte de equipo. Y en ese deporte la comunicación es clave. Explicar el código es tan importante como escribirlo.

Aprenderás a apreciar el código, a apreciar los sistemas que te facilitan la vida.

La base de código ideal es aquella en la que puedes hacer algo o cambiar algo con sólo cambiar un botón. ¿Necesitas cambiar una característica? Sólo tienes que cambiar una bandera. ¿Necesitas añadir una nueva funcionalidad? Sólo tienes que copiar y pegar un módulo. Aprenderás a codificar por la belleza de ello. Los plazos son importantes, pero también lo es la calidad de tu código.

El desarrollo es un estilo de vida, no es el típico trabajo de oficina. O tal vez lo sea. No sé. Esta es la única experiencia que he tenido hasta ahora.

Es difícil poner la experiencia de la codificación en palabras.

Hay 100 maneras diferentes de resolver el mismo problema y sólo tienes que elegir una que te funcione. Lo que importa es hacer el trabajo. No hay nada malo ni bueno.

Entrar en la zona y resolver el código es terapéutico. Una vez que estás "en la zona", lo que significa que has estado codificando un problema durante unas 2-3 horas ininterrumpidas, la sensación es difícil de describir. Es como si pudieras sacar las ideas de tu cabeza y hacerlas realidad. Adquieres el poder de entender el código, todo lo que está escrito en tu base de código (o al menos la parte en la que estás trabajando). Tu tren de pensamiento se convierte en música o en una canción mientras construyes, encajas piezas, creas soluciones que se ajustan a tu necesidad.

Tienes que saber de dónde copiar código y dónde pegarlo, para que tu funcionalidad funcione. Yo's de la ingeniería eléctrica. Básicamente no tengo conocimientos de conceptos de CS antes de incorporarme al trabajo. La intuición es más importante que los conocimientos teóricos en esta industria. Todo lo que no sepas, puedes buscarlo en Google. Stackoverflow se convertirá en tu nuevo mejor amigo. Aprenderás sobre la marcha.

Hay un mundo de diferencia entre usar software y desarrollarlo. Una vez que te conviertas en un ingeniero de software, nunca verás el software, los juegos o las aplicaciones telefónicas de la misma manera. Entenderás que ningún software es infalible y que se necesita mucho trabajo para crear las aplicaciones que usamos y en las que confiamos cada día.

Entenderás el poder de una sola persona en un portátil con las herramientas adecuadas y una conexión a Internet, no te engaño. En esta época, todo es digital.

Estos son mis pensamientos sobre cómo convertirse en un ingeniero de software. Déjame saber tus pensamientos/experiencias en los comentarios de abajo. Sería genial si algunos desarrolladores por ahí pudieran relacionarse con esto.