¿Y donde está el talento? ( post de ecamacho )

Les dejo el link a un post que escribió Erick Camacho.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Yo en lo personal aún sigo

Yo en lo personal aún sigo esperando a que me toquen a la puerta y me digan que puedo ganar el doble trabajando la mitad y desde mi casa.

Imagen de ezamudio

revisa tu mail

revisa el buzon de spam de tu correo, tienes como 4000 invitaciones. Puedes agrandar tu pene, tener erecciones de 8 horas y ser millonario trabajando desde tu casa en las horas que tu quieras. Y si ves la tele pues ademas podras bajar de peso tragando hamburguesas sin hacer ejercicio con todos los remedios milagrosos que venden.

Pero ya en serio, creo que hay que tener liga a este articulo bien lista para pegarla en los anuncios de trabajo que luego postean en este sitio, los tipicos:

"URGE PROGRAMADOR JAVA

5 anios de experiencia en Java 7
para proyecto de 6 meses"

Imagen de Sr. Negativo

Gente preparada si hay

Totalmente de acuerdo con el artículo que escribio Erick Camacho.

Por supuesto que en México (y en otras partes) exite gente preparada. Sin embargo es muy dificil detectarla.

Cualquier fulanito puede decir que sabe programar, pero a la hora del trabajo te sale con que "eso no lo vi en mi escuela".

Eso si,no creo que los reclutadores se la pasen hablando con cada programador que se encuentren para identificar quien le es útil o no.

Imagen de ezamudio

reclutadores

Ese es el problema, que los reclutadores se la pasan buscando en todos los lugares equivocados.

Imagen de CesarAlducin

De acuerdo

De acuerdo con el comentario de Erick Camacho, para encontrar a un verdadero programador tienes que hablar con ellos, conocer su mundo y sus necesidades.

Programadores hay muchos, !!!! quizá te saquen el trabajo pero para mi lo importante es las ideas que puedan a portar y la preparación que tengan.

yo por mi cuenta busco la preparacion en base a la solucion de problemas es como la certificacion SCJP de java, que lo unico que te dice es que la persona que la tiene sabe el lenguaje pero usarlo de manera correcta no.

Empezemos por

Pues primero lo primero ¿cuáles son las caracteristicas, cualidades, habilidades, conocimientos que debe, debiera tener un buen programador,desarrollador?

Yo comenzaría por decir:

1. Autodidacta

Imagen de ezamudio

no hay 1 definición

No hay una definición final única para determinar si alguien es buen desarrollador o buen programador.

Distintas empresas requieren distintos perfiles. El mejor candidato es el que cumple las expectativas; si las rebasa, que no sea por mucho (sí puede ser un problema cuando alguien está sobrecalificado para cierta chamba).

Hay quienes ya son todos unos expertazos en sistemas financieros pero si los metes a hacer una red social nomás no dan una, y viceversa. Hay quienes son muy buenos haciendo aplicaciones web pero no agarran la onda de hacer aplicaciones puramente de servidor o cosas host-to-host sin interfaz gráfica de algún tipo, etc.

Ciertamente hay características en común; lo de ser autodidacta es bueno, siempre y cuando vaya acompañado de no tener miedo a preguntar. Los que quieren aprender todo por su cuenta sin preguntarle a nadie, suelen atorarse mucho tiempo en problemas relativamente sencillos cuando están aprendiendo una tecnología, y cuando por fin los resuelven, se les queda muy grabada esa solución y piensan que así debe ser, cuando tal vez hay una manera mucho mejor de resolver ese mismo problema (o no se dan cuenta que la causa del problema no es algo inmediato sino que por ejemplo es mal diseño, etc).

Para animarse a preguntar pues hay que admitir que hay quienes saben más que uno. O sea que uno no es el mejor ni nada (sobre todo si estamos hablando de cuando aprendemos algo). O sea que tal vez otra cosa buena es humildad; un programador soberbio puede ser muy hábil o no tan hábil pero la soberbia le impedirá aprender de los demás porque piensa que todos son inferiores a él (típico caso Dunning-Kruger).

