¿Qué hacen los programadores cuando codifican? ¿Escriben el código ellos mismos o lo obtienen de los libros?

Hay algunos aspectos diferentes de la escritura de software. Una es conocer las reglas del lenguaje de programación que está utilizando. Algunos lenguajes son grandes y complejos, con muchas reglas y elementos del lenguaje, mientras que otros son comparativamente simples. Naturalmente, diferentes personas tienen diferentes niveles de conocimiento de sus respectivos lenguajes de programación. La mayoría de la programación consiste en ingresar texto en uno o más archivos (archivos de código fuente), seguido de algún tipo de envío de los archivos a un traductor de lenguaje de programación. El traductor (a menudo llamado compilador o intérprete) leerá el código fuente que ha escrito en el archivo de texto e intentará realizar una traducción (una conversión de lo que usted, el programador, puede entender en lo que una CPU puede entender directamente). Muy a menudo, no podrá entender lo que ha escrito, porque ha fallado en obedecer todas las reglas del lenguaje de programación específico en uso. No puede realizar la traducción y emitirá algunos mensajes de error que, con suerte, le permitirán corregir los errores e intentar nuevamente. Entonces, esto describe el aspecto de la programación que es simplemente crear un código fuente que sea aceptable para un traductor de lenguaje de programación.

El siguiente gran aspecto es escribir algo que realmente logre el objetivo deseado. Al igual que escribir en un lenguaje conversacional utilizado por humanos, una cosa es saber muchas palabras y algunas reglas gramaticales. Otra cosa es escribir un libro sobre un tema en particular o contar una buena historia. Así también está en la programación. Crear un código que haga lo que quieres que haga es como crear la novela o el libro de referencia. Su contenido incluye conocimiento y estilo integrados. Utiliza su conocimiento del lenguaje de programación para componer bloques de código que logren objetivos específicos. Así como algunos escritores de prosa parecen tener una habilidad especial para captar la atención del lector o proporcionar una descripción clara de una cosa, también algunos programadores tienen una habilidad especial para encontrar formas elegantes y eficientes de que su código cumpla los objetivos deseados. Un par de cosas también son diferentes. Un programa puede fallar en lograr el objetivo del programador, y puede hacerlo de manera pronunciada, como un bloqueo o producir resultados que son evidentemente incorrectos. Además, además de escribir el programa para satisfacer los requisitos difíciles del traductor y la aplicación en sí, el programador está escribiendo (con suerte) para satisfacer a otros humanos que luego leerán el código. Este aspecto no se refleja directamente al usuario del programa, pero es muy visible para el programador que debe leerlo e intentar comprenderlo algún tiempo después.

Una cosa que hacen muchos programadores, especialmente los buenos en mi humilde opinión, es sumergirse en las actividades de programación. Se convierte en una especie de zona de enfoque, donde el mundo exterior está más o menos en el fondo, y solo los algoritmos y sistemas y componentes de la tarea de programación en cuestión están en el centro de atención. Las personas en otras actividades también entran en ese estado mental particular; especialmente esfuerzos que requieren un enfoque mental cercano, como el atletismo. Es solo mi presentimiento, pero sospecho que la sensación de inmersión se vuelve ligeramente adictiva en algunas personas. Sospecho que algunos jugadores de videojuegos son un buen ejemplo de esa adicción al enfoque.

Por lo general, los programadores mantendrán a mano material de referencia, como libros. La mayoría de los idiomas tienen suficientes matices sutiles que uno necesita un libro de referencia para tener todos los detalles del idioma. Naturalmente, el grado de conocimiento de cualquier idioma en particular varía de persona a persona. A veces, el material de referencia estará relacionado con la aplicación misma. Si su programa necesita interactuar con algo, como leer o escribir archivos de datos de cierto formato, controlar algún dispositivo, transferir datos a través de una red, etc., casi siempre tiene que haber documentación de referencia para ayudarlo a comprender esos detalles. A veces, se requieren métodos y algoritmos de programación particulares, y estos a menudo se publican en libros y documentos, o en línea para que otros programadores los usen. A menudo, esto es en forma de código fuente que se puede pegar directamente en el código fuente que está escribiendo, o se puede combinar con su proyecto de otras maneras (bibliotecas de códigos).

Bueno, escribo código desde hace 10 años, más o menos. Creo que nunca lo obtuve de un libro. A veces nos inspiramos en otro código. Es bastante fácil ver otros ejemplos de código en Internet. Algunos copian y pegan en su propio pero eso no es una buena práctica.
Pero, de nuevo, hay algunas soluciones comprobadas para problemas comunes, en esas ocasiones tendemos a usar el mismo código (con algunas variaciones dependiendo del proyecto), pero no es como si fuéramos a algún lado y copiamos el código a nuestra solución, es más como conocer la teoría de la solución y luego escribir el código.

