¿Cuál es el software más difícil de programar?

Respuesta general: sistemas operativos, compiladores / máquinas virtuales y motores de juegos

Respuesta más específica (cuantos más puntos tenga, más difícil será)

* El software que gestiona recursos en entornos grandes y dinámicos.

* El software que resuelve nuevos problemas que nunca se han resuelto antes y que necesitan algoritmos novedosos.

* El software que necesita y funciona en un estado muy grande y complejo (datos enormes y complejos).

* El software que utiliza muchas máquinas, procesadores, subprocesos, red, sistema controlado por eventos.

* El software que procesa mucho y debe proporcionar la salida en el momento adecuado (sistema en tiempo real).

* El software que interactúa con el mundo real y su salida debe ser muy preciso.

* El software que necesita muchas cosas diferentes juntas (Corrección y Robustez), (Seguridad y Usabilidad), (Eficiencia (Rendimiento / Memoria) y Abstracción para gestionar la complejidad), etc.

* El software que necesita un conocimiento diferente sobre muchas ramas en informática y sistemas de información.

Durante mis estudios, practiqué muchos escenarios, desde motores de bases de datos, hasta aplicaciones, controladores de dispositivos, soluciones distribuidas hasta sistemas operativos y soluciones integradas.

El enfoque ‘Divide et impera’ generalmente apoya el proceso de desarrollo y una buena práctica (o un equipo bien equilibrado) realmente marca la diferencia.

Personalmente, encuentro procesos difíciles en el nivel inferior, como los controladores de dispositivos y los sistemas operativos, debido a la cantidad de señales externas que afectan el código.

Las excepciones, los semáforos y las concurrencias siguen siendo una parte compleja del trabajo y las diferentes capas aún pueden agregar complejidad al asunto.

Otra dificultad que veo es el tamaño del equipo y el liderazgo para envolver todo el proceso; no es medible ni tangible pero, aun así, es crucial.

Los lenguajes de programación pueden ser de alguna ayuda, pero los otros aspectos juegan un papel crucial.

Nada es fácil por definición y no hay respuestas fáciles pero, aun así, una buena idea (o enfoque) puede marcar la diferencia.

Creo que esto es fácil de responder: solo observe el mercado. ¿Qué tipo de software NUNCA se escribe desde cero?

Nuevo DB entra y sale todo el tiempo. Algunos DB están bifurcados de los existentes, como MariaDB.

Los navegadores nunca se escriben desde cero. Ahora solo hay unos pocos motores de renderizado originales: Chakra de Microsoft, Gecko de Mozilla y WebKit de Apple. Todo lo demás está bifurcado de uno de estos, muy probablemente de Webkit.

Los SO están bifurcados de Linux o Unix. Aún menos originalidad.

Tus habilidades deciden

No hay un software más difícil de programar, pero lo que puede hacer determinará sus limitaciones aquí. Porque si tienes esa percepción de que hay cosas difíciles de hacer, entonces estarás oculto por el miedo. Puedo decir que si quieres un viaje exitoso como programador, primero equípate con habilidades que te ayudarán a prosperar a través de esto.

El software más difícil de programar.

El software más difícil de programar es un software que a la gente le gustará y encontrará útil para usar. Si logras hacer un programa que facilite la vida de una persona, entonces lo has logrado. Entonces, lo más difícil no es programar sino encontrar la idea para trabajar. Una vez que haya encontrado una idea brillante, habrá completado algunos de sus objetivos. Luego, lo que resta es encontrar formas de conceptualizar su idea.

Formas de implementar su programa.

Si tiene suficientes recursos, puede buscar fuentes para que los desarrolladores lo ayuden a encontrar la idea que desea, o si tiene tiempo y mucho interés, simplemente salga y encuentre habilidades para ayudarlo a lograr su objetivo.

Gracias

Si eres un buen programador, probablemente sean todos iguales, con la excepción de Forth. Yo llamo a eso “programación mientras estás parado sobre tu cabeza”. Básicamente es al revés, en comparación con todos los demás idiomas. Pero si puedes cambiar tu mente para pensar así, Forth es tan simple como cualquier lenguaje de procedimiento. (Más fácil, realmente, porque es extensible, por lo que puede definir cualquier palabra nueva que necesite).

