jueves, 19 de julio de 2012

Un programador/desarrollador ideal

Soy desarrollador desde mi infacia (13 años de edad), trabajé en una empresa como desarrollador, fundé una comunidad de desarrolladores (http://www.4Geeks.co), tengo un startup de tecnología (http://www.societs.com) y he quebrado otros varios.. Todo este background de tecnología y emprendimiento ha sido una mezcla muy interesante para mí porque he podido ver el perfil que debe tener un desarrollador desde adentro y desde afuera.

Quiero escribir un ensayo explicando las 4 premisas que yo considero deben darse para tener un desarrollador "ideal".

Debe ser un solucionador de problemas

No es casualidad que muchas universidades den la carrera de programación como una Ingeniería, después de todo el ingenio del desarrollador es uno de sus mayores valores. El problema esta en el sindrome del "No se puede". 

Estoy cansado de escuchar desarrolladores que en lugar de poner soluciones ponen trabas, tal véz por falta de creatividad, desinterés en el problema a solucionar (no lo ven como un reto) o simplemente por estupidez. La cosa es que el departamento de tecnología de cualquier compañía debería ser el último en dar su opinión, y debe tener un lider que este dispuesto a resolver todos los problemas técnicos.

Les recomiendo leer está lectura titulada: La carta a garcia donde se demuestra la importancia y significado que tiene la palabra "resolver".

No tener titulo universitario en ninguna carrera afin a la programación

Hay dos razones que me llevan a esta conclusión:
  1. El modelo de estudio universitario esta errado:
    Si es verdad que una buena base es necesaria, pero ¿5 años de carrera para tener una base?. Yo considero que la programación debe y puede ser aprendida de forma autodidacta, los modelos universitarios actuales no evolucionan a la velocidad que deberían, ni creo que en algún momento puedan hacerlo, todos los profesores son superados por los alumnos, el modelo de enseñanza para este tipo de carreras debe ser reinventado.

    Yo aprendí a programar en el estudio de mi casa, durante varias madrugadas, leyendo
    este curso de Desarrolloweb.com. Si yo quisiera estudiar programación hoy en día, probablemente me uniría a una de las miles de comunidades que existen en el mundo de la programación, y seguiría la recomendación de los mejores programadores en esos grupos.
    Si te enseñan a programar y no lo aprendes tu mismo como un autodidacta, te están creando malas mañas, tienes que ser autodidacta desde el principio o sino no sobrevives a los cambios.
  2. La programación no es un fin, sino un medio:

    Otro problema que hay en los desarrolladores criados por académicos, es la falta de entendimiento práctico de la programación o falta de visión. Si estudias y ejerces carreras de otras industrias, tienes la ventaja de conocer un pedazo del mundo como es, conoces problemas típicos de esa industria y tu mente se activa a intentar solucionarlos con la programación (que aprendiste de forma autodidacta).

    Si revisas las historias de éxito de startups más grandes, podrás ver que son muy pocos los casos que deben su éxito a una "muy buena arquitectura técnica", todo lo contrario, estamos acostumbrados a ver ballenitas en twitter, errores 404, etc.

    Si trabajas en la industria del turismo por muchos años probablemente vas a poder crear una plataforma como despegar.com, si estuviste en 10 escuelas para aprender diferentes idiomas vas a fundar OpenEnglish.com, si te toco ir a las juntas de condominios vecinales todas las semanas (como a mí) fundarás Societs.com, si trabajas en bienes raices, lo tuyo es nestio.com, airbnb.com y así sucesivamente.
Ser autodidacta

Este punto ya lo explique un poco en los otros dos puntos que he mencionado, pero vamos a profundizar unas lineas...

Facebook saca un nuevo release de su API todas las semanas, Google App Engine lo hace mensualmente, cada día ocurren cambios más frecuentemente en el mundo de la programación, nosotros hicimos un estudio intenso para conocer la mejor herramienta para realizar el proyecto http://dev.4geeks.co/ivoted, decidimos hacerlo en APE, y cuando lo terminamos (6 meses después) ya Node.js era una mejor solución.

Entonces ¿Quién me va a enseñar Node.js? Nadie! Un desarrollador ideal tiene que estar feliz por aprender esa nueva y mejor tecnología y hacer el salto en pocos días.

Debe hablar inglés

Tantos lenguajes que hay que aprender: Python, Javascript, HTML (si es un lenguaje aunque algunos digan que no), Ruby, C#, Java, Objective C, etc. Y resulta que descuidamos el idioma mas importante de todos: INGLES!

Todas las documentaciones están en ingles, los foros en inglés, los grupos en inglés, los comentarios del código en inglés. Incluso si instalas tu sistema operativo en inglés, te va a ir mejor, porque vas a poder copiar y pegar los errores en google para obtener más respuestas.


Bueno para cerrar, les quiero dejar una frase para que recuerden: "La programación no es un problema tecnico", es un medio, un instrumento para resolver problemas no técnicos que existen en la cotidianidad.

3 comentarios:

  1. Hola Alejandro,
    me ha encantado tu artículo y estoy totalmente deacuerdo en todos tus puntos. Me ha resultado especialmente gratificante tu segundo punto, ya que mi formación académica no es ingeniería y soy desarrollador. Por continuar un poco tu argumento y aportar una idea, creo que la "explosión" tecnológica que hemos -y estamos- viviendo ha transformado la programación en una habilidad/conocimiento de ámbito general, o en otras palabras, una herramienta capaz de aportar soluciones en casi cualquier ámbito. Por lo que la mayoría de gente puede beneficiarse.
    *Tu start-up es muy curiosa, me parece muy buena idea! Un saludo.

    ResponderEliminar
  2. Hola. Hice un contador de descargas justo como explicas en tu video, que redirecciona a un enlace externo. En local me funciona perfectamente. Tengo un servidor wamp instalado. Pero el problema está cuando subo mi pagina a un hosting. Me logra insertar el registro de la cantidad de descargas en la BD, pero no me hace el "header location"; y no me redirecciona. Espero que me ayudes. He intentado pasar el id de la descarga por GET y sacar el enlace por consulta y tampoco funciona. Creo que es en la configuración del servidor pero no se como arreglarlo. Espero que sepas como solucionar mi problema. De antemano, muchas gracias.

    ResponderEliminar
  3. Gracias a la tecnología se pueden lograr cosas increíbles como programar una app. Prácticamente mágicas. Ese es, en parte, uno de los atractivos del trabajo de un programador o ingeniero informático. No obstante, todo buen profesional del sector debe vivir con un ojo en el futuro, pero sin perder de vista el presente. Ser realista, pragmático y consciente de las limitaciones o fronteras -de muchos tipos- que se encontrará ayuda a reducir la frustración y centrarse en obtener buenos resultados con los recursos disponibles.

    ResponderEliminar