La habilidad de trabajar en equipo puede ser muy importante en muchos casos. Pero no siempre. Hay casos (tal vez muy específicos, y poco comunes) en que es preferible un lobo solitario que le encargues algo, se vaya un rato, regrese y te entregue lo que pediste, funcionando bien. Pero pues ya estamos hablando de especialistas con mucha experiencia.

Yo siempre he dicho que el poder pensar claramente bajo presión es un requisito muy importante. Los que se traban porque les cambiaron el deadline o porque se cayó el servidor y se apanican y lo apagan y desconectan todo... pues no son tan efectivos como los que pueden pensar en una mejor solución, en ese momento.

0. Pensar

0. Pensar!

Para poder programar bien es necesario que el individuo tenga capacidad de raciocinio. Sé que suena ridículo, pero hay casos en los que nomás la ardilla no les gira ( o el hamster o lo que sea ) :

Tampoco se necesita ser un genio eh ( bueno sí si se desea tener un trabajo en Google ).

Anécdota:

En otra época tuvimos que reclutar gente para programar en algo que nadie conocía ( y que hasta la fecha pocos conocen ) entonces era totalmente ilusorio pensar encontrar a alguien con experiencia en la herramienta.

Lo que hicimos fue evaluar a los candidatos usando un juego de mesa. Como el juego de mesa también era poco conocido el candidato no tenía ninguna ventaja especial sobre los otros.

Entonces el proceso era el siguiente:

1.- Ver su CV y ver que dijera que sabía programar en algo ( Vb, C, Java, JavaScript, Pascal, no importa ) esta parte era solo para no recibir contadores por ejemplo.

2.- Cuando venía a la entrevista, lo poníamos a jugar contra nosotros, que por cierto habíamos creado cierta adicción al juego y por eso lo usamos de pretexto.

3.- Se le explicaba claramente el juego, en que consistía, reglas, y estrategias básicas etc., y se le preguntaba "¿Entendiste?" y se le decía claramente: "Si tienes dudas, preguntanos". Bueno.

4.- Juagabamos y evaluabamos si:
a) Entendió las reglas
b) Si no las entendío, si preguntó y cuanto tiempo se tardó en preguntar.
c) Si repetía o no varias veces la misma pregunta
d) Como afrontaba la frustración ( el juego se debería llamar algo como "El mexicano canijo" o algo así, porque básicamente se trataba de destruir el juego del otro, como el dicho ese de la cubeta de cangrejos, aich, bueno no viene al caso )
e) Si aprendía las estrategias de los demás y como las iba adecuando.

Este proceso lo usamos tanto para evaluar a los candidatos y curiosamente también nos sirvió para evaluar nuestros propios compañeros de trabajo ( como también jugabamos esto cuando no había entrevista pues... ).

Nos pudimos dar cuenta de que las personas que eran buenas en el trabajo:

  • Preguntaban muy pronto cuando no entendían.
  • No volvian a preguntar lo mismo más de 2 veces ( o 3 cuando mucho )
  • Se divertían y no se frustraban cuando les deshacíamos su juego.
  • Aprendían rápidamente de como jugaban los demás y lograban después de algunas partidas jugar a la par.

Y las que no eran tan buenos en el trabajo:

  • No preguntaban, o se tardaban mucho en preguntar ( después de haber perdido varias veces ).
  • O preguntaban siempre la misma cosa "¿Como dices que se puede capturar?". Más de 5 veces.
  • Se enojaban o se mostraban molestos, ya sea porque les arruinábamos el juego o porque pensaban que era una pérdida de tiempo
  • Pasaban y pasaban los juegos y no mejoraban

Fue muy interesante ver como en algo tan rápido y simple como un juego de mesa, donde en 30 minutos se pueden jugar de 6 - 10 partidos, se podía encontrar lo que toma semanas descubrir programando.