El segundo sería programar directamente en código máquina, porque tienes que recordarlo todo, y no tiene lógica, solo son números hexadecimales.

Pero después de eso, desde el ensamblado hasta ATLAS, la mayoría de los idiomas son solo una forma de codificar la solución a la que llegó en un lenguaje que puede ejecutarse en una computadora, no son “difíciles de programar”. Encontrar una solución a un problema puede ser, pero una vez que haya encontrado una, codificarla en cualquier idioma que pueda realizar la tarea es casi trivial.

(Si quiere decir “¿cuál es el tipo de software más difícil de programar?”, Probablemente una base de datos. O un procesador de textos. O un sistema operativo en tiempo real. Normalmente, esas no son tareas asumidas por una sola persona. Un navegador web es bastante simple en comparación.)

El software que controla el movimiento del hardware físico real ha abandonado el mundo virtual y debe lidiar con las realidades del tiempo de respuesta, la inercia, la retroalimentación del sensor y varios retrasos. Los sistemas de mayor rendimiento y algunas simulaciones complejas requieren programación en un sistema operativo en tiempo real que agrega otro nivel de complejidad.

¡Hola!

Eso realmente depende de lo que quiere decir con “más difícil” y lo que quiere decir con “programa” 🙂

Asumiré que te refieres a lo más difícil = toma más tiempo y es más propenso a errores.

Por “programa” supondré que te refieres al software que un operador ve en la pantalla e interactúa con él.

Los sistemas de ambulancia tienen una clasificación bastante alta en ambos: cada elección debe pensarse cuidadosamente, hay muy poco espacio para errores y hacer cualquier cosa lleva mucho tiempo porque tiene que hacerlo o la gente muere.

Los “cambios” en dichos sistemas se examinan antes de hacerse no solo en términos de código, sino incluso en términos de “¿deberíamos estar haciendo esto y cómo afectará esto a los otros sistemas y a los diversos usuarios directos o indirectos?” examen de antecedentes. Ahora, esto sucede bastante en casi todos los sistemas no triviales, pero los de ambulancia son … particularmente malos, por así decirlo. Tienen que ser.

Software seguro

Todo es un objetivo de piratería. Uno diría que es algo que realmente no puedes ganar, es solo una carrera armamentista.

El que no te entusiasma, el que no te parece divertido en absoluto.

Aplicaciones con múltiples hilos que comparten datos, especialmente si todos pueden escribir en los datos.

Es muy difícil mantener un caché coherente en varios subprocesos.

El software más difícil de programar es el software en el que no comprende el problema que está tratando de resolver.

More Interesting

¿La experiencia de trabajo independiente cuenta con un currículum?

¿Necesito conocer el desarrollo web y de aplicaciones si quiero ser ingeniero de software, o si la codificación, las estructuras de datos y los algoritmos son suficientes?

Me encanta codificar y crear aplicaciones, pero no tengo un gran interés ni soy muy bueno en algoritmos. ¿Significa esto que la ingeniería de software no es la profesión adecuada para mí?

¿Qué tan importante es la organización del código en la programación?

¿Hay alguna herramienta de SEO que pueda automatizar los vínculos de retroceso?

¿Cuáles son ejemplos de errores de visión por computadora relacionados con la raza?

¿Cuáles son algunas buenas fuentes o libros para el diseño y la arquitectura del sistema?

Redes de área local: ¿Es mejor crear aplicaciones en una LAN que crear un software nativo?

Tengo 30 años y tengo un montón de proyectos de software a medio camino que encuentro difíciles de terminar. Son demasiado complejos o existen demasiados sistemas similares. ¿Cómo puedo perforarme para mantenerme en uno y verlo?

¿Puede borrar completamente un software de un dispositivo e instalar un software diferente en el dispositivo?

¿Cómo uno, programáticamente hablando, crea un juego como 'No Man's Sky'? ¿Qué tipo de problemas deben resolverse?

¿Cómo es la transición de un ingeniero de producto a un ingeniero de infraestructura?

¿Es posible verificar formalmente todos los tipos de software?

¿Cuáles son los pasos generales para hacer un motor de juego en 3D?

¿Cuáles son las preguntas de entrevista más comunes para un puesto de desarrollo de software integrado de nivel básico?