Etiquetar a alguien como ingeniero de software es similar a un Doctor. La mayoría de ellos sabría un poco de todo (si obtuvieron un título en Ciencias de la Computación), pero se especializarían idealmente en 1-2 de ellos sobre los cuales desarrollarían su carrera. Más abajo en el camino profesional, ayuda a tener una comprensión justa de otras plataformas relevantes, así como estar en un rol de CTO / Arquitecto. Pero en una etapa temprana, recomendaría dominar un dominio que más le interese. Pruebe algunos de ellos, haga algunas pasantías, hackathlons para descubrir esto.
Por ejemplo, cuando busco desarrolladores, idealmente me gustaría que alguien tenga alguien que conozca Android, iOS, PHP y bases de datos. Pero es casi imposible encontrar a alguien que sea competente con todos ellos (si es así, póngase en contacto :). Por lo tanto, buscamos personas especializadas en 1 o 2 de ellos y los incorporamos al equipo. Un ingeniero con 2-3 años de experiencia que dice ser un experto en 3 plataformas debe tomarse con una pizca de sal.
A continuación se enumeran algunas profesiones en las que puedo pensar
- ¿Cuál es el mejor software de animación 2D?
- ¿Qué proyectos deberían emprenderse para desarrollar una comprensión avanzada de cualquier tecnología?
- ¿Cuáles son los mejores lectores de libros electrónicos con Android?
- ¿Existe un cambio de paradigma hacia soluciones de software personalizadas?
- ¿Vale la pena aprender AngularJS?
- Ingeniero de redes: idealmente conocerá Redes de computadoras, C, algunos elementos de hardware, secuencias de comandos y estructuras de datos (no bases de datos). Empresas como Cisco, Aricent, Ericsson tienen muchos de ellos. Las tecnologías son de muy bajo nivel y generalmente funcionan cerca del sistema operativo. También con el nuevo despliegue publicitario en SDN, este podría ser un dominio interesante.
- LAMP: Una combinación de Linux, Apache, MySQL (Base de datos) y PHP / Python. Estos son los ingenieros que principalmente crean aplicaciones web o sitios web. Los encontrará en la mayoría de las empresas web y de comercio electrónico. Si planea hacer un inicio basado en la web, esta es una especialización que probablemente será útil en combinación con algunas habilidades de HTML / CSS.
- Desarrolladores móviles: concéntrese en una o más de las plataformas móviles (iOS, Android, etc.) y en la programación orientada a objetos. Es ideal para que tales ingenieros también tengan cierta habilidad para la experiencia del usuario móvil, el diseño, etc.
- Científico de datos: actualmente se trata de una especie muy solicitada con todo el alboroto en torno a Big Data. Utilizan plataformas como Hadoop para dar sentido a la información no estructurada en Internet. Acabo de leer un artículo, Cuidado, Europa: los científicos de datos vienen en camino, esto.
- MainFrame: esto se percibe como una tecnología obsoleta, pero es relevante por algunas razones. Esta publicación resume algunos puntos si está interesado: ¿El mainframe está desactualizado?
Por supuesto, los algoritmos son importantes en todos los casos anteriores, ya que es fundamental hacer un buen software.
Espero eso ayude.