Las personas que eran buenas en el juego, eran también buenas programando, ya sea porque preguntaban al encontrar un requerimiento poco claro, o porque preguntaban cuando no sabían hacer algo o porque aprendían fácilmente y soportaban el estrés cuando había que trabajar horas extra y/o se caía producción.

Las personas que no eran buenas en el juego también presentaban problemas en el trabajo, ya sea porque no preguntaban y perdían días o incluso semanas tratando de resolver algo que se podía resolver preguntando ( esto me pasaba mucho a mí antes ) O porque se les explicaba y no entendían la explicación. O de plano estallaban cuando producción se caía o en la hora 36 de trabajo continuo ( creo que el record en ese época llego a 56 hrs. sin dormir )

Tiempo después la gerencia que estaba vacante fue ocupada y regresamos a un esquema tradicional de entrevista. Buuuh.

Así que lo que yo considero como primer requisito para pretender vivir de programar, es saber pensar.

Leer ayuda mucho ( te da concentración ) y ser persistente sin llegar a ser necio también ayuda mucho, porque te hace no pensar en rendirte como una opción para lograr aprender algo.

Absolutamente nadie nace sabiendo hacer todo! el framework o lenguaje de programación que hoy está de moda mañana ya no lo estará ( alguién uso alguna vez Velocity? Torque? Castor? ) y hay que saber aprender las nuevas cosas. Hay que saber preguntar!!!, hay que saber comunicarse, en fin, hay que usar la cabeza.

Esta es una profesión meramente intelectual, así que usar el intelecto es básico y repito, no se necesita ser genio para la gran mayoría de las actividades.

Interesante

Es el jueguito que tienes que poner 5 bolitas en horizontal, diagonal o vertical no? creo que se llama 5 en linea y si, es muy adictivo!... lo bueno es hacer dos juntos y discretamente uno separado y después llenas el vacío y tantaaaaan ganaste

Yo era mas manchado, le ponía a leer un código desordenado y confuso... ese fue un filtro muy bueno porque también tomaba en cuenta no tanto el tiempo sino las respuestas que daban, había muchas personas que no daban con la solución pero en sus desvíos daban buenos argumentos. Solo una persona conozco que en menos de 5 minutos me dio la respuesta exacta y me explico correctamente el código... obvio ahí paro la entrevista y luego luego se le puso el contrato en la mesa

Para los que no lo han hecho intentenlo, pueden divertirse un rato buscando la respuesta:
Se los dejo

   


Editado:
Encontre el jueguito!
Imagen de CesarAlducin

Francamente este Post ha sido

Francamente este Post ha sido muy bueno y para mi me a ayudado demasiado, yo estoy de acuerdo con @ezamudio la humildad es una herramienta basica del programador y tambien hay que aprender a no sentir fustracion jamas.

tambien estoy muy de acuerdo con lo que comenta @oscarRYz me gusto mucho la aplicacion del juego, y para mi otra herramienta basica del programador es leer. siempre siempre leer.

a mi en lo particular me encanta andar por la red buscando codigos que me ayuden a desarrollar habilidades.

Imagen de Shadonwk

Seamos onestos, ¿cuantas

Seamos onestos, ¿cuantas empresas en México te van a poner a jugar?, generalmente quien te contrata son consultoras que te venden como recurso a la empresa interesada en el desarrollo, algunas de esas empresas te hacen examen, pero si vas recomendado por la consultora, practicamente ya estas dentro, y vendido con un perfil alto, a estas consultoras solo les interesa la lana, a la empresa final, solo le interesa que le hagas la chamba, sino sirves te regresan, pero para eso cada empesa ya se llevo su parte...

