Haciendo trampa: trucos para programar menos.

37
Haciendo trampa Trucos para programar menos Les miente: Roberto Alsina email: [email protected] twitter: @ralsina blog: http://lateral.netmanagers.com.ar Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Transcript of Haciendo trampa: trucos para programar menos.

Page 1: Haciendo trampa: trucos para programar menos.

Haciendo trampaTrucos para programar menos

Les miente: Roberto Alsina

email: [email protected]

twitter: @ralsina

blog: http://lateral.netmanagers.com.ar

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 2: Haciendo trampa: trucos para programar menos.

¿De qué estamos hablando?

• Programar es divertido.

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 3: Haciendo trampa: trucos para programar menos.

¿De qué estamos hablando?

• Programar es divertido.

• Programar mucho debe ser más divertido

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 4: Haciendo trampa: trucos para programar menos.

¿De qué estamos hablando?

• Programar es divertido.

• Programar mucho debe ser más divertido

• Programar todo el día debe ser totalmente divertido

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 5: Haciendo trampa: trucos para programar menos.

NO, PIBE

• Programar es divertido

• Producir mucho es más divertido

• Producir mucho pero tener una vida fuera del código es totalmente divertido

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 6: Haciendo trampa: trucos para programar menos.

Métricas

• Si no lo podés medir no existe.

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 7: Haciendo trampa: trucos para programar menos.

Métricas

• Si no lo podés medir no existe.

• Si medís la cosa equivocada, es mejor no medir nada.

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 8: Haciendo trampa: trucos para programar menos.

Métricas

• Si no lo podés medir no existe.

• Si medís la cosa equivocada, es mejor no medir nada.

• Decidir cuál es la cosa correcta implica pensar mucho.

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 9: Haciendo trampa: trucos para programar menos.

¿Quién dijo esto?

“Medir el progreso de un programa por líneas de código es como medir el progreso enla construcción de un avión en toneladas.”

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 10: Haciendo trampa: trucos para programar menos.

¿Quién dijo esto?

“Medir el progreso de un programa por líneas de código es como medir el progreso enla construcción de un avión en toneladas.”

Bill Gates

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 11: Haciendo trampa: trucos para programar menos.

Algunas Métricas Posibles

• Horas de programación (H)

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 12: Haciendo trampa: trucos para programar menos.

Algunas Métricas Posibles

• Horas de programación (H)

• Dinero obtenido (D)

• D/H

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 13: Haciendo trampa: trucos para programar menos.

Algunas Métricas Posibles

• Horas de programación (H)

• Dinero obtenido (D)

• D/H

• Líneas de código (L)

• L/H

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 14: Haciendo trampa: trucos para programar menos.

Algunas Métricas Imposibles

• Felicidad sentida (F)

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 15: Haciendo trampa: trucos para programar menos.

Algunas Métricas Imposibles

• Felicidad sentida (F)

• Maldiciones emitidas (M)

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 16: Haciendo trampa: trucos para programar menos.

Algunas Métricas Imposibles

• Felicidad sentida (F)

• Maldiciones emitidas (M)

• Ego Level-Up (E)

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 17: Haciendo trampa: trucos para programar menos.

Algunas Métricas Imposibles

• Felicidad sentida (F)

• Maldiciones emitidas (M)

• Ego Level-Up (E)

• F/M

• F*E/M

• (F*E)/(M*H)

• (F*H)/(M*L)

• (F-M)*E*D/H

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 18: Haciendo trampa: trucos para programar menos.

¿Quién dijo esto?

“La pereza es la primera virtud de un programador.”

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 19: Haciendo trampa: trucos para programar menos.

¿Quién dijo esto?

“La pereza es la primera virtud de un programador.”

Larry Wall, creador de Perl

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 20: Haciendo trampa: trucos para programar menos.

Problema Ejemplo

¿Cómo hago para mostrar el avance de un proceso que tiene N pasos en una terminal,para que el usuario no se impaciente?

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 21: Haciendo trampa: trucos para programar menos.

Problema Ejemplo

¿Cómo hago para mostrar el avance de un proceso que tiene N pasos en una terminal,para que el usuario no se impaciente?

>>> from progressbar import ProgressBar>>> progress = ProgressBar()>>> for x in progress(xrange(N)):... y=foo(x)...100% |########################################################################|

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 22: Haciendo trampa: trucos para programar menos.

¿Quién dijo esto?

“Los poetas inmaduros imitan, los poetas maduros roban.”

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 23: Haciendo trampa: trucos para programar menos.

¿Quién dijo esto?

“Los poetas inmaduros imitan, los poetas maduros roban.”

T.S. Eliot

“¿Por qué roba bancos la gente? Porque ahí está el dinero.”

Willie Sutton, ladron de bancos

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 24: Haciendo trampa: trucos para programar menos.

¡Hoy en día no necesitás robar!

• Hay mucho código bueno por ahí

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 25: Haciendo trampa: trucos para programar menos.

¡Hoy en día no necesitás robar!

• Hay mucho código bueno por ahí

• Hay mucho código bueno con buenas licencias por ahí

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 26: Haciendo trampa: trucos para programar menos.

¿Quién dijo esto?

“Si programás lo más astuto que podés, por definición no sos lo suficientemente astutopara debuguearlo.”

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 27: Haciendo trampa: trucos para programar menos.

¿Quién dijo esto?

“Si programás lo más astuto que podés, por definición no sos lo suficientemente astutopara debuguearlo.”

Brian Kernighan, creador de C

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 28: Haciendo trampa: trucos para programar menos.

Problema: ¿cuál de estos es mejor?

f() if a > b else g()

(f, g)[a>b]()

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 29: Haciendo trampa: trucos para programar menos.

Problema: ¿cuál de estos es mejor?

f() if a > b else g()

(f, g)[a>b]()

NO, lo mejor es esto:

if a>b: f()else: g()

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 30: Haciendo trampa: trucos para programar menos.

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 31: Haciendo trampa: trucos para programar menos.

El trabajo no termina cuando terminás deescribir

• Esfuerzo de escritura

• Esfuerzo de que ande

• Esfuerzo de que siga andando

• Esfuerzo de leerlo

• Esfuerzo de explicarlo

• Esfuerzo de mantenerlo

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 32: Haciendo trampa: trucos para programar menos.

Inversión y Recompensa

• Escribir claro

• Escribir explícito

• Escribir modular

• Escribir tests

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 33: Haciendo trampa: trucos para programar menos.

Técnicas que Ayudan

• Leer mucho

• Releer

• Escribir

• Publicar

• Releerse

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 34: Haciendo trampa: trucos para programar menos.

¿Quién dijo esto?

Mostrá rápido, Mostrá seguido.

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 35: Haciendo trampa: trucos para programar menos.

¿Quién dijo esto?

Mostrá rápido, Mostrá seguido.

Cliente de stripper

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 36: Haciendo trampa: trucos para programar menos.

¿Quién dijo esto?

Mostrá rápido, Mostrá seguido.

Cliente de stripper

Eric Raymond, La catedral y el bazar

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar

Page 37: Haciendo trampa: trucos para programar menos.

Preguntas y Respuestas

Les mintió: Roberto Alsina

email: [email protected]

twitter: @ralsina

blog: http://lateral.netmanagers.com.ar

Roberto Alsina | [email protected] | @ralsinahttp://lateral.netmanagers.com.ar