Las películas generalmente retratan a los programadores como estos codificadores locos que memorizan todo. ¿Los programadores profesionales realmente conocen el código (cuando hacen un bot, una aplicación, etc.) o investigan para armar las piezas?

Las películas generalmente retratan a los programadores como estos codificadores locos que memorizan todo. ¿Los programadores profesionales realmente conocen el código (cuando hacen un bot, una aplicación, etc.) o investigan para armar las piezas? 

¿Qué es lo que hace un programador?
 
Los programadores de sistemas informáticos escriben programas para controlar el funcionamiento interno de los ordenadores, lo que implica diseñar programas que sean eficientes, rápidos y versátiles. ... Su objetivo es hacer que los sistemas informáticos (hardware y software) funcionen de forma más eficiente.

Los programadores no necesitan memorizar nada . ¡Es por eso que gravité hacia CS cuando era más joven! En el trabajo diario, paso más tiempo leyendo que codificando: buscando documentación, revisando otras partes de la base de código, buscando mensajes de error en Google, buscando respuestas en Stack Overflow ... Y eso es solo para resolver el problema inmediato en el que estoy trabajando; También paso tiempo aprendiendo temas técnicos más profundos para expandir mis horizontes, leyendo publicaciones de blog, documentos y, ocasionalmente, libros.

Si me filmara trabajando durante una semana o dos, no se parecería en nada a las películas. ¡Me vería como un vago! El trabajo consiste más en pensar que en cualquier otra cosa, y pensar no parece trabajo. Si tuviera mejor aspecto y la decoración de mi departamento fuera más agradable, me confundirías con uno de esos jóvenes profesionales ambiguos de comedias estadounidenses. En los días en que hago la mayor cantidad de programación, lo más probable es que esté sentado en mi Macbook (suministrada por el trabajo) en un café hipster, más como el escritor estereotipado que como un "hacker".

Y, sin embargo, no es una pizca de verdad en la imagen “hacker” que se ve. Es una exageración y no es representativo, pero si me atrapan en mi escritorio Emacsing frenéticamente, parecerá bastante cercano.

No salgo de mi camino para memorizar nada, no tengo que hacerlo, pero con el tiempo aprendo cosas por pura repetición. Cuando comencé Haskell, tuve que buscar las funciones de la biblioteca todo el tiempo; ahora, casi una década después, simplemente conozco la mayoría de ellos. (¡Todavía busco documentación para paquetes menos estándar todo el tiempo!) Entonces, cuando estoy muy concentrado en una tarea que ya entiendo cómo hacer, puedo codificar casi sin parar durante horas sin buscar nada. No es común, pero sucede.

Mencioné Emacs por una razón. Para los no iniciados, el uso efectivo de Emacs es indistinguible de la magia. Emacs es colorido y emocionante, tiene una interfaz de usuario minimalista, que intencionalmente sintonizo para ser aún más minimalista, y tengo cientos de comandos de teclado en la memoria muscular. Un Emacs de pantalla completa que muestra un montón de buffers que cambian constantemente a medida que me muevo y ejecuto comandos definitivamente parece un accesorio de película.

Una captura de pantalla de cómo uso Emacs en un monitor externo grande.

Los comandos de Emacs, casualmente, fueron una de las pocas cosas que me propuse memorizar explícitamente . Recogí Emacs en mi último año de escuela secundaria, después de cansarme de Eclipse y Notepad ++, y decidí dejar de lado un par de semanas de ser improductivo para aprender Emacs correctamente , usando combinaciones de teclas normales para hacer todo y nunca tocar las teclas de flecha o ratón Esto no es algo que normalmente tengo que hacer, pero, hombre, ¡ me alegro de haberlo hecho! Estar cómodo en Emacs ha sido un gran impulso de productividad a la par que aprender a tocar. Ocasionalmente parecerse a un verdadero hacker es solo una ventaja :).

Pero yo divago. Con un puñado de pequeña excepción, he no es necesario memorizar nada. Si no recuerdo algo, puedo buscarlo. El único inconveniente es que apenas puedo funcionar sin Internet; si quiero hacer algo en un vuelo de avión o en una cabina en las montañas, tengo que planificar con anticipación o apegarme a cosas que ya conozco bien. Y sé que no soy el único.

En última instancia, los programadores modernos buscarán cosas todo el tiempo . Internet, Google y Stack Overflow son herramientas realmente poderosas para acceder al conocimiento, y la programación es fundamentalmente una profesión del conocimiento. No hay ninguna razón para no usar estas herramientas: proporcionan tanto valor que evitarlas es una pérdida enorme de tiempo. ¡No hay valor en intencionalmente hacer tu propia vida más difícil!

El software libre o Free Software posee una definición clara al respecto, según Free Software Foundation es aquel que puede ser usado con cualquier fin, estudiado (saber qué hace), copiado y mejorado. Existe una gran variedad de licencias de software libre, siendo la GNU GPL la referente de todas, pero podemos mencionar también las licencias MIT, BSD, Mozilla, Apache o Creative Commons.

El software de código abierto (open source) es básicamente lo mismo que el software libre, salvo que no es reticente a mezclar software privativo con software libre. También existe software de código abierto que no puede ser utilizado con cualquier fin, por lo cual no sería libre.

El freeware tiene poco que ver con el software libre, dado que lo único libre es su distribucion en general no puede ser modificado, estudiado o comercializado, por lo cual es obvio que viene sin código fuente (sin "la receta del programa").

El shareware es similar al freeware pero con una limitacion extra: el tiempo de uso. Estos programas suelen deshabilitarse en pocos días, son versiones demo/light, de programas completos privativos.

El software privativo tradicional  no permite su utilización con cualquier fin, no permite su estudio (salvo pagando fortunas a sus creadores), no permite su libre copia ni su mejora por parte de cualquier persona: es el inverso total del software libre, por eso windows y linux están tan enfrentados.

 

Publicar un comentario

0 Comentarios