Las empresas que contratan buenos programadores, es porque se toman la delicadesa de poner a otro buen programador a diseñar una estrategia de reclutamiento y seleccion (como el jueguito que menciona Oscar) o minimo le piden un ejemplo logico a otro programador que luego este mismo programador evaluara(como en el caso de java.daba..) o ya asi a secas le piden a un programador que este haga la entrevista, pero esto es porque realmente buscan talento, en las consultoras ponenen a una secretaria que acaba de salir de la universidad (ha pero eso si bien buena) y por supuesto no entiende nada de programación ve un CV inflado y zaz lo manda, siendo que ese no es el caso, pero esto no les importa, porque si sirve ya la hicieron y sino simplemente siguen buscando esperando el milagro..

Puntos que me gustaría tocar

¿Alguna vez llevaron las clases de administración de proyectos, administración de tiempos, dirección de equipos de alto rendimiento y negociación empresarial?
En éstas clases que tuve la fortuna de llevar (que muchos por comentarios cómo este me dicen que parezco más LASC -Licenciado administrador de sistemas computacionales- que ISC -Ingeniero en sistemas computacionales-) nos abren un panorama que no se enseña(ba) generalmente a los ingenieros y es ver todo desde el punto de vista de un empresario o desde el punto de vista de un administrador (véase Gerente).

Francamente, aquí en México el mercado laboral es todo menos eso, un mercado laboral. Ej.:
"Se busca programador Java con experiencia comprobable de al menos 3 años en las siguientes áreas y conocimientos:
-Metodologías de desarrollo ágil ([aquí te ponen las 1000 y 1 metodologías existentes])
-Desarrollo web ([aquí te ponen el < < gazillion > > de frameworks web para Java])
-Manejo de bases de datos ([de nuevo, otra mega lista de DBMS])
-Administración de servidores Unix y Linux
-Manejo de diferentes sistemas operativos
-Manejo de contenedores web ([otra vez, la interminable lista])
-Manejo de sistemas de versiones ([acertaron, una nueva lista])
[Otros requerimientos más]
Salario: $8000~$11000"

Ahora, veamos, te piden las "perlas de la virgen" por $8000 al mes, siendo que pues todo ese conocimiento (a mi parecer) vale muchísimo más, de entrada alguien con ese perfil va a ser difícil de encontrar ya que es difícil ser especialista digamos en Desarrollo Web con un sólo framework, hace poco leí un post que decía que era difícil encontrar gente especializada en un solo framework, ahora ¿qué tan difícil no será encontrar alguien que domine Struts, JSF, Spring, Seam, Weld, Tapestry?. Esto sólo con los frameworks web, ahora toda la otra pleyade de requerimientos...y cómo digo: ¿tan sólo por $8000?. Creo que este mercado laboral no está regulado y los únicos beneficiados son los médicos, ellos si te pueden cobrar $35000 por lo que sea...pero que un ingeniero quiera cobrar más de $4000 por un software personalizado y recibes del cliente un comentario similar a: "¿Qué?...Pues si Microsoft vende Windows en menos de lo que tu software."

Francamente creo que más que nada es necesario que cambien algunas cosas cómo el modelo de negocio del software, no puede ser un producto. Debe ser un servicio.
Otra es que somos los programadores y diseñadores de software quienes debemos dignificar la profesión. Me ha tocado ver casos que con tal de ganar un trabajo otro programador dice: "Yo te cobro $2000 menos que el otro" y adiós proyecto, con esto a su vez, la profesión se devalúa y de lo devaluado los verdaderos programadores o buscan otra profesión, o de plano se conforman y cada vez se bajan más los precios para poder "competir".

Sin más.

Imagen de EmpleosTI

Habilidades no Tecnicas

Ya mencionaron alguna habilidades que son importantes o necesarias para ser un buen desarrollador.

Recientemente empezamos con nuestro blog enfocado a ver estos tipos de temas,
Competencias en Profesionistas de TI | Desarrolla tu Carrera Profesional en TI

Pero aqui les compartimos el post y esperamos les sea de utilidad.
____________________________________

