¿Es normal sentirse extremadamente inculto cuando se ve por primera vez un código completamente funcional para un programa de software?

Bueno, si no tienes educación en programación de computadoras … ¡sí, por supuesto! Para un laico, un trozo de código de programa es una tontería más o menos completa, con una oración en inglés apropiada ocasional rodeada de / * y * /.

Es casi lo mismo si veo una página escrita en cantonés, porque no tengo educación en cantonés . En su mayoría, todo parece una tontería, pero con algunas palabras en inglés y algunos números dispersos.

Si está diciendo que ya ha estado aprendiendo un lenguaje de programación, y pensó que lo estaba haciendo bien hasta que vio un programa GRANDE, entonces tal vez se sienta un poco más intimidado de lo que debería.

He trabajado en software con más de un millón de líneas de código C ++, e incluso después de 40 años haciendo esto, ¡sigue siendo realmente desalentador!

Pero lo desglosa en grandes piezas funcionales, luego desglosa cada pieza en jerarquías de clase y grupos de funciones relacionadas, luego las desglosa en funciones individuales y muy pronto tiene un fragmento de código de 50 líneas que puede sentarse y digerir .

El truco es descubrir cómo enfocarse en la pequeña pieza en la que necesita trabajar HOY … el área donde podría ubicarse un error que necesita reparación. El lugar correcto para insertar alguna pequeña característica nueva.

Cuando trabajé en programas de un millón de líneas, por lo general solo tuve que mantener un resumen mental de quizás 10,000 líneas de software en mi cabeza en cualquier momento.

  • ¿Es normal sentirse extremadamente inculto cuando se ve por primera vez un código completamente funcional para un programa de software?

Posiblemente.

Puede que no sea “normal”, pero ciertamente no es una reacción irrazonable.

La programación funcional es una de las cosas más esclarecedoras que un programador puede aprender a hacer bien.

Y es diferente de lo que aquellos que enseñaron por primera vez otros métodos suelen hacer.

Una de las cosas que noté, y muchas otras han hecho preguntas en Internet, fue que aunque podía resolver la mayoría de los problemas, incluso utilizando métodos funcionales, mis soluciones eran invariablemente mucho más largas o complejas que los expertos.

Algo de esto es solo aprender las funciones disponibles en un idioma en particular, y algo de esto se debe a que aún no comprende o internaliza los modismos funcionales que son comunes en la mayoría de los lenguajes funcionales.

La buena noticia es que la práctica corrige eso, e incluso mejora su código en un lenguaje nominalmente ‘no funcional’.

Desde que estudié Clojure, F # y Haskall, mi PowerShell y Perl definitivamente han mejorado.

(Y ya he estado programando MUCHO tiempo y la mayoría me considera bastante bueno).

La verdad es que los programadores funcionales (comenzando con los programadores Lisp) tienden a ser MUCHO MEJORES que el programador promedio.

El primer software completamente funcional que vi fue la plataforma CMS Drupal. Estaba aprendiendo PHP e intenté modificar el código para cambiar el diseño. Más bien como hackear aquí y allá en realidad y realmente no sabía lo que realmente estaba haciendo. Pensé, tal vez tenía que graduarme de la universidad antes de aprender cómo funcionan todas estas cosas: el núcleo, el “núcleo” o línea de base, etc.

Luego me gradué y me di cuenta de que mi universidad no me enseñó nada de eso. Aprendí patrones de diseño pero no pude entenderlos ni siquiera diferenciarlos. Mi primer trabajo fue hacer SAP. Imagine mi sorpresa y asombro comparado cuando miré el código base de SAP.

Pensé que nadie podría haber entendido todo esto solo. De hecho, este software empresarial ha existido durante tanto tiempo y se deben haber invertido millones de días-hombre. Fue entonces cuando me enteré de que hay expertos en productos, los verdaderos “consultores” en este mundo que tienen probablemente 10–20 años de experiencia en ese producto empresarial solo y haciendo una gran carrera con él.

En el mundo empresarial, es importante encontrar una especialidad y enfocarse en ella, porque las aplicaciones empresariales son muy complejas. No hay forma de que puedan enseñarlo en un ambiente de clase y la única forma de aprenderlos es ser parte de un proyecto de implementación o incluso soporte y mantenimiento. En el mundo SAAS, es probable que sea un juego de pelota completamente diferente. No lo sé porque no tengo experiencia en ello, pero los principios son probablemente los mismos.

Por lo tanto, ningún aula podría haberle enseñado todo lo que necesita saber sobre el software. Tendrás que ganar experiencia en el mundo real.

“Extremadamente sin educación” quizás no sea el término correcto, abrumado sí, incluso ahora, después de más de 15 años en la industria cada vez que empiezo a trabajar en un proyecto existente escrito por decenas de personas antes que yo, uno se abruma. Una vez que comienzas a obtener varias partes del software, te acostumbras cada vez más.