No existe un “desarrollador de software generalizado”. El software hace algo. Ese es el dominio que esperaría que un desarrollador tenga un conocimiento íntimo: si no son dueños del dominio, no pueden describir requisitos o casos de prueba significativos, no pueden codificar las excepciones y los casos de esquina, y finalmente no son útiles desarrolladores
Sin conocer el dominio, es probable que ni siquiera puedan presentar un argumento significativo para el lenguaje y la experiencia en algoritmos que deberían dominar como técnicos de software. El 99% de los programas aún se desarrollan de manera procesal, y el 100% de la depuración y la ingeniería inversa es procesal y lineal. Los sistemas son desarrollados por equipos que tienen gerentes, jerarquía y organización. Hay toma y daca de autoridad y responsabilidad. El resto de la pelusa son las modas y las teorías de la academia. Que sin duda son importantes, pero debes conocer el negocio en el que te estás metiendo, para ser algo generalizado.
Un “ingeniero de software generalizado” probablemente comprende que si se les llama a trabajar en un sistema de contabilidad en un IBM 360, pensarán en términos de PL / 1, Cobal o JCL, y no pasarán mucho tiempo discutiendo los méritos de Java. Más importante aún, estarán pensando en la doble entrada, el código de impuestos y las pistas de auditoría (o algo así, no soy un tipo de contabilidad). Debe reconocer ideas como deuda técnica, desarrollo brownfield, organizaciones de gestión de matriz (y otras). Y Maquiavelo.
- ¿Cuáles son los pros y los contras de hacer cursos por correspondencia en India?
- Soy un graduado de EEE y tengo una oferta de colocación en el campus de TCS. Recientemente recibí una oferta de una startup llamada Candidly Couture. ¿Cuál es una mejor opción?
- Cómo omitir el proxy y usar torrent en IIITM Gwalior
- ¿Qué es lo que hay que hacer cuando una empresa ofrece un paquete más alto para un mismo producto más fresco que hace el mismo trabajo?
- Cómo saber que no eres apto para ser programador
¿En qué dominio quieres pasar tu tiempo? Aprenda los sistemas de uso común, los sistemas operativos y las tareas comunes. Elija los sistemas operativos, idiomas y herramientas para aprender en consecuencia. Luego, aprenda la física, la ingeniería, la propiedad intelectual, la historia corporativa, las demandas legales, el panorama competitivo actual, el mercado, etc., para que pueda hablar de manera inteligente con sus clientes y partes interesadas.