Les compartimos un par de entrevistas realizadas a consultores Sr, donde buscamos identificar cuales son las competencias o habilidades interpersonales que un Profesionista de Tecnologías de la Información debe tener o trabajar en desarrollarlas.

Las principales habilidades que considera que son fundamentales en el desempeño de su trabajo y que les han permitido salir adelante en sus proyectos…

+ Actitud de servicio: Disposición para hacer lo que el cliente pide y cómo lo pide. Tener una actitud positiva al dar el servicio.

+ Gusto por la lectura e investigación: Ayuda a mejorar los conocimientos, y a saber buscar las posibles soluciones de los problemas.

+ Trabajo bajo presión: Es necesario saber mantener la calma, tener la cabeza fría para enfocarte en la solución del problema.

+ Trabajo en equipo: Saber distribuir responsabilidades, confiar en los demás. Interesarse en conocer las fortalezas y debilidades de tus compañeros, en que sí puedes delegar y en que no.

+ Establecer límites: Saber delimitar los niveles de interacción con los compañeros y con los clientes; y así escoger la manera en cómo pedir o tratar a las personas. Esto permite escoger la mejor manera de llevar la relación con esa persona en específico.

+ Inglés Técnico: Toda la documentación esta en inglés. Es importante para entender el requerimiento ya que se puede interpretar de una manera diferente a la que esta solicitando el cliente.
Se puede hacer un glosario de términos, leer o tomar un curso de ingles.

“La experiencia poco a poco te va dando estas habilidades, pero el involucrarse mas allá de sus funciones, en otros proyectos, te permite aprender de esas experiencias y de los compañeros.”

Segunda entrevista:

“Lo primero es tener claro cual es el perfil que se quiere desarrollar ( Técnico, Funcional, Administrativo, etc..) y tratar se seguirlo especializándose en alguna tecnología. Sin olvidar lo importante que es estar en constante aprendizaje, actualización, no tener miedo a lo desconocido ya que nunca se va a dominar el 100% todo, pero si se desarrolla la habilidad de investigar, analizar, etc.. cualquier reto se va a poder enfrentar con éxito. Así como tampoco temerle al cambio. Es más, siento que en esta área es mejor estar cambiando constantemente, ya que se desarrolla una visión mas amplia.

Imagen de Marce

simbiosis

Y que hay de la Simbiosis Empresa-Empleado?
Es difícil creer que como empresa o empleado nos cueste trabajo aceptar que existe dicha simbiosis y no con esto quiero caer en el dicho de que "NADIE ES INDISPENSABLE" todos dependemos de todos y si las empresas necesitan de un empleado y genera todo un "ritual" para encontrarlo llamar psicologos, especialistas, generar baterías de test o hasta contratar una consultoría, por qué no tomarse el tiempo para sentarse a platicar que es lo que ofrecerá para el puesto que necesitan. Realmente es triste ver como las empresas no tratan de conservar a sus empleados siendo que dependen de ellos y de igual forma es triste ver como un empleado rehusa o rechaza lo que las empresas ofrecen por el simple hecho de "YO NADA MÁS HAGO LO QUE ME TOCA", "JAMÁS DARÉ UN PLUS". Existen estas creencias tanto de la empresa como del empleado recitando el dicho: "Si les das la MANO te toman del PIE", nadie quiere ceder, la empresa no quiere dar porque si no el empleado se sale de control, y el empleado no quiere dar porque la empresa lo negrea y después no va a encontrar como decir que NO. Y? Estamos en lo correcto al creer esto? Claro, es justificable porque pasa, las empresas te negrean porque eres buena gente y decides quedarte horas extra y dedicarte al proyecto, y por otra parte la empresa pierde cuando contrata al super-empleado que lo único que hace es trabajar pocas horas al día ya que sus necesidades son bastas (tiene que ir al baño, tomarse un café, platicar por los pasillos, etc..) y jamás jamás actualizarse en lo que implica su carrera, para que? Eso que me lo de la empresa, y que me toque irme fuera de la ciudad de curso, pá conocer otros lugares.

