El término ingeniero de software define a una persona que puede tomar un problema comercial y simplificarlo a través de habilidades y procesos de ingeniería de software. No necesariamente habla de ningún modelo o enfoque de programación en particular. Ni siquiera garantiza el SDLC, que de hecho es muy importante en cualquier idioma en el que esté especializado. Sin embargo, como señaló correctamente, una persona no necesita saber “todo”. Y por “todo” me refiero a cada lenguaje de programación posible que se está utilizando. Solo hay un puñado de expertos en más de 3 lenguajes de programación en un momento dado. Además, las posibilidades en cada idioma son tan amplias que uno puede pasar toda su vida profundizando y expandiendo el conocimiento en ese idioma en particular. Dicho esto, independientemente del lenguaje de programación que elija una persona, existen enfoques de ingeniería básicos que deben ser dominados por él / ella.
- Operaciones iterativas
- Recursividad
- Modelo de programación orientada a objetos o derivada
- Ciclo de vida variable
- Programación condicional
Y hay mucho más. Estas son habilidades básicas de programación que uno necesita dominar en el idioma que elija.
Los modelos de programación declarativa también usan uno o más de los principios de ingeniería de software anteriores además del trabajo de marcado y segmentación.
- Cómo mantenerse alejado de la distracción de tantas oportunidades interesantes de ingeniería de software disponibles en Silicon Valley
- ¿Se considera que Team Manager en Google tiene un nivel más alto que el ingeniero de software?
- ¿Puedo hacerme un ingeniero de software sin matemáticas?
- Cómo convertirse en un buen ingeniero electrónico
- Cómo convertirse en analista de negocios con 2 años de experiencia en desarrollo de software
Si eres bueno en C, C ++ y estás dispuesto a aprender más en esa área, puedes sobrevivir bien como ingeniero de software. Además de las habilidades de programación, existen prácticas de ingeniería específicas de la organización que en realidad consumen mucho más tiempo del desarrollador. La experiencia en esa área también es importante para el crecimiento.