¿Quién se ha llevado a mi Programador?

Esta semana justo despues del aniversario de la empresa venía pensando en este post.  Han pasado ciertos acontecimientos y esta pregunta quedo ahí en espera de tratarla y dejarla por escrito en mi blog.

¿Quíen se ha llevado a mi Programador?



Soy claro en eso, al programador, palabra que de por si entendemos todos (al menos eso creo) hace referencia al buen programador, al programador con etica, con compromiso y profesionalismo.  No al programador mediocre.

Pero, ¿como escoger o encontrar un buen programador?. Tal vez no lo estamos buscando bien, lo veo en las ofertas laborales que leo a menudo.

Cito algunas leyendas de dichas ofertas:

1.- Se busca Analista Programador Java Junior
2.- Se busca Programador Java
3.- Se busca Front-end developer
 etc.

Luego colocan una lista de todas las tecnologías posibles, actitudes personales recomendadas, se ofrece un ambiente agradable de trabajo y rara vez se coloca cuanto se va a pagar. Esto ultimo me huele a que quieren ver si alguien llega y dice "1000 soles" y ellos le dicen , te doy 1500 y asi estaras contento.  Claro que si se pasa las espectativas que ellos esperan, le dicen es demasiado, esta fuera del costo del mercado y pueden suceder dos cosas, el programador acepta o lo espantan.

Así que si un empleador esta buscando solo contratar a alguien por costo. Esta  equivocado de profesión. Ahí no esta el programador.

Curriculum

Desde antaño se ha revisado ¿donde has estudiado? ¿cuales son tus ultimas referencias laborales?.
Este punto si es importante discutir. No para descatalogar o minimizar a alguien por donde ha estudiado, pues, conozco buenos programadores que no han pisado la universidad ni instituto conocido en el mercado. Es mas su instituto ya ni existe.  Entonces recurrir a la casa de estudio,  ahí no veo que esta el buen programador, te podrías equivocar. Nos da una idea de su formación y eso estoy de acuerdo, para ver el nivel de exigencia, pero, nada mas.
Sería bueno preguntar en este punto que proyectos ha realizado y como ha sido su participación. Aun podría decirnos que ha sido suyo, pero, en la realidad fue el documentador del grupo o el encargado de servir café.
Así que aquí podría ayudar una batería de preguntas como ¿que necesidades tu aplicación resuelve? y ¿tecnicamente como lo lograste?.
 Las ultimas referencias laborales tambien es discutible. Hay veces que se colocan a amigos, o se ha coordinado previamente con el mencionado para que de buenas espectativas al respecto. Incluso una vez un Gerente me dijo: "yo asi haya sido un mal empleado siempre doy buenas referencias de esa persona. Quien sabe, el mundo da vueltas".
Entonces nuevamente me encuentro en una encrucijada. Aquí no esta mi programador.

Tecnologías

Siguiendo en la lectura del curriculum llegamos a la sección "Tecnologías que domino". Estas aparecen bien ordenadas en una tablita de varias columnas con niveles: intermedio, avanzado o rara vez básico. El empleador se limita a verificar o preguntar "ah ok sabes C#". Mentalmente me ha pasado "¿que no sabes leer?" y respondemos "así es".  Algunas veces te preguntan: "y como harías esto?" y puede ser una forma, pero, no es efectiva a mi parecer. A veces nos aprendemos el libreto y punto.

Hoy incluso he visto que algunas empresas toman un examen técnico o incluso te piden desarrollar una mini aplicación. Por el tiempo de entrevista que es de 2 horas. Generalmente si bien es un buen filtro, tampoco se puede esperar un gran resultado.  Si es un mantenimiento, pues, muchos saben hacer mantenimientos.  Incluso y la debilidad de esta prueba esta en que su motivación lo hace pasar la prueba solo por ese momento y es aceptado. Pero, no ha evaluado si realmente le gusta programar y si lo hace bien. Conozco quienes se motivan para esta prueba y luego vuelven a su zona de "confort". Ademas muchas de esas pruebas no son de cero, son pre elaboradas y hay que terminar las partes.  Es filtro si pero para el que no sabe ni programar.

El empleador que recurre a esta prueba, y lo digo, a veces recurre a esto no tanto por buscar el buen programador. Sino para negociar el sueldo. Diantres!! porque no buscamos al buen programador y le pagamos lo que se merece.

Redes sociales

