¿Por qué muchos ingenieros de software no pueden entender los bucles?

Desafortunadamente, conozco muchos codificadores que evitan los bucles. Es un rasgo predominante entre los codificadores y contratistas de velocidad que no quieren tomarse el tiempo para incorporar ninguna complejidad en su código, ya que compromete su velocidad.

Una vez me encontré con una declaración de cambio de línea de 10.000 en la función principal que rige una aplicación de comercio electrónico empresarial que tenía la tarea de apoyar. Aunque el programador original, un contratista, era amigo mío, lo llamé por teléfono. ¡Digamos que no fuimos amigos después de esa conversación!

Lamentablemente, he descubierto que el factor determinante detrás de la calidad del código suele ser si se espera que el programador mantenga el código que está escribiendo. Muchos de estos muchachos adoptan una actitud de “¡Wang, Bash, gracias, hombre!” Cuando se trata de demoler los proyectos y los cheques de pago.

No tengo ninguna intención de herir tus sentimientos, pero tengo la sensación de que eres un novato en programación y que tienes dificultades para comprender los bucles.

Te sugiero que busques cualquier buen tutorial en YouTube, particularmente los tutoriales de Bucky Roberts. Él es el tipo que puede hacer que un novato completo entienda conceptos complejos.

Loop es una de las lecciones iniciales que se le enseña a un programador, sin conocer e implementar loops, uno no puede llamarse a sí mismo programador / ingeniero de software.

Entiendo muy bien los bucles. Bucles de tráfico. Ganchos y bucles. Bucles de ruedas calientes.

También entiendo muy bien la iteración, ya sea simple y explícita (en cualquier idioma) o indirecta (como vía. Recursión). Lo entiendo en rutas de ejecución de código y objetos. Pero rara vez los llamo bucles, excepto cuando hablo informalmente con alguien sin experiencia en programación. (O cuando tengo que hacer referencia a las instrucciones de LOOPx en la arquitectura Intel).

Nunca he conocido a alguien que no pueda escribir un bucle. He conocido a algunos que no entienden cuál es la más apropiada de las diversas técnicas de bucle para usar en cualquier contexto dado (estilo C para bucle, mientras que bucle, un mapa / filtro / función de orden superior que usará la función iteración más adecuada y mejor optimizada para la colección en cuestión, recursividad). Conocí a uno que pensaba que las excepciones eran la mejor manera de terminar un ciclo, pero era muy extraño.

A un número deprimente de desarrolladores no les gusta la abstracción y sienten que la elaboración manual de un bucle de estilo C cada vez muestra que son un verdadero programador. No importa que el 90% del tiempo

  1. están escribiendo exactamente la misma plantilla para iterar sobre una colección
  2. el lenguaje que utilizan ofrece algún tipo de bucle foreach y / o mapa / filtro / reducción
  3. Las opciones en el punto 2 nunca cometen errores de cercado y a menudo están mejor optimizadas que cualquier cosa que escriban
  4. Las opciones en el punto 2 no tienen que reescribirse si cambian el tipo de colección

escribiendo un show tradicional para bucles que tienen el control . Maldición, eso es varonil! No hay bragas en la cintura para este hermano.

Esta actitud es tan fuerte en la industria que, aunque Go tiene una estructura de control para … en rango … (un bucle foreach, pero no lo diga en voz alta porque molestará a los hermanos), solo le permiten trabajar en cuatro construidos -en los tipos de colección. De esa manera, los hermanos no tienen que preocuparse de que alguien piense que son mujeres-hombres que usan un lenguaje de mujeres-hombres que no les obliga a usar bucles de estilo C adecuados en cualquier estructura de datos compleja que escribieron. No es que Go bros haga mucho de eso, solo para que lo sepas.

¿A eso te referías?

Tal vez no entiendo bien la pregunta, pero no puedo imaginarme a ningún ingeniero de software que no entienda los bucles.

Los bucles son críticos para casi todo el desarrollo de software, es casi inconcebible que puedas trabajar como ingeniero de software y no entenderlos.

¿Es algún tipo de teoría nueva?

¡Lo que estás hablando está completamente inventado!

¿Al menos en mi experiencia no he conocido a nadie así?

Es como decir ¿Por qué muchos matemáticos no pueden entender la suma?

¡Es imposible!

¡Por cierto, podría obtener una buena cantidad de impresiones de anuncios si escribe en él! 😛

La iteración (bucles) es literalmente uno de los fundamentos fundamentales de la programación (claro, los lenguajes funcionales no tienen ‘bucles’ como se podría pensar tradicionalmente pero sí admiten la iteración, ¡tienen que hacerlo!)

Cualquiera que se haga llamar ingeniero de software y no entienda el concepto de un bucle, está mintiendo …

Cualquier ingeniero de software entiende los bucles. Una de las primeras cosas que aprende es calibrar correctamente la condición de salida de un bucle y cómo cometer un error aquí podría ocasionar problemas graves.

Tienes que entender ese concepto para poder seguir adelante.

Si tiene problemas, puede intentar leer su libro de “introducción a la programación” desde el principio antes de lidiar con los bucles.

¿Por qué muchos ingenieros de software no pueden entender los bucles?

Hola, ¿dónde leíste tal cosa? : p Los ingenieros de software son expertos en lazos queridos: p

No en mi experiencia. Punteros (referencias), recursividad, concurrencia: sí, todo el tiempo.