Empecemos con: Que es ser un programador de verdad? Hay muchas formas por la cuales uno puede evaluar las habilidades de alguien como programador: experiencia, dedicación, destreza, entusiasmo, etc. Pero cuando se piensa evaluar a alguien para una posición en una compañía generalmente se hace probando su memoria.
Me explico, muchas o la mayoría de las compañías creen tener un filtro efectivo para los solicitantes no calificados. La forma en que se basan para seleccionar es por decirlo así probando la memoria del solicitante. Lo que creo que es un método erróneo. Si hay algo que se aprende en la vida es que los exámenes estandarizados son una terrible manera de medir las habilidades o la inteligencia.
Pero volviendo al punto, creo que es la manera incorrecta de identificar a un buen programador. Mi definición de un programador autentico.
Es un programador auténtico? Hay una frase muy acertada:
Citar
"La sabiduría y la disciplina son lo que han despreciado los que simplemente son tontos" – Salomón.
Tener un diploma de universidad no es lo que toma o requiere para ser un buen programador. El hacer o diseñar una aplicación y llevarla a producción no requiere el que uno memorice técnicas de programación a bajo nivel o ciertas formulas matemáticas. Claro estas son herramientas las cuales son geniales tenerlas a nuestra disposición, pero en realidad no son el santo grial ni mucho menos del desarrollo. El punto es la resolución de problemas, las maneras mas elegantes y eficientes de resolver dicho problema siendo esto que las circunstancias lo permitan.
Siendo un programador se presentará con problemas que resolver todo los días, y es su trabajo buscar la manera como resolverlos. Para hacer esto necesita saber que son capaces de hacer las herramientas a su disposición, esto viene dado de acuerdo a la experiencia. También se tendrá que escoger entre varias soluciones posibles la más conveniente.
Ahora, este es el punto al que quería llegar, usted no se sabe todas las soluciones posibles a un problema y nunca lo hará. No me importa que tan experimentado como programador sea, cuanta educación se tenga, cuanto código haya dado en su vida. Nunca sabrá todas las soluciones o formas de resolver un problema, es imposible para un ser humano imperfecto tener todo conocimiento. Entonces se necesita tener una mezcla de creatividad y recursos que te lleven aprender como resolver nuevos problemas.
En realidad sabemos que en este campo como en muchos otros, nunca se acaba de aprender.
Experiencia como programador
He trabajado como programador empleado como peón, también de forma independiente como freelance. También he estado en el banquillo cogiendo un examen o test para “medir” las habilidades que poseo. En la vida he llegado a una cuantas conclusiones.
Aunque me considero muy bueno en lo que hago, no soy Salomón con su gran sabiduría.
Es sumamente difícil decir si alguien es buen programador o no solamente viendo su currículum, o en la entrevista.
He visto muchos que se expresan muy bien y te hacen creer que son la crème de la crème, sin embargo a la hora de sacar a relucir sus habilidades resultan ser unos aguajeros en buen dominicano. He visto otros un poco mas tímidos que resultan ser excelentes en realidad.
Como encontrar un buen programador?
Aunque la verdad es que regularmente hay una disyuntiva entre lo que dice ser un candidato o lo que esta plasmado en su currículum y lo que es capaz de hacer. Es por eso que probar a los candidatos es una buena idea, pero hay que probar su habilidades y destrezas a la hora de resolver un problema. El probar el conocimiento de un candidato en técnicas oscuras o patrones de diseño significa dejar pasar a una gran cantidad de candidatos excelentes, solamente por no recordar ciertas cosas que en realidad no necesitan para ser buenos programadores.
Por lo que he visto es fácil separar a los débiles de los fuertes: seguir el proceso normal de entrevista para ver si usted puede trabajar con esta persona o no (La verdad es para esto que las entrevistas son en realidad). Entonces dele un pequeño proyecto, algo que sea realista y se parezca al trabajo real a desempeñar y proceda enviarlo a casa. No es un examen para probar su conocimiento, sino que desarrolle algo que cumpla con unos requisitos reales.
Cuando obtenga los resultados en el tiempo previsto, sabrá si tiene a alguien que vale la pena. Esta hecho de la manera esperada o mejor? Posee alta calidad, tiene algún nivel de análisis? Se lo entrego racionalmente rápido? Hizo algo de manera que mostró destreza? Si fue así, Felicidades ha encontrado un excelente programador.
Buscar en google no es ser mal programador
Muchos dirán que si se da un proyecto a una persona para que se lo lleve a su casa, este copiara todo lo referente al mismo de google. Pero esto muestra que tiene la capacidad de adaptarse y aprender rápidamente. Tengo un gran respeto de las personas que cuando no saben el como resolver un problema complejo pueden rápidamente encontrar la manera como hacerlo sin molestar a los demás.
Además recuerde que un programador nunca deja de aprender. Google es una de las mejores herramientas para aprender. Se puede aprender y aumentar las habilidades sin necesitar de alguien mas. Entonces, no se puede menospreciar a alguien por usar una de las mejores herramientas de aprendizaje. Es más, aprender a utilizar esta herramienta es una de las cosas mas importantes que se debe hacer como programador; por que si se quiere crecer como programador esta es la herramienta a utilizar.
Alguien que sepa como buscar ejemplos de código y aprender del trabajo de alguien más, sera mas o menos auto-suficiente. La habilidad de aprender y aumentar los conocimientos es algo de suma importancia para los desarrolladores, pues de lo contrario prontamente se encontraran desfasados.
Claro está que se espera que la persona sepa el lenguaje y frameworks para los que fueron contratados. Pero encuentro que la mejor manera de juzgarlos es por el trabajo que entregan. Un persona que pueda descifrar como hacer algo de lo cual no tenia experiencia de manera rápida y de forma independiente, para mi es un programador autentico.
Altos estándares imposibles
Claro es demasiado absurdo el requerir el conocimiento de un 99% de algo que un programador no tiene necesidad en la vida real. Si se tienen estándares muy estrictos de contratación se encontrara con personas que solamente encajen en su modelo especifico, y su base de código sufrirá debido a esto.
El campo de la programación crece a un ritmo muy acelerado, todo los días uno se encuentra con alguna nueva innovación que a alguien se le ocurrió. Esta pequeña innovación se propagara lentamente y vendrá a ser parte en la caja de herramienta de los programadores. Esto ocurre por que a algún programador siendo creativo, intentó hacer algo de una manera diferente a la establecida.
Si su equipo consiste solamente de personas con los mismos antecedentes y habilidades, entonces la brecha para la creatividad sera realmente pequeña. Esto significa que no vera tanta innovación en su equipo como en uno compuesto con diferentes tipos de personas o más variado.
Muchas de las ideas alternativas tal vez no lleguen muy lejos. Pero siempre se encuentra esa única idea que revoluciono el trabajo o lo hizo más eficiente.
Ponga los pies sobre la tierra
Vamos a resumir todo:
Las personas que centran su búsqueda solamente basados en lo que se dice o en el currículum de alguien más que en sus experiencias o habilidades, va sufrir siempre de los mismos males.
No desprecie a alguien solamente por el hecho de que no cabe en la definición de un programador en su modelo, puede que este el cual esta rechazando sea mejor que usted.
Si 99 de los 100 candidatos falla en su entrevista, entonces usted esta buscando algo que no existe.
Sin un grupo variado de programadores, usted y su equipo sufrirán de falta de creatividad.
No examine un currículum, pruebe la habilidad de crear.
Si se siente como que termino de aprender, entonces su carrera como programador también ha terminado.
En conclusión
Busque a alguien que realmente entienda los conceptos, que pueda aportar ideas alternativas creativas, y que muestra la habilidad de crecer como programador. De esta manera encontrara un programador autentico.
Fuente: :http://virtnetsolutions.com/
saludos...