¿Qué camino de aprendizaje crees que es mejor para convertirte en un desarrollador de software generalizado?

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.

¿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.

Creo que Java, o cualquier lenguaje más estricto, compilado y de tipo estático, le dará una comprensión mucho más profunda de cómo funcionan las computadoras que un lenguaje interpretado, de tipo pato (y utilizado principalmente en la Web) como Javascript. darte. C / C ++ también son clásicos. Go y Rust son más nuevos pero interesantes de todos modos. Elija uno y manténgalo, haga un MOOC, cree un proyecto personal.

More Interesting

Tengo 4 años de experiencia en PHP. Pero estoy buscando convertirme en desarrollador de Salesforce. ¿Es bueno o Hadoop sería mejor?

Soy una mujer soltera que planea mudarse a Gurgaon por una oportunidad de trabajo. ¿Debería considerar esta oportunidad considerando su reputación como una ciudad insegura?

¿Cuál es la diferencia entre el núcleo de hierro y el núcleo de aire?

¿Qué cosas puedo hacer el verano antes de la universidad?

Cómo obtener un trabajo actuarial sin experiencia relacionada, pero con el examen FM y el examen P y el examen MFE y el nivel 1 CFA aprobados

¿Soy un idiota para pasar a la ciencia de datos después de tener 10 años de experiencia en .NET?

No me gusta comenzar los estudios nuevamente con juniors o comenzar a trabajar en un trabajo con pases actuales, tengo 26 años de la India, ¿cómo puedo hacer frente a mi vida?

¿Cuáles son algunos chistes malos?

¿Mi CGPA de 7.7 (si no logro mejorar) me impedirá obtener una pasantía en compañías de TI basadas en productos como Amazon, Google o Microsoft?

A mis compañeros de trabajo no les gusto. Creo que sienten que soy demasiado fácil con los estudiantes (enseñamos a los mismos estudiantes en un programa de tecnología). ¿Debo dejar mi trabajo?

¿Todavía hay un mercado para el software personalizado?

¿Cuánto tiempo pasan los matemáticos pensando seriamente en las matemáticas diariamente?

¿Tiene 23 años demasiado para unirse al ejército y luego ir a la universidad?

Cómo hacer una cuenta efectiva de LinkedIn

¿Cuáles son las oportunidades para un graduado en electrónica y telecomunicaciones en Alemania? ¿Y el proceso de solicitud?