Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

¿De qué estamos hablando? • Programar es divertido. Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 3

Slide 3 text

¿De qué estamos hablando? • Programar es divertido. • Programar mucho debe ser más divertido Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 4

Slide 4 text

¿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] | @ralsina http://lateral.netmanagers.com.ar

Slide 5

Slide 5 text

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] | @ralsina http://lateral.netmanagers.com.ar

Slide 6

Slide 6 text

Métricas • Si no lo podés medir no existe. Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 7

Slide 7 text

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] | @ralsina http://lateral.netmanagers.com.ar

Slide 8

Slide 8 text

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] | @ralsina http://lateral.netmanagers.com.ar

Slide 9

Slide 9 text

¿Quién dijo esto? “Medir el progreso de un programa por líneas de código es como medir el progreso en la construcción de un avión en toneladas.” Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 10

Slide 10 text

¿Quién dijo esto? “Medir el progreso de un programa por líneas de código es como medir el progreso en la construcción de un avión en toneladas.” Bill Gates Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 11

Slide 11 text

Algunas Métricas Posibles • Horas de programación (H) Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 12

Slide 12 text

Algunas Métricas Posibles • Horas de programación (H) • Dinero obtenido (D) • D/H Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 13

Slide 13 text

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] | @ralsina http://lateral.netmanagers.com.ar

Slide 14

Slide 14 text

Algunas Métricas Imposibles • Felicidad sentida (F) Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 15

Slide 15 text

Algunas Métricas Imposibles • Felicidad sentida (F) • Maldiciones emitidas (M) Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 16

Slide 16 text

Algunas Métricas Imposibles • Felicidad sentida (F) • Maldiciones emitidas (M) • Ego Level-Up (E) Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 17

Slide 17 text

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] | @ralsina http://lateral.netmanagers.com.ar

Slide 18

Slide 18 text

¿Quién dijo esto? “La pereza es la primera virtud de un programador.” Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 19

Slide 19 text

¿Quién dijo esto? “La pereza es la primera virtud de un programador.” Larry Wall, creador de Perl Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 20

Slide 20 text

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] | @ralsina http://lateral.netmanagers.com.ar

Slide 21

Slide 21 text

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] | @ralsina http://lateral.netmanagers.com.ar

Slide 22

Slide 22 text

¿Quién dijo esto? “Los poetas inmaduros imitan, los poetas maduros roban.” Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 23

Slide 23 text

¿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] | @ralsina http://lateral.netmanagers.com.ar

Slide 24

Slide 24 text

¡Hoy en día no necesitás robar! • Hay mucho código bueno por ahí Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 25

Slide 25 text

¡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] | @ralsina http://lateral.netmanagers.com.ar

Slide 26

Slide 26 text

¿Quién dijo esto? “Si programás lo más astuto que podés, por definición no sos lo suficientemente astuto para debuguearlo.” Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 27

Slide 27 text

¿Quién dijo esto? “Si programás lo más astuto que podés, por definición no sos lo suficientemente astuto para debuguearlo.” Brian Kernighan, creador de C Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 28

Slide 28 text

Problema: ¿cuál de estos es mejor? f() if a > b else g() (f, g)[a>b]() Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 29

Slide 29 text

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] | @ralsina http://lateral.netmanagers.com.ar

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

El trabajo no termina cuando terminás de escribir • 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] | @ralsina http://lateral.netmanagers.com.ar

Slide 32

Slide 32 text

Inversión y Recompensa • Escribir claro • Escribir explícito • Escribir modular • Escribir tests Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 33

Slide 33 text

Técnicas que Ayudan • Leer mucho • Releer • Escribir • Publicar • Releerse Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 34

Slide 34 text

¿Quién dijo esto? Mostrá rápido, Mostrá seguido. Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 35

Slide 35 text

¿Quién dijo esto? Mostrá rápido, Mostrá seguido. Cliente de stripper Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 36

Slide 36 text

¿Quién dijo esto? Mostrá rápido, Mostrá seguido. Cliente de stripper Eric Raymond, La catedral y el bazar Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar

Slide 37

Slide 37 text

Preguntas y Respuestas Les mintió: Roberto Alsina email: [email protected] twitter: @ralsina blog: http://lateral.netmanagers.com.ar Roberto Alsina | [email protected] | @ralsina http://lateral.netmanagers.com.ar