Es un enunciado que atrae varios lectores e irrita a los programadores. Ni vamos a hacer la defensa, ni vamos a acusarlos. Pretendemos prender la luz para que los que saben de programación nos muestren el camino correcto.
Dicho esto, quiero platear la relación de variables con las que juega Alan Skorkin, un experimentado desarrollador de software. El entra en argumentos del por qué en el cerebro de varios empresarios persiste la idea de que están contratando solo al 1% de los mejores programadores.
La cuestión que hay que preguntarse es si cuando se hace tal aseveración, hablamos de x de y aplicantes, o se trata de x de y desarrolladores en ejercicio. Pero la temeraria pregunta del por qué los programadores no pueden hacerlo, puede tener otra explicación. Qué tal si en vez del juego de variables anterior, reducimos el rango y se plantea como X de Y aplicantes para la posición anunciada por tal compañía, no pueden programar. Tiene un poco de más precisión, no?
La explicación está en que por más que uses los mejores trucos publicitarios, eso no garantiza que tengas a los mejores codificadores y programadores. Si las compañías tratan de atraer talento en una forma tradicional, lo que obtendrán es una respuesta así mismo muy general.
Hay que ver quienes son los entrevistadores para la posición en primer lugar. Pues muchos pueden descartarse por el solo observar de su currículum vitae. Pero el problema es que eso puede dar una impresión muy alta de una persona que no necesariamente lo representa.
La solución sería preguntar simples preguntas de código. Quien de ustedes puede escribir una función C y revertirla como lista? Es casi imposible que desarrolladores Kernel y los PhD no puedan hacerlo.
Toda esta teoría no ha podido ser demostrada y lo que se estima, en términos de Skorkin, es que no es problema del candidato a convertirse en programador en esta o aquella compañía, el problema es que la forma como se lo contrata es incorrecta.
Como este tipo de «estadísticas» dañan la imagen de los programadores, solo nos queda una pregunta final. Cree usted honestamente que la mayoría de los desarroladores con los que actualmente trabaja tienen problemas con una secuencia de instrucciones o aritmética básica?
Para este post también contribuyó Gustavo Martinez.
[Fuente Skorks][Imagen CC phil-jackson]
El porcentaje me parece altisimo… El verdadero programador entiende cualquier cosa…
Desde mi experiencia, programar no es solo saber como se escribe un ciclo for, o saber la diferencia entre usar un Switch o un Case a varios if. Saber programar es saber hacer una función que reúna ciertas caracteristicas:
– Con la menor cantidad de código posible
– Con la mayor eficiencia posible
– Con la mayor claridad posible
– Con la mejor arquitectura según sea el caso
– Tomando en cuenta la seguridad
– Correcto manejo de excepciones
– Correcta validacion de datos entrantes (nulos, vacios, formatos, etc)
– Correcta validación y manejo de datos salientes
– Tomando en cuenta que otros programadores deben poder entender fácilmente
– Muy importante con la suficiente e inteligente documentación.
– Y creo que una de las más importantes, siempre hacer UNIT TESTING en un ambiente los más parecido al de producción.