Para ser reclutado para cualquier trabajo, una empresa ve si tiene las habilidades adecuadas para realizar ese trabajo. Por las habilidades correctas, incluyo ser muy bueno en la habilidad también. Las empresas necesitan personas que puedan ejecutar la tarea dada y ejecutarlas rápidamente porque eso agrega el valor comercial máximo para ellas.
Una empresa que busca un ingeniero de software buscaría habilidades tales como la capacidad de programar, la capacidad de resolver problemas, la capacidad de diseñar sistemas que se puedan mantener y ampliar fácilmente y la capacidad de comunicarse bien. Cada una de estas habilidades tiene valor comercial.
Pasar del soporte técnico a la ingeniería de software es más difícil que pasar del control de calidad a la ingeniería de software, pero es más fácil que pasar del negocio a la ingeniería de software. Esto se debe a que el soporte técnico implica tener alguna idea sobre el software, el control de calidad tendrá un conocimiento un poco más profundo y los negocios no tendrán mucho conocimiento sobre las partes internas de un software.
- Si su gerencia le dijera que le dijera a sus clientes y al personal de ventas cosas sobre el producto que no eran ciertas, ¿cuál sería su respuesta? Al final, ¿de quién es responsable, su gerencia o sus clientes?
- Quejas: ¿Cómo se queja a una empresa de manera que escuche?
- ¿Cómo puede mejorar la experiencia del cliente una aerolínea?
- ¿Cuál es la mejor manera de medir la satisfacción del cliente interno en una organización?
- ¿Cómo es el servicio al cliente de Google en su hardware?
Para avanzar hacia la ingeniería de software, debe comenzar con los algoritmos de aprendizaje. Algoritmos para la base de lo que hacen los ingenieros de software, básicamente pensamos en un algoritmo para resolver un problema y luego implementarlo.
Junto con los algoritmos, también necesitará el conocimiento de un lenguaje de programación. Esto lo ayudará a implementar los algoritmos.
Algunas personas no creen que sea importante tener un lenguaje de programación en profundidad, pero yo vengo de la escuela de pensamiento opuesta. Creo que es importante tener un conocimiento profundo del idioma. Solo porque la velocidad a la que desarrolle las cosas será más rápida y tendrá una mayor calidad si conoce bien las complejidades, la forma correcta de hacer las cosas, las bibliotecas correctas para usar y las operaciones correctas para hacer en un idioma en particular.
Obtenga un buen control de los patrones de diseño. Diseñar un buen software que pueda mantenerse es muy importante desde la perspectiva empresarial. El software que se puede mantener es más barato a largo plazo.
Finalmente, la capacidad de comunicarse es importante. Puedes tener una idea brillante, pero si está en tu mente, nada sale de ella. Debe poder expresar sus ideas de manera efectiva, debatir si otros tienen argumentos en contra o mejorar sus ideas si carecen de algo que otros hayan señalado.