Despues de contadas malas experiencias. Yo pediría la cuenta de twitter, g+ y facebook. He visto programadores que estan comentando y posteando cada minuto. Entonces me pregunto a que hora programan?  Hoy por hoy, es un indicador importante para no desestimar.
Incluso se hace "Me gusta" el solo en sus posts.

Esto ha hecho que muchas empresas pongan restricciones de acceso a internet. Solo de 1 a 2pm y despues de las 6pm hay internet. Lo cual afecta a quienes buscamos o leemos en internet cosas que nos sirven para el trabajo: stackoverflow, foros, code google, github, bitbucket, infoq, listas de google, etc.

Certificaciones

Otros empleadores recurren a las certificaciones. Srs. empleadores. Ahí no esta el programador. Conozco y he visto como alguien ha obtenido las tres primeras certificaciones aprendiendose las respuestas de una serie "killer" de donde venían la mayoría de preguntas paras certificaciones java.

Incluso muchos recurren a estas certificaciones para proyectos en el estado. Ahí tras un acuerdo común con la entidad se colocan las bases para que postulen solo aquellas empresas que tienen certificados. Ahí si que vale la certificación.

Ahí tampoco esta el programador.

¿Quién se ha llevado a mi Programador?

Termino mi post. Hay muchas cosas mas para conversar y prefiero hacerlo con alguien interesado en este tema.
Pero brevemente en lo personal yo buscaría estas cosas ahora para buscar un buen programador:
  • Que colabore en algun proyecto open source en github/bitbucket y llegue a ser committer del mismo.
  • Que tenga portafolio. Proyectos visibles. Ya no hay excusa. Hay heroku, open shift, amazon ec2, rackspace. Los diseñadores web se venden así. Ahí no le preguntas si sabe photoshop, illustrator. Buscas ver que ha hecho y si se puede ver. Ellos dan los urls de sus trabajos. Algo así deberíamos buscar.
  • Recomendaciones en linkedin. Sus empleadores o clientes si se toman ese tiempo es una gran marca para el profesional. Por eso cuidado con recomendar a amigos por el simple hecho que es tu amigo. Si el es un mal profesional, la culpa la tiene tambien el que da recomendaciones.
  • Que proponga/participe/colabore en eventos.  En verdad si tienes programadores y nadie va al codepassion.pe, agile open lima o reuniones mensuales de comunidades. Preocupate, tal vez tu programador ya no se interese por programar y solamente desea tener un puesto laboral. Comentale que de esos hay varios por turnos en RAMSA y en ALICORP como obrero.
  • En la parte personal que sea comunicador, puesto que los clientes no son técnicos. Ellos necesitan que el consultor sepa desenvolverse y no solo les diga a cada pregunta "claro".
  • Que le guste hacer buen código. Código puede hacerlo hasta un mono. Pero un buen código que entienda un ser humano y que tenga todos los principios SOLID es importantisimo. Preguntale si ha leido CLEAN CODE, si conoce refactors, que ides usa.
  • Que sepa algo de sys admin. Conozco programadores que no saben ni instalar un apache. No configuran nada. Le tienen miedo a la consola. Con ellos si hay un problema en los servidores del cliente tendras que sacarte el saco de Gerente e ir tu mismo. Es por eso que hay empresas que ahora tienen sysadmin para que instalen y configuren todo. Pero un programador debe tener tambien ese skill. Ayuda mucho si estas estudiando y participas de tu comunidad linux de la universidad. Aun no te metes a un grupo. Hazlo ahora mismo. No solo participes del equipo de futbol de la Univ.
  • Si bien ser back-end developer es importante. Hoy por hoy con los cambios tecnologicos tenemos que ser mas front-end: html5, css3, jquery, entre otros. El mundo multiplataforma es solicitadisimo. Te sirve estes en java, net, php, drupal, wordpress.
  • Un buen programador sabe de seguridad: inyeccion sql, base de datos (permisos/grupos), evitar hiddens.
  • La ultima que cito sino me voy para 10 paginas. Tener una obsesión por el diseño. He visto buenos programadores que hacen unas interfaces de usuario espantosas. No piensan que el usuario no entendera nada y necesitara dias de capacitación para entender una pantalla. 
  • Conoce herramientas colaborativas: git, maven, nexus, jenkis (en java). No solo basta que conozca skype.
  • Es poliglota. Hoy por hoy no puedes saber solo java. Php es el lenguaje mas usado en la web. Y si te interesa google python debe estar en tu lista. Y si te gusta una gran comunidad y de ideas interesantes ruby.

