Esto puede estar un poco anticuado, pero trabajé como ingeniero de software en 1990-1996 para el Centro Naval de Guerra Submarina, al final de la Guerra Fría. Esta instalación se originó desarrollando sistemas de sonar para submarinos, pero cuando llegué allí, había evolucionado para hacer simulaciones de juegos de guerra. Sí, al igual que la película: http://www.imdb.com/title/tt0086…
Tuve la suerte de trabajar a través de un contratista. Los militares tienden a contratar su importante trabajo. Impresionantemente, los militares reconocen que es una burocracia enorme e ineficiente y que el trabajo real es mejor dejarlo a los contratistas.
Estos no son contratos a corto plazo. Se supone que los contratistas deben competir por las ofertas, pero realmente el juego está manipulado. El contrato generalmente se redacta de manera tan específica que solo una empresa puede ofertar y se mantiene el status quo. Así que esta era una posición estable a largo plazo. Solo una insignia de color diferente.
- ¿Cómo me ayuda la programación funcional a razonar sobre mi código (mejor que OOP)? ¿Convertimos las especificaciones en fórmulas lógicas de orden superior y las ejecutamos a través de solucionadores automáticos?
- ¿Qué es una capa de caché?
- Si he escrito una tarea pequeña y repetida (ligeramente diferente), ¿debería hacer que sea una función si requeriría 8 parámetros o repetir el código?
- ¿Por qué los desarrolladores de software reciben malos tratos en las empresas?
- ¿Cómo puede un equipo de desarrollo de software apoyar y beneficiarse mejor de un director creativo?
Tienes la oportunidad de trabajar en hardware increíblemente exótico. Supercomputadoras, simuladores de vuelo, etc. DoD no piensa en dejar caer 10 millones en cosas solo para probarlo.
Existe una gran libertad creativa, más aún en el sector privado. El truco consiste en proponer ideas y venderlas a un COTR (Representante Técnico del Oficial de Contrataciones). Estas son las personas que firman los contratos.
Puedes inventar tu propio trabajo.
(Si trabaja para el ejército, y no para un contratista, es probable que termine siendo un COTR y haciendo papeleo en lugar de ingeniería real).
Hay mucho tiempo para hacer tu trabajo. Los entregables generalmente se realizan anualmente. Básicamente tienes un año para armar algo. Hay muchas oportunidades para aprender cosas nuevas, no mucha presión.
Hay una cantidad deslumbrante de mierda que viene del DoD. Los jefes de pelo puntiagudo se lanzan alrededor de TLA y hacen presentaciones de powerpoint para atraer fondos del Pentágono. En realidad, me dijeron que escribiera un programa para quemar el tiempo de Cray Supercomputer, para que el tipo que compró la computadora no pareciera un imbécil por malgastar dinero.
Descargo de responsabilidad: esta es mi propia experiencia personal, algo anticuada, y estoy seguro de que los no contratistas están realizando un excelente trabajo de ingeniería. Esta fue solo mi experiencia.