¿Con qué frecuencia una persona codifica ‘desde cero’?

En ningún momento estás realmente trabajando ‘desde cero’

La programación está construida sobre los hombros de gigantes.

La mayoría de los programas están hechos para el sistema operativo Windows.

Como tal, la mayoría de los programas utilizan este sistema operativo para diversas tareas, a veces simplemente incluso para iniciar. Otras tareas incluyen la salida de entrada, como dibujar en la pantalla un botón o un juego, o un icono para seleccionar el programa. Absorbe texto, clics y lectura de datos del disco duro. A veces, incluso se utilizan tareas avanzadas como la sincronización, el almacenamiento de datos, la vinculación de computadoras a través de la red o la web.

Para visualizar video, la mayoría de los juegos, e incluso la interfaz como la barra de inicio, requiere el uso de la tarjeta gráfica.

Incluso si tuvieras que usar la tarjeta gráfica directamente, todavía ejecuta su propio código.

Por lo tanto, decir que NUNCA está codificando desde cero, con algo más que escribir el cargador de arranque más básico para un dispositivo, es un nombre inapropiado completo. ¡Y la mayoría de la gente usa C para codificar el dispositivo y vuelve a escribirlo más tarde!

¡El hecho de que no pueda ver lo que está usando no significa que no sea el código que está usando!

Además, cuando se codifica un producto de manera más directa, la forma más eficiente y generalmente más útil de hacer las cosas, es usar una biblioteca / código que venía antes. Incluso cuando se codifica algo como el motor Quake por primera vez, ‘Desde cero’ no tiene mucho sentido ya que está utilizando el código que acaba de escribir hace un año. Probablemente dibujó de ejemplos en el desbordamiento de pila, o leyó líneas de código de un libro.

Ahora, en cuanto a comenzar realmente desde cero, sin bibliotecas o código escrito previamente, entonces sí, las personas a menudo inician un proyecto de línea de comandos desde cero. Pero la entrada de salida? Limitado a lo que sabe de antemano, de la biblioteca estándar de C o de su idioma de elección. Es posible que conozca los algoritmos, la organización y los conceptos básicos. Entonces, escribe un programa que solo hace uso de la línea de comandos y, por lo tanto, se aísla lo más posible del nuevo código.

Pero cuando se trata de otros programas, casi siempre usas una biblioteca o un motor precompilado, incluso para un programador de élite experto que escribe todo para sí mismo.

Si realmente quieres aprender a “codificar desde cero”, aprende el ensamblador. La pregunta es “¿por qué?”
La programación de hoy es realmente una combinación de varios lenguajes, metodologías y marcos basados ​​en todo lo que ha sido “codificado desde cero” por otros programadores. ¿Por qué no hacer un buen uso de ella? Usted comienza a codificar desde cero cuando tiene una tarea para escribir código para la cual nadie ha desarrollado la funcionalidad de antes. Incluso entonces su tarea es averiguar qué otras personas han desarrollado e incorporar sus soluciones a las suyas.
Estoy encontrando cada vez más que casi siempre hay otras bibliotecas, módulos y marcos que hacen el trabajo mejor de lo que tengo el tiempo, los recursos o la experiencia para escribir por mí mismo.

En mi trabajo de 9 a 5 (escribo principalmente aplicaciones de línea de negocio para clientes corporativos y aplicaciones web públicas para los clientes de mis clientes), diría que aproximadamente el 75% de mis proyectos son “nuevos” (código nuevo) -Las bases puedo comenzar “desde cero”) y el resto son “brownfield” (mantener y / o agregar a una base de código existente). No estoy seguro de si esto es representativo del desarrollador promedio en este contexto. Supongo que depende en gran medida del tipo de cliente, proyecto y niveles de experiencia de los desarrolladores involucrados. La relación cambia definitivamente de “legado” a “nuevo” a medida que uno adquiere más experiencia y puede asumir más responsabilidad.

Para mis proyectos de hobby, la mayoría es, de nuevo, “desde cero” cuando implemento mis propias ideas, con un poco de contribución a los proyectos de código abierto aquí y allá.

EDITAR: Mi suposición era que “desde cero” se refería a greenfield vs brownfield. Si la pregunta era más acerca de “¿escribe su propio código para resolver problemas para los cuales otros ya han escrito soluciones?”, Entonces mi respuesta es No, trato de aprovechar los marcos existentes, las bibliotecas y los conjuntos de componentes tanto como sea posible. sobre los hombros de gigantes y todo eso …

Primero debe definir qué significa “desde cero”.
Si deseas hacer una tarta de manzana desde cero, primero debes inventar el universo citado de Carl Sagan

Incluso los programadores hardcore, que están más dispuestos a construir la estructura de datos o los algoritmos por sí mismos, usan las bases / APIs del lenguaje.

¡El código no se escribe solo! Cada línea de código que escriba, incluso aprovechando el código escrito por otros en forma de bibliotecas, sigue siendo código “desde cero”.

Si está reduciendo la definición de “desde cero” hasta crear un código completamente original a partir de un editor de texto en blanco, es casi tan frecuente. Como dice Dave Jones, casi todos los días te sientas en el teclado y dejas que el código fluya de la punta de tus dedos.

Depende de lo que estés haciendo realmente. Escribir instrucciones de ensamblaje en un chip personalizado: casi todo es desde cero. Creando una aplicación / sitio web de alto nivel para usuarios: se esperaría que lo construyas utilizando algunas de las muchas bibliotecas, marcos y otros recursos disponibles para ti.

Si una persona está codificando para una programación competitiva, Él / Ella siempre inicia el código desde cero.
Pero si no se trata de una programación competitiva, entonces depende del tipo de código que se va a escribir.

No muy a menudo en estos días. Una gran cantidad de proyectos se construyen utilizando marcos para acelerar el proceso. La codificación desde cero tiende a ser muy lenta, de modo que, a menos que desee crear su propio marco, probablemente no lo hará usando jane simple [inserte el idioma que elija aquí].

Un código de persona desde cero muchas veces en la vida. Cuando una persona comienza a aprender un nuevo lenguaje de programación, a menudo comienza a codificar desde cero en ese lenguaje.

Dependiendo del tipo de proyecto y las preferencias personales, podría ser más frecuente. Por lo general, los proyectos “sensibles” significan que usted codifica desde cero; Al menos para las zonas sensibles.