Me gusta explicar la codificación como arquitectura porque es más o menos lo mismo. Todo arquitecto sabe cómo hacer escaleras, aunque las escaleras son un poco diferentes de un edificio a otro. Cuando el arquitecto diseña el edificio, no va a otro proyecto y copia las escaleras … simplemente lo hace.

Todo el código es finalmente tuyo. Ocasionalmente, comienza con el ejemplo de otra persona, si hay algo sólido para trabajar, pero obligarlo a adaptarse al programa general casi siempre significará cambios significativos con respecto al original.

¿De dónde vino el primer programa? No existía tal libro, y si lo hizo, ¿de dónde obtuvo el autor el contenido (ignorando el lenguaje de la computadora)? La programación consiste en utilizar un algoritmo (o mathemcatics) en un lenguaje informático específico. ¿No ha “hecho” las matemáticas?

Depende
1. Estás aprendiendo, sigues el ejercicio del libro
2. Necesita hacer una aplicación rápida y mira un libro de cocina.

De lo contrario, puede hacerlo usted mismo con algunas plantillas existentes dependiendo de la aplicación.

Ya el código está escrito solo por nosotros. Como programador, no nos gusta copiar código, obstaculiza su forma de hacer el código.

Es lo mismo que demasiados cocineros estropean el caldo.

Copiar un código es realmente malo, preferimos entender el algoritmo y desarrollar uno para resolver la tarea en cuestión.

Copiar un código puede parecer una forma de ahorrar tiempo, pero en realidad es lo contrario. el tiempo que un codificador desperdicia en comprender el código que está copiando es mucho más que crear su propio código, también lo mejora como codificador y fortalece sus conceptos y conceptos básicos.

Lo escriben ellos mismos. El código es un lenguaje como cualquier otro. Los novatos pueden confiar en los libros para ayudarlos con la sintaxis, pero los expertos crean códigos como un autor escribe en prosa. El sello distintivo de un desarrollador experimentado es su falta de confianza en la documentación del idioma.

El 90% de mi programación está accediendo a tablas de bases de datos que pueden haber existido por hasta 10 años, realizar cálculos y luego poner los resultados en otra tabla. Estas tablas son exclusivas de mi empresa, por lo que ningún libro puede ayudar con esto. El 10% del tiempo, es posible que necesite pivotar datos o algo similar inusual. Esto es algo que alguien más habrá resuelto y habrá publicado su solución en Internet. Entonces, ¿por qué reinventar la rueda?

More Interesting

Me interesan las matemáticas, la física, la filosofía y la informática. ¿Cuál debería elegir?

¿Cómo debería alguien prepararse para conseguir un trabajo en Google sin tener experiencia en CS?

¿Qué es un administrador de proyectos de pila completa?

¿Es necesario hacer informática si quieres convertirte en programador y emprendedor tecnológico? ¿Qué cursos debo tomar y de qué universidad?

¿Qué otras materias de CS (aparte de algoritmos y estructuras de datos) deben ser estudiadas por un estudiante que no sea de CS para solicitar un puesto de SWE / SDE en una empresa de renombre?

Como estudiante de BIT de tercer año de CSE, Mesra, ¿qué se debe hacer para conseguir un buen programa de pasantías?

Tengo un amigo que obtuvo su licenciatura en desarrollo de software este año y estoy sorprendido por lo que dijo. ¿Alguien puede confirmar eso?

¿Qué universidad es mejor: JNTU Hyderabad o IIITD & M Kanchipuram para informática?

Cómo convertirse en desarrollador de aplicaciones

Quiero estudiar la informática y reiniciar mi carrera de desarrollo de software a los 31 años, ¿qué debo hacer? Quiero cambiar mi carrera de desarrollador frontend a back-end y desarrollo de aprendizaje automático, ¿cómo debo comenzar?

¿Qué consejo le darías a un estudiante de último año de CS que está pensando en ser un gerente de producto de software?

De ProofHub, Basecamp y Wrike, ¿cuál es el mejor para la gestión de proyectos?

¿Cuál es la diferencia entre un ingeniero de software, un desarrollador de bases de datos, un analista de sistemas, un analista de seguridad y un administrador de sistemas?

¿Hay una universidad que se centre mucho en la programación en lugar de la informática? Si es así, ¿es la física un requisito previo como requisitos de entrada? ¿Aceptarían un aprendizaje formal en informática como fondo?

Cuando se habla de las experiencias en los requisitos del trabajo de programación, ¿se puede contar un período de desarrollo de un proyecto personal?