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