Ahora, imaginemos un mundo paralelo otro universo como la física cuántica donde se toman otro tipo de decisiones. Existe la empresa que busca conservar a sus empleados y el empleado que desea superarse y aportar a la empresa. Ambos tienen una simbiosis estable en la que dan como reciben de forma pareja. La empresa tiene un gran plan de vastos cursos para mantenerse actualizada, paga horas extra, propone planes para tomar dimplomados y certificaciones entre los empleados y así tener al mejor equipo de trabajo siempre actualizado, se preocupa por actualizar sus productos y estar siempre a la vanguardia, cuando llega el momento promueve a sus empleados si no es de puesto aumenta su salario conforme a su conocimiento adquirido. El empleado es una persona altamente capacitada con aspiraciones a seguir creciendo, deseoso de recibir capacitaciones, de proponer nuevas metodologías, técnicas, etc., se preocupa por tener el trabajo a tiempo tomandose tu tiempo para sus necesidades y si la empresa le pide quedarse para sacar un trabajo extra él está seguro de que se le pagará por ello, se esfuerza por estar actualizado y a la vanguardia, y sobre todo aporta su conocimiento a la empresa.

Salgamos de ese mundo y regresemos a la realidad. Las empresas no dan ese apoyo porque creen que es darle al empleado para que después se largue con otra empresa llevandosé toda la inversión que hicieron en él, pero jamás pensó en aumentarle el sueldo por poner de su parte para aprender, capacitarse y actualizarse. El empleado no pone de su parte para actualizarse, vive de lo que le enseñaron en la escuela, y se preocupa únicamente por sacar su chamba en las horas laborales sin importar si entrega o no a tiempo. No sé si pueda existir esta simbiosis de forma equitativa ya que las empresas solo buscan ganar dinero, poder y terreno y los empleados o buscan vivir cómodamente con un sueldo aceptable, con prestaciones de ley con un contrato indefinido y un super plan de jubilaciones, ó buscan por el lado intelectual en el que actualizas/capacitas buscando mejorar en puesto y en sueldo para que después de unos años de chinga te toca ahora sí vivir cómodamente ó tener tu propia empresa o lo que sea. Pareciera que ambos lados pierden en algún momento y probablemente así sean. Por lo que concluyo en que así como mencionan, las empresas no saben dónde buscar buenos Desarrolladores tampoco saben que hacer con ellos una ves que los tienen y de igual forma cuando te contrara una buena empresa y aún no eres un buen desarrollador deberías aprovechar y hacerte un buen desarrollador y no conformarte con trabajar por trabajar. A final de cuentas los trabajos se empiezan a volver aburridos porque es dificil que una empresa siempre esté cambiando de proyectos y poniendote nuevos retos casa 6 meses pero las cosas se pueden poner interesantes si ambos ponen de us parte.

Acabo de ser testigo de un

Acabo de ser testigo de un método de reclutamiento que me parece simplemente genial.

Pair programming interview, yeah!!

El reclutador y el entrevistado se sientan en la misma máquina, el entrevistador maneja y le hace preguntas al entrevistado:

Entrevistador Voy a hacer esto, que necesito?
Candidato Uhh.. .necesitas esto esto y lo otro
Entrevistador Ok, pero eso me saldría mal si A, B C, que otra alternativa?
Candidato Ah , claro que que C, y B y A son shalalal. Entonces necesitaríamos D

Y así sucesivamente.

Me parece que así el entrevistador puede realmente ver como trabaja el entrevistado, si pregunta, si le entiende, si sugiere. etc.

Lo único malo es que esto serviría mucho solo para lugares donde se continúe esta práctica, de otra manera la entrevista evaluaría aspectos que después no se van a usar.

Muy interesante eh..