Definitivamente no hemos hablado de frameworks, metodologías agiles, frameworks agiles.
Srs. el exito lo hacen las personas. Enfoquense ahí. Si logran un grupo comprometido, profesional, interesado en el código que hace, que se interesa en el trabajo de sus compañeros, que es proactivo y propone cada vez mejorar los procesos del team. A esa persona la debes retener. Al resto y por mas duro que parezca dejalos continuar su proceso de aprendizaje.
Con  las personas correctas todo caera por su propio peso.

Todos pasamos por etapas. Yo sigo buscando ser un buen programador. Espero que sirva en algo mis comentarios. No lo hago pensando en nadie en particular. He resumido muchas de las cosas que yo mismo he cometido y he buscado en estos años cambiar.

Espero seguir transmitiendo en mis alumnos de EPE UPC, de mis academias, con mis compañeros de trabajo, con mis hijos este sentir.

Nos seguimos leyendo.

José



























Share:

17 comentarios:

  1. Buen post José, para tomarlo muy en cuenta :)

    ResponderBorrar
  2. Tranquilo profe no se raye!
    Yo ya me cansé de programar.

    ResponderBorrar
  3. El post sin duda es interesante, muy bueno. Pero mientras leía me surgió una pregunta, cuanto crees que debe ganar el programador con las características que mencionas?

    ResponderBorrar
  4. Que buen post José, inspirador :)

    ResponderBorrar
  5. Muy buen post, siempre es bueno leer algo que haga replantearse algunas cosas, no solo para los empleadores sino para los programadores mismos. :D

    ResponderBorrar
  6. Gracias por leer y compartir el post.

    La pregunta de Angel es muy buena.

    Angel la voy a pensar para responder o sera un nuevo post ya que me has dado una muy buena idea.

    ResponderBorrar
  7. Gran articulo Jose, muy motivador para todos y revela muchos de los problemas que como analistas programdores/ingenieros, etc nos pasa, actualmente muy pocas personas que conosco o mejor dicho casi ninguna le da importancia a participar en proyectos OpenSource, Comunidades o incluso te tienen un temor horrible a GNU/Linux.

    ResponderBorrar
  8. Muy buen post, muchas gracias por destinar un poco de tu tiempo a ordenar tus experiencias y compartirlas.

    ResponderBorrar
  9. excelente articulo, para reflexionar, es de mucha ayuda, gracias

    ResponderBorrar
  10. Me encanto leer tus notas, espero que abra muchas mentes y logren identificarse mas con su carrera elegida

    ResponderBorrar
  11. Muy buen post Jose felicitaciones,me sirvio de mucho para analizar ciertos puntos para llegar a ser un buen programador.

    ResponderBorrar
  12. Que post!!!! excelente profe, quedo a la espera de la respuesta del sueldo de un programador con el perfilq ue menciona?

    ResponderBorrar
  13. Muy bueno ru post, solo que hay una cosa en la que no estoy de acuerdo, en el tema del portafolio y te voy a comentar por que no, hay algunos programadores, y eso si, que soy muy pocos, que han migrado del back end puro a web developers, sin embargo, por ser programadores back-end no pueden mostrar su trabajo, como lo van a hacer, si todos sus programas son procesos internos, que por internos no quiere decir no importantes, sin embargo muchos empresarios actuales quieren cosas front-end, y yo creo que aunque es importante el front-end, el back-end seguira siendo la parte mas importante de los sistemas web, pero como se le hace saber eso a los empresarios que solo estan interesado en vender publicidad, entonces, estos programadores que si tienen el deseo de aprender, pero al no tener muchos proyectos on-line simplemente son descartados, asi que considero que el portafolio debe de quedar relegado a una parte menos importante.

    Saludos

    Esdras Salazar

    ResponderBorrar
  14. Esdras tu punto es valido. En ese caso yo recomendaría tener muy buenas referencias. Que puede opacar ese punto, que estas en un proyecto y por tener un mejor trabajo renuncias y te vas. Cambias de trabajo como de camiseta cada 3 o 6 meses. Te lo comento por que lo he visto.

    Pero igual un programador backend puede desarrollar frameworks, librerias, participar en un algun proyecto open source. No se puede quedar con lo primero.

    ResponderBorrar