Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Aprendí a programar cuando aprendí ruby

Aprendí a programar cuando aprendí ruby

> Presentada en **ChilangoRails** el 22 de Octubre, 2015

Éste es mi papá, un ñoño hecho y derecho. Tal vez aprendí a programar por él. Las caras innegable de ñoños nos delatan.

Mi jefe, Ingeniero Eléctrico de profesión, tuvo en los ochentas una empresa de micro computadoras, para después trabajar en el entonces Digital Equipment Corporation. Podría decir que mi interés por las computadoras empezó en el garage en el que mantenía sus computadoras e impresoras, pero eso sería sólo la mitad de mi historia.

Ésta es mi mamá. Mi mamá no es ñoña, aunque le fascina que su auto tenga una estampita de apple pegada.

Mi jefa fue maestra de kinder durante muchos años, pero ahora es chef. Por ella creo que programar consta de enseñarle a una computadora a pensar y se por cierto, que no se puede programar sin desayumer.

Éste, después de perder los cachetes y el pelo, soy yo, Roberto Hidalgo —unRob— en todas las redes sociales que valen la pena; estudié dos años de comunicación visual en dónde definitivamente no aprendí a programar.

Hoy les voy a contar la historia de cómo aprendí a programar cuándo aprendí ruby.

Claro que ruby no fue el primer lenguaje de programación que usé. Hace mas de 20 años descubrí Basic, en parte por aburrido, en parte para joder a mi hermano

Años después, con la intención de ver que travesuras podría hacer en clase de "computación", descubrí cómo apagar servers con PHP

Con este conocimiento nuevo, convencí a un piloto-slash-fotógrafo de hacerle una página web a cambio de un iPod, pues él viajaba mucho a los yunaited. Así que aprendí Actionscript, HTML, CSS y un pelito de Javascript. Sin darme cuenta, había encontrado mi vocación.

Eventualmente descubrí la luz al final del túnel. Después de haber deshechado Rails por no entenderle ni jota a mongrel, comencé a usar ruby para pequeñas tareas de sistema.

No fue un camino sencillo para alguien como yo, como dice @jeduan, un egresado de la universidad de la vida. Sacarme las malas mañas ha sido, y pronostico que continuará siendo un proceso largo y tendido.

Con ruby aprendí a aprovechar las estructuras de datos. Es muy fácil no cagarla cuándo el lenguaje te da las herramientas para transformar la información de manera elegante.

Al escuchar a Why y Matz, me di cuenta que la programación puede ser elegante, divertida y eficiente a la vez. El modelo orientado objetos del lenguaje me dejó esto muy claro. Es mas, reflejo de la década de los 60, aprendí que OOP se trata de mensajes tanto o mas que de objetos.

Aunado a la metaprogramación, empecé a escribir código reutilizable y conciso.

Eventualmente, publiqué mis propios gems, y hoy contribuyo con PR a los proyectos que en su momento me han sacado de apuros.
Participar en la comunidad me ha expuesto a mejores prácticas y a las programadoras que las implementan.

Por supuesto, ahora tengo una mejor idea de cuándo debo escribir código, y cuándo debo confiar en lo que ya está hecho.
Entendí que mi código podía ser confiable al hacer tests y al documentarlo, como aquellas librerías de las que yo, y mis clientes, dependen todos los días.

Finalmente, creo que usar este lenguaje me ha hecho no sólo ver las cosas mágicas que parece que hace el lenguaje, también me ha ayudad a **entender** cómo se hace magia.

Entender lo suficiente, comprender que ruby es una gran herramienta, en un entorno en evolución.
A través de todos estos conocimientos es que hoy me aventuro a aprender herramientas nuevas.

Ruby me hizo un programador mejor. Claro, no soy un gran programador, estoy todavía lejos de dejar de ser un programador promedio, y tal vez nunca lo llegue a ser. Lo que he aprendido es que programando ruby, soy un programador que se la pasa feliz aprendiendo.

Roberto Hidalgo

October 22, 2015
Tweet

More Decks by Roberto Hidalgo

Other Decks in Technology

Transcript

  1. 10 CLS 20 PRINT 30 INPUT "¿Cómo te llamas?", nombre

    40 PRINT 50 IF nombre == "julio" THEN 60 PRINT "TONTO EL QUE LO LEA" 70 ELSE IF nombre == "rob" THEN 80 PRINT "ROB ES CHIDO" 90 ELSE 100 PRINT "No eres mi hermano" 110 END IF 120 GOTO 30 140 RUN
  2. if ($_GET['nombre'] == 'rob') { exec("shutdown now"); } else {

    echo "<form><input name='nombre' type='text'/></form>"; }
  3. class String def slug I18n.transliterate(self) .downcase .gsub(/[^a-z0-9~]/, ' ') .squish

    .gsub(' ', '-') end end def url_from_components *args args.reject(&:nil?) .map(&:slug) .join('/') end
  4. group :script, :http do gem 'sinatra' gem 'sinatra-contrib' gem 'koala'

    gem 'mongoid' gem 'bson' gem 'moped' gem 'simplespotify' gem 'wolfram' gem 'twitter' gem 'pushover', '~> 1.0.4' gem 'mandrill-api' gem 'maruku' gem 'instagram' end group :script do gem 'nokogiri' gem 'nokogiri-plist' gem 'strava-api-v3' gem 'polylines' end group :http do gem 'httparty' gem 'redis' end source 'https://rubygems.org'