Un ingeniero de sistemas tiene la tarea de construir un proyecto muy grande (demasiado grande para que una sola persona piense en todas las partes del problema) de tal manera que los esfuerzos de desarrollo de las partes se formen en un todo coherente. La teoría de la ingeniería de sistemas es que se requiere un esfuerzo en “concepto”, “análisis de problemas”, “arquitectura del sistema”, “diseño”, “implementación”, “mantenimiento” y “transición”. (El último paso significa saber cuándo está muerto el sistema y cómo retirarlo). Se puede llamar a un ingeniero de sistemas para que trabaje en todos o en cualquier subconjunto de ellos, o puede trabajar en un subsistema para adaptarlo al proyecto más grande; o pueden diseñar la estructura de gestión del proyecto en sí (en lugar del producto). Su conjunto de habilidades es más técnico que personal, por lo que, aunque su campo incluye muchos de los requisitos técnicos de la gestión de proyectos, no es necesario que sean buenos en la gestión de personas (pero ese es otro punto útil). Los modelos de sistemas pueden ser en cascada o ágiles (y existen otros modelos).
(No preguntó sobre el ingeniero de software, pero observe que un ingeniero de sistemas necesita muchas de las mismas habilidades que un ingeniero de software; si el producto es puramente software, los dos serán los mismos y, por supuesto, la mayoría de los ingenieros de software deben tener habilidades de programación o habilidades de gestión para ser útiles.)
Un informático tiene la tarea de determinar cómo resolver un problema para el cual no parece probable una solución matemática de forma cerrada, y que está bajo restricciones tan serias que las habilidades de programación conocidas no ofrecen una alta probabilidad de éxito. Necesitan tener altas habilidades en matemáticas y programación para saber cuándo se necesitan y para poder dividir el problema en partes solucionables. Técnicamente, para ayudarlo a pensar en lo que hacen, su campo es parte de las matemáticas, pero es una de las partes que hemos demostrado que no se puede resolver de forma cerrada, por lo que encontrar soluciones es una ciencia por descubrir y documentar. que algo más como un álgebra. Normalmente producirán un _algoritmo_ para cumplir la tarea que se les ha asignado; el objetivo es que el número esperado de pasos que tome el algoritmo para resolver su problema sea lo más pequeño posible, y poder detectar que no hay solución tan a menudo como sea posible.
- ¿Es una mala idea aprender programación en C antes de aprender C ++?
- ¿Cómo me convierto en un programador superior?
- ¿Hay alguna desventaja en un título de Informática Aplicada?
- ¿Qué debo elegir: matemáticas e informática (curso integrado de 5 años de M.Tech), minería, petróleo en ISM, minería (doble titulación) o agricultura en IIT KGP?
- ¿Cuál es un buen enfoque para aprender programación con conocimientos de matemáticas?
A veces, un programador tiene la tarea de desglosar una tarea expresada de una manera que los humanos puedan comprender en una secuencia de tareas que las computadoras pueden realizar. Las computadoras son muy simples, por lo que el resultado será MUY largo y complejo; por lo tanto, los programadores necesitan habilidades para organizar la complejidad. Otras veces, tienen la tarea de arreglar programas, en cuyo caso es mejor que esperen que el programador que lo escribe sea hábil para organizar la complejidad, y necesitan poder ordenar toda la complejidad para descubrir el modelo que fueron los programadores originales. pensando en cuándo escribieron el programa.