Anecdotas

Gracias

Comentarios

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.
Imagen de Marce

se me ocurre

En realidad es algo que se está volviendo común entre los desarrolladores, o como tú lo dices los que se CREEN desarrolladores en fin, siempre será dificil comprobar que eres un buen programador por que la definición de programador ya es muy relativa, hay quienes se especifican a lo que sabe de lenguajes de programación, a sus niveles de abstracción de problemas, o su buen análisis etc... pueden ser muchos los factores yo creo que ni certificaciones ni tests ni nada de eso te da la seguridad de que la persona que lo tenga en verdad lo valga.

Aquí más bien ya entra el juicio de cada quién, creo que es bastante obvio cuando una persona fanfarronea y dice que él sabe todo y en realidad no ha hecho nada y uno se da cuenta cuando no te lo pueden probar o hablan cosas que no son ciertas. En fin, a final de cuentas el papelito habla y eso es muy cierto las empresas se dejan llevar mucho por las certificaciones, diplomados etc. y realmente comprobar que al contratar a alguién no te está engañando es muy dificil yo creo que ahí ya tendría que entrar un test psicológico o algo así jajaja por que engañar es muy fácil.

Por lo pronto a seguir pasando corajes con los jefes que no saben y los que tienen mejor puesto a base de engaños... bla bla bla la historia de siempre :)

Imagen de ezamudio

Examen

El examen práctico en un ambiente offline creo que sería la manera más efectiva, el problema es diseñarlo porque debe ser muy distinto según el perfil que buscas.

PHP es el visual basic del nuevo milenio, es en lo que se especializan todos los que no la hacen en otras plataformas, los que están un pasito arriba de script kiddies. El lenguaje y la plataforma han mejorado bastante pero la baja curva de aprendizaje hace que muchos que solamente lo manejan a nivel muy básico se sientan programadores super expertos.

Y por esto que mencionas es que ya muchos desconfiamos de las certificaciones. Al final contratar un programar no es tan distinto de programar una muchacha que te haga la limpieza en tu casa: mejor alguien por referencia, que alguien más conoce, que te dicen que programa bien, que entrega las cosas a tiempo, que no le vende tu código a otro cliente, que es de confianza, que no te va a dejar todo botado a la mitad del proyecto, etc.

A mí cuando me ha pasado eso de que me llaman para pedirme ayuda y me dicen que sólo me pueden pagar ${UNA_MIERDA} para terminar el proyecto que otros no pudieron terminar porque ya les pagaron y se lo gastaron, me desespera mucho. Si me entero que todavía tienen contacto con ellos les digo que entonces pues los demanden o algo para que les devuelvan el dinero porque a fin de cuentas no entregaron nada; si no hay contrato y no pueden o no quieren meterse en broncas para obtener esa lana que los programadores se llevaron fraudulentamente (porque sí, efectivamente, si dices que le vas a hacer un sistema a alguien y a la mera hora te quedó grande el proyecto y no puedes entregarlo, pero te quedas con la lana, ESTAS COMETIENDO FRAUDE), pues ya al final les digo que ni modo, eso les pasa por no hacer contrato, por irse con los que quisieron cobrar barato al principio, y sinceramente yo no tengo por qué aceptar mala paga por entrar a un proyecto que ya está en el caño. Soy programador, no plomero, ni conserje, así que no voy a aceptar que me paguen una bicoca para limpiar el cagadero que dejaron unos ineptos que ya se quedaron con el presupuesto del proyecto. Mal por ellos y mal por el ciente.

Imagen de rodrigo salado anaya

Podrías ...

Podrías tal ves demostrarte ser un buen programador si te dan un programa ( pequeño de preferencia ), y la salida que produce ( en consola ), y te piden que expliques que es lo que hace en forma de pseudocódigo, agregando dificultad al modificar dicho código para producir la salida que te pidan ( que sea posible claro). Otra cosa que pienso, es que en estos tiempos un buen programador, debería de tener las habilidades y destrezas para manejar herramientas de versión, o a lo mejor de pruebas unitarias y etc ( que las aprendo solo hasta que me son necesarias, upss). Un buen programador debería saber trabajar en equipo (con mas desarrolladores), si no el resultado final podría ser un tremendo Big Ball of MUD.

Nota:Un buen programador, podría estar en incubación, podría estar en una monografía o podría estar en una hamaca. Solo rascándole a los trastes se les quita la mugre :)

Suerte :D

Pues generalmente cuando

Pues generalmente cuando alguien me dice: "Soy experto en [lenguaje] y tengo el [certificado]", lo que hago es preguntar: "Dime al menos el nombre de 5 patrones de diseño y en qué consiste cada uno"...Con eso es simple ver si es un hijo de vecina que al no existir una versión de FoxPro para web y no fueron capaces (realmente) de pasarse a cualquier otro lenguaje. Lo mismo pasa con los sabios maestros VB6 que al pasarse a VB .NET quedan asustados al ver OOP.

Francamente para encontrar un programador (no bueno, ya únicamente programador) es muy difícil, gracias a que los que son titulados de alguna universidad tuvieron oportunidad tras oportunidad tras oportunidad.....hasta que hubo un alma piadosa que dijo: "Con que hagas un trabajo sobre [tema], el [mínimo aprobatorio] es tuyo"; lo que resulta en gente que pseudo-programa y al llegar a los empleos pseudo-profesionales y que al final terminan en otra cosa no-relacionada con programación.
En otro lado tenemos los que después de estudiar, siguen y siguen estudiando hasta que se dan cuenta que a los 30 (o más) años no es una buena referencia 0 experiencia en el mercado laboral a pesar de sus más de 800 certificados en 800 tecnologías diferentes. Los cuales nunca se empaparon del mundo real, o simplemente era: "Pague aquí" (y a 5 minutos/metros) "Recoja su título aquí", ¡y listo!, eres un "Programador certificado" (nótese las comillas).

Imagen de VictorManuel

Yo opino

Yo opino que no hay malos programadores, basicamente es la experiencia, y pues no tiene caso aprenderse miles de lineas de codigo de memoria, solo entender la logica del lenguaje o los dif lenguajes que manejariamos, tener en conciencia unas cuantas cosas de teoria claro esta para saber de donde salen las cosas, yo creo que lo que hace fuerte al programador es la experiencia, no es lo mismo un morro que lee el deitel aprender a programar en java y hace todos los ejercicios y se los aprende de memoria y sabe toda la teoria, a un tipo loco geek que ha leido el libro pero no ha hecho los ejercicios pero ya lleva 2 años programando sistemas en java

Imagen de ezamudio

no hay?

Yo opino que no hay malos programadores

No. Lo siento. Estás mal. No es cuestión de opiniones; muchos hemos conocido en persona a malos programadores. No es falta de experiencia; también hay aptitudes, o en este caso, falta de. Hay gente que la programación simplemente no se le da, no es algo que entienda, y por lo tanto no importa que lea el libro porque no le entiende y si lo vuelve a leer se queda igual. Como muchas otras disciplinas, la programación no es para todos. Tal vez deberían hacer como en la escuela de medicina, abrir un cadáver para que los que se desmayen ya le piensen mejor si quieren seguir en eso porque a lo mejor no es lo suyo, sólo habían pensado en tener su consultorio muy lindo y un Mercedes pero no tenían idea de lo que realmente es la medicina. Pero no sé cuál sea el equivalente en sistemas... exponerlos a código espantoso y si NO se horrorizan, es que no son buenos?

Yo evaluo

1ero evaluo su CV si tiene certificados, diplomas, de que universidad viene
(importante la referencias, verifico la informacion q ponen en los CV)

2do un examen tecnico para desarrollar un caso en papel (Diagrama de clases, Pseudocodigo)
despues un exmane de conocimientos para marcar, examen de ingles, examen rapidez mental y finalmente un examen psicologico

3ro en la entrevista, evaluo la parte de desenvolvimiento, y su personalidad, la experiencia, preguntandole

examenes 50%
entrevistas 50%

99% de los seleccionados han podido sobrevivir y despues de 3 o 5 meses
producir de un rango esperado - a bueno
despues de 12 meses ya esta produccion mas de lo esperado

Asi es como yo selecciono a mis programadores (yo si considero que tener un certificado tiene peso. pero dependiendo de quien de ese certificado)
la experiencia tambien considero importante.

Malos programadores...si hay

Yo opino que no hay malos programadores...

@VictorManuel, lamentablemente si los hay. Basta que te des una vuelta a algunas consultorias, oficinas de gobierno y/o escuelas y ahi encontrarás algunos. Programar no es aprenderse los ejercicios de memoria ni haber leido muchos libros.

Consiste en encontrar soluciones.

Certificaciones...lamentablemente una necesidad

Las certificaciones se están convirtiendo en algo necesario a la hora de postularte en un trabajo.

Basta checar el PERFIL del vacante.

Ejemplo. Master o Senior Java con más de 5 años de experiencia en desarrollo Web, XML, WebSphere, AJAX, etc.

Empresas como Micro$oft tienen convenios con empresas para OBLIGAR a sus empleados a certificarse en sus plataformas. Para un jefe es más "factible" contratar a un programador certificado que a uno que dice programar en X lenguaje.

Imagen de VictorManuel

SImón

Si, tienen razón, no lo habia visto de esa manera, aunque a mi parecer la programacion se necesita mucha logica, y pues como programadores debemos desarrollarla al maximo y que mejor que tomando experiencia no?, diciendo si ya me queme ya no vuelvo a hacer eso, no se para mi un ejemplo seria el tipo de plataforma que usaras para un proyecto, si viste que con esa te tardaste tal vez era robusta y creaba pex al cliente no lo volveras a hacer, yo apenas estoy estudiando, si desarrollo software pero para una empresa publicitaria, son proyectos pequeños, no he estado en proyectos grandes,,,, :o!!!!! expliquen si estoy bien o estoy mal. :\

No importa la plataforma

Importa QUIEN la maneja.

Por ejemplo (en forma de alegoría). En una carrera de autos. No por tener la mejor máquina (motor) ni el mejor equipo me convertire en el mejor corredor. Si no sé como encender el auto entonces ya perdí la carrera.

Imagen de bferro

Programar es algo más que programar

Aquí les dejo unas notas (tienen 10 años) de Edsger W. Dijkstra. Las dejo en inglés.

A programmer has to be able to demonstrate that his program has the required properties. If this comes as an afterthought, it is all but certain that he won't be able to meet this obligation: only if he allows this obligation to influence his design, there is hope he can meet it. Pure a posteriori verification denies you that whole-some influence and is therefore putting the cart before the horse, but that is exactly what happens in the software houses where "programming" and "quality assurance" are done by different groups. [Needless to say, those houses deliver without warranty.]

The required techniques of effective reasoning are pretty formal, but as long as programming is done by people that don't master them, the software crisis will remain with us and will be considered an incurable disease. And you know what incurable diseases do: they invite the quacks and charlatans in, who in this case take the form of Software Engineering gurus.

We should never forget that programmers live in a world of artefacts, a fact that distinguishes them from most other scientists. The programmer should not ask how applicable the techniques of sound programming are, he should create a world in which they are applicable; it is his only way of delivering a high-quality design.

Imagen de luxspes

Mas datos por favor: Que certificacion exactamente?

Me sorprendió la noticia de que una amiga tiene el “Nivel master en PHP”, no por el certificado sino porque NUNCA HA PROGRAMADO en su vida.

Triste caso... pero da mas detalles, segun quien tu amiga es "Nivel master en PHP”. Quien le emitio el certificado? (No es lo mismo que te lo de Fulanito de Tal en su instituto "En su pueblo lo conocen" que por ejemplo (en el caso de PHP) que te lo emitan los de Zend. Otra cosa que habria que verificar es si efectivamente paso el examen de la institucion que la nombro "master", en mi trabajo actual me toca entrevistar a mucha gente y a menudo presumen de "Certificacion en X" cuando en realidad ya revisas mas a fondo es mas bien "Tome un curso de X para la certificacion" y nunca presento el examen.

Es de las clásicas que paga por que le hagan su trabajo.

Eso si es poco comun (lo veia en la escuela, pero en el trabajo es raro)... y cuanto paga? (Podria valer la pena no? ;-) )

Ante cualquier problemita corre a ver quien le ayuda a resolverlo. Pedir ayuda no es malo (yo también he pedido ayuda), pero que hagan al 100% tu trabajo y gratis si lo es.

Totalmente de acuerdo.

Le pregunte cómo le hizo, según ella el examen (de certificación) estuvo muy fácil y lo contestó sin estudiar.

Llegan a mi mente otras respuestas:

* El examen estuvo regalado, cualquiera lo pasa
* Le ayudaron a pasarlo y/o hizo trampa
* Ser programador PHP no requiere saber de programación
* Basta con pedirle (de todo corazón) al hada de los dientes o a Santa Claus que te otorgue la facultad de ser master PHP.
* Porque a si son las cosas no hay que protestar

De nuevo, la certificacion de tu amiga, quien la avala? a mi me ha tocado ver empresas que te ofrecen "Certificacion en Java" pero que no tiene nada que ver con la certificacion oficial, es una que la empresa sencillamente se invento... no sera el caso de tu amiga?

Hace tiempo tengo la duda de cómo determinar el nivel de programación (sic), la verdad no he encontrado la respuesta.

Dificil problema.

Se me ocurre alguna alternativa como la de:

Someter al programador o programadores a una serie de problemas y ejercicios de programación
(no solo el Hola mundo ni el factorial de un número) y ver cómo los resuelve sin "checar el código por Internet"
,y hacer una evaluación y análisis de resultados que ayuden a determinar que tanto sabe (o que no sabe).

Si, aunque es dificil, pero que habilidad para el hola mundo o el factoria no siempre indica que sera capaz de construir una aplicacion N-Tier con Java RMI, Swing y JPA. (Y si eso es lo que necesitas, el cuate no te va a servir, al menos no en el corto plazo)

Otras alternativas serían las certificaciones y los test, pero como veo creo que no. Los test tienen muchas fallas hay quienes sacan alto puntaje y no saben que contestaron. Y de las certificaciones es peor, algunas certificaciones como M$ Framework .Net basta que tengan el suficiente presupuesto ($) para obtenerla, sin siquiera saber qué es .Net y nunca haber programado (o u$ado) esa plataforma.

Si? Lo has experimentado de primera mano? (Prueba ir a presentar uno sin saber que es .NET a ver si pasas, la oportunidad para presentarlo cuesta $2000 ;-) ) Yo he conocido a certificados en .NET (yo mismo estoy certificado y si bien es cierto que pagas por presentar el examen (igual pagas para presentar el de Java o cualquier otro), si no pasas el examen, pues entonces tienes que volver a pagar para volverlo a presentar... desde el punto de vista de quien te certifica, es mucho mejor negocio reprobarte...) y si bien la certificacion no es garantia de que el cuate efectivamente es super ducho en la herramienta, si funciona en general como un diferenciador con respecto a otro que no tiene la certification (es un factor mas a considerar), especialmente cuando se contrata a alguien con pocos años de experiencia (si acabas de salir de la universidad, en mi opinion, en muchos casos puede hacer toda la diferencia del mundo)

Y para rematar hay quienes tienen certificación de nivel master y senior y no le entienden a "su propio código". Te piden por ejemplo, que les ayudes a modificar un software hecho en Kepler (si Kepler, ¿alguien ha programado en ese lenguaje? yo no) , quieren que en TRES DÍAS programes un módulo de impresión de facturas (vía Web, cliente-servidor,etc. exigentes los señores)cuando ellos lo han tenido por más de año y medio y no han hecho NADA.

Es gacho, definitvamente, un googlazo rapido no revelo nada sobre un lenguaje Kepler... cual el el sitio del fabricante? No te estaras refiriendo al proyecto Kepler? (En el cual se programa con el lenguaje Lua?)

Te llaman por teléfono ofreciendote trabajo argumentando que SE DIERON CUENTA que sus programadores PHP nivel Senior y Master NO SABEN PROGRAMAR y que metieron a su empresa en un gran problema (según ellos Kepler es muy sencillo).

Pues si es el Kepler que yo encontre, estan en un problema, por que ahi se programa en Lua, no en PHP (y ciertamente, contratar developers de PHP para programa en Lua seria un gran error si no tienes planeada alguna estrategia para lidiar con la curva de aprendisaje)

Necesitan entregar un sistema a más tardar en una semana y que solo te pueden pagar esa cantidad por que eres free lance y porque lo demás se lo gastaron.

Yo se de freelanceros que ganan 10 veces mas... asi que yo diria que mas bien estan queriendo verte la cara...

Me hubiera gustado grabar la conversación donde se escucha claramente como el Ing. que me llamo regaña a los señores PHP (con todo y groserías). Todo porque le dije que tres días eran muy poco tiempo para terminarlo y no acepté el trabajo.

Bien hecho.

Certificación PHP de Zend, exactamente

Sobre Kepler o Keppler, como mencione yo nunca he programado en ese lenguaje. De hecho estuve buscando info en Internet sobre ese lenguaje, y no he encontrado algo relevante.

Según un compañero de la escuela SI EXISTE ESE LENGUAJE, supuestamente hecho en Visual C++ (?). Pero busqué más y encontre la liga Kepler. No se si se traté de este o no. Pero me decia el Ing. que me llamo que se podia crear una interfaz con PHP , y sus master no pudieron.

Sobre el pago de los TRES MIL PESOS, nunca hubiese aceptado esa cantidad. Hay quienes por un programita cobran hasta $10,000.00 o más, se nota que querian " de a gratis y de buen modo".

De hecho también dude sobre la certificación PHP, se me hizo bastante raro que ella sin saber programar lo hubiese aprobado. Creo que pasó algo extraño (o sacarles dinero, tal vez).

Imagen de luxspes

Zend? Pero para sacar dinero es mejor reprobarte....

Certificación PHP de Zend, exactamente

Si es la de Zend me sorprende mucho...(por que el unico programador de PHP "decente" que conozco esta certificado)...

De hecho también dude sobre la certificación PHP, se me hizo bastante raro que ella sin saber programar lo hubiese aprobado. Creo que pasó algo extraño (o sacarles dinero, tal vez).

Pero para sacar dinero es mejor reprobarte... (asi te cobro el examen varias veces....) ... quien sabe que pasaria...

Imagen de luxspes

Verificacion: No sera que en realidad no lo presento?

Cabe tambien la posibilidad de que ella este mintiendo... en las certificaciones de Microsoft te entregan un ID number que tu puedes darle a otros para que verifiquen que efectivamente estas certificado directo en el sitio de Microsoft...
Mmm, parece que para Zend hay algo parecido: Buscar personas certificadas en PHP por Zend

Me pregunto si tu amiga aparecera al hacer una busqueda ahi...

Imagen de luxspes

De acuerdo con el sitio de Zend, todos los certificados son...

De acuerdo con el sitio de Zend, todos los certificados en Mexico (solo son 32 personas) son... del sexo masculino (al menos por los nombres)

Tu amiga es gringa? (o fue alla a presentar el examen?) o de que pais son?

Si,algo muy extraño

Y más si lo contesto "sin estudiar". Según yo, las certificaciones no las obtiene cualquiera, pero con tal de cobrarles tal vez le dieron una quien sabe.

Para mi fue una certificación pirata. En México hay quienes tienen título de médico, abogado, etc. sin haber terminado la primaria.

Ya cheque la lista...y

No está. Para mi fue una pirata (la certificación). Puros hombres aparentemente en la lista.

Imagen de fcodiaz

Experiencia

pues para mi no hay como la experiencia, es una lastima que vivamos en un sistema donde lo mas importante son los títulos que ostentas, y la experiencia pasa como segunda o algunas veces como tercer parámetro a valorar por que algunas veces hasta la imagen pesa mas que la misma experiencia y títulos que puedas tener, en mi caso fui instructor en un CONALEP y ya tengo ratio desarrollando, pero he visto como en las escuelas y universidades obligan a los docentes a pasar a todos y cuando uno se pone en el papel es que este chavo no da una que mejor se cambie de carrera o que repita el curso te metes en una de brocas... U.u #mehapasado!... al igual en universidad he tenido compañeros donde digo pobre de este chavo terminara siendo Ingeniero o licenciado pero pues solo nombre por que se que no da el ancho para una chamba en el área de TI'c U.u.. la verdad a mas de uno si le he dicho: " la verdad.... ¿por que no te cambias de carrera?..." pero alli siguen ... pobres!!.. lo malo q estorban para el filtro y para encotrar a las personas q en realidad sirva mas que si estas no se saben vender habra muchas personas que se desanimen por no encotrar trabajo..

creo que lo mejor es tomar las pocas oportunidades cuando estas empesando no importe que te paguen poco, aprobecha tus practicas, si se te ocurre un proyecto desarrollalo en tu tiempo libre liberalo en GNU/GPL, y gana sobre todo experiencia las certificaciones ps solo es un plus en ambito muy formal(trabajos de gobierno y escuelas q por lo regular las vacantes ya estan ocupadas x los hijos de los conocidos) a las empresas en sector privado les importa que sepas y tu experiencia, el papelito solo es una credecial, yo en lo personal trabajo con un amigo/compañero que tiene carrera trunca pero que es muy bueno programando y conosco yo creo unos 70 lic e ingenieros entre compañeros de carera y conocidos y la verdad a 3 recomandaria y la persona que mas recomendaria ni un TSU pudo terminar..

creo que el programar mas q un conocimiento llega a ser una avilidad que no se le da a cualquiera!

Un programador es finalmente

Un programador es finalmente una persona, y como tal, todo en ella es importante.

Si tiene una certificación, que sea una certificación reconocida, por ejemplo en Java la de Sun ( ahora de Oracle ) y no la del "instituto viva méxico" o algo así.

Si tiene una certificación reconocida, es muy importante que la complemente con experiencia profesional y real.

Si tiene certificación y experiencia, es importante que sepa comunicarse y trabajar en equipo. Si su conocimiento vale por el de tres personas, ese mismo conocimiento con capacidad de comunicación podría fácilmente multiplicarse por diez.

Hay otros aspectos laterales que también son importantes. Por ejemplo como viste, como habla, como se comporta. Aunque pareciera que este tipo de aspectos, son "superficiales" complementan a una persona y hablan de ella.

Por ejemplo, alguién puede vestir con mezclilla y camiseta y tenis y traer el pelo largo, pero si notas que esa persona, no ha lavado el pantalon en su vida, los tenis que fueron blancos alguna vez, ahora se ven de un asqueroso color marrón y la camiseta tiene hoyitos ( o se le nota la mugre en la piel o en los dientes etc. ) Sería realmente increíble, que su código fuera limpio y fácil de mantener. Sería increíble que pudiera seguir un plan y entregar a tiempo, sería sorprendente que su trabajo tuviera calidad, si su imagen personal no lo tiene.

Si en cambio, viste de igual manera, con camiseta, mezclilla y tenis, pero se ve aseado ( uñas cortas, dientes limpios, camisa y pantalones lavados, tenis limpios ) entonces esa persona proyecta orden y sería más creíble que el código que produce es ordenado. Sería más creíble que si hay algun bug, al resolverlo dejará las cosas mejor, y no que creará otros en el proceso y todo el código hecho un batidillo.

Es como un programa. Si tiene una interfaz horrible, no importa si abajo tiene el mejor algoritmo. No va a tener buena aceptación. Pero igual, de nada sirve una interfaz muy atractiva, si por debajo esta todo vacío.

Entonces en resumen: Entre dos personas con igual experiencia ( nula o mucha ) yo preferiría al que tenga una certificación reconocida. Ante dos candidatos con la misma certificación y experiencia, yo preferiría al que tenga mejor capacidad de transmitir ese conocimiento a los menos experimentados. Ante dos candidatos con la mismas certificación, experiencia y capacidad de comunicación, yo preferiría al que refleje en su persona, que lo que hace, lo hace con calidad, al que su aspecto dijera que le importa hacer bien las cosas sobre aquél cuya imagen pública dijera, en mí todo es tán desordenado, que hasta se me nota.

Imagen de ezamudio

Certificaciones que valgan

Este post acerca de certificaciones que vale la pena tener creo que hace mucho sentido, pero creo que no conozco una sola certificación como la que mencionan.

Ejemplo de un código master

He aqui un ejemplo de código escrito por un master:

<?php

function Sumatoria(){
return 1+2+3+4+5+6+7+8+9+10;
}

$Ver=Sumatoria();
echo "La sumatoria del 1 al 10 es",$Ver,"<br/>\n";
?>

¿Qué hace el programa? la sumatoria del 1 al 10. ¿Y si quiero la sumatoria del 1 al 100?, fácil escribo otras 9 funciones más y como ya tengo la sumatoria del 1 al 10 la segunda va a ser la sumatoria del 11 al 20 y así sucesivamente (sic)

Imagen de rodrigo salado anaya

Entender, escribir y leer código

Tarde mucho en encontrar la liga, pero este vídeo describe al inicio unos puntos interesantes :D
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6...

Se me hace gracioso que usen tiza en el MIT, jejeje.

Buen ejemplo

A mi me huebiera gustado tener clases de programación a este nivel.

En México lamentablemente hay "profes" que nunca han programado (gracias ceneval) y se atreven a dar clases de programación.

Y terminan afectando en gran medida a los estudiantes. No es lo mismo entrar a la sala de cómputo a copiar y pegar el código de algún sitio, ejecutarlo y esperar "a ver que hace" que escribirlo desde cero .

Uno de mis primos es ing. en mecatrónica, tomo clases de programación en C/C++ (para programar PICs y AVRs) en Cuba, y dice que los programadores de allá tienen mejor nivel de preparación que los mexicanos. Según el "cualquiera de ellos sería maestro en México".

¿Le creemos?, ¿Es mentira?, o lo dijo solo por molestar.

jajaja a mi se me hace más

@Rodrigo:

jajaja a mi se me hace más gracioso que digas "tiza" en vez de "gis" :)

Los videos del opencurseware son la neta. Lástima que no todos tienen videos. :)

@Carraro:

Híjole mano, no es por empezar una guerrita ni nada, pero casualmente he oido mucho eso de estudiantes del IPN.

No sé si en mi UNAM están igual y yo tuve mucha suerte, por que de 10 me tocaron 3 maestros super super buenos.

Algo que tenían en común es que los tres ya era más bien grandes y habían estudiado "informatica" cuando era una especialidad de elite ( en los 70's )

Lamentablemente

Otro punto que he visto es que la mayoria de los Profes son recien egresados, que no tienen nada de experiencia, que nunca se han enfrentado a la industria y desgraciadamente piensan que la industria es semejante a la Escuela,. Pero esta de nosotros mismos el salir adelante, meternos en proyectos desde temprana edad para ir agarrando Experiencia.

Igual hemos tenido Muy Buenos Programadores (Miguel de Icaza, Francisco Mena, etc) Pero hay que echarle mas ganas.
Y respecto a tu pregunta, yo creo que si es verdad (lo de cuba)
Saludos.

Imagen de CybJer

Conocimientos y habilidades

Respecto a los profesores, como dije en un post que conteste hace tiempo, pues es parte el alumno y la otra del profe, porque aunque el maestro sea un verdadero Master, si no quieres aprender simplemente no sucede (Realmente creo que es mas responsabilidad del alumno).

Ahora y a riesgo de estar equivocado debo decir que la programacion es un conjunto de conocimientos y habilidades que en conjunto nos permiten teclear codigo. El conocimiento se aprende y las habilidades se desarrollan, por esta razon se debe evaluar cada una de los conocimientos y habilidades en diferentes exámenes.

Desarrollar un algoritmo (No uno comun) con pseudocodigo basta
Describir las salidas de un pseudo codigo
Que diseñe un pequeño modelo de una aplicacion sencilla
Un examen de OO (si el paradigma del lenguaje coincide)
Debuggear un codigo del lenguaje al que se postula el candidato (Excepciones, errores de compilación, en tiempo de ejecución,etc)
Pasar su pseudocodigo a el fuente del lenguaje al que se postula
Compilar y ejecutar.

Considero que con esas pruebas se puede determinar que una persona programa, el nivel dependería de los resultados en cada una de las pruebas y eso serian solo las técnicas faltaría un psicometrico para saber si el candidato soporta trabajar bajo presión y demás cualidades psicológicas que pudieran limitar su desempeño.

Considero que un examen offline no necesariamente obtendrás a los mejores si no a algunas mini-enciclopedias humanas

La verdad es que, las certificaciones definen la dedicacion, responsabilidad, tecnicas de diseño, desarrollo, modelado y el nivel al que conocen la herramienta. no cualquiera las pasa. Sin embargo no definen la calidad del programador.

Definitivamente, para un

Definitivamente, para un programador, una prueba de programación es escencial, chiquita, básica, sencilla, pero que pruebe que al menos sabe de lo que esta hablando.

En el blog de Jeff Atwood: Why can't programmers ... program?( ¿Por que los programadores no pueden ... programar? ) Menciona que hay candidatos que no solo tienen problemas con tareas grandes y/o intermedias, ¡sino con las más simples! Entonces antes de tomar más tiempo entrevistando a un candidato, ¿por que no hacerle una prueba como el "FizzBuzz" que es así?:

"Escribir un programa que imprima los números del 1 al 100, pero que para los multiplos de 3 imprima Fizz, para los multiplos de 5 imprima Buzz y para los multiplos de ambos imprima FizzBuzz"

Si de plano no puede con algo así ( o al menos de ese nivel ) entonces, le será muy difícil ganarse la vida escribiendo código.

Hay sitios que incluso van más allá y proponen por ejemplo medir la calidad del programador con programas de diferente nivel, con sitios que reciban el programa, lo compilen , ejecuten una suite de pruebas, lo evalúen automáticamente y lo califiquen. Esto serviría por ejemplo como un pre-entrevista tipo:

"Hola Oscar, te envio este link para que lo hagas antes de que te entrevistemos" El candidato puede hacer la prueba en casa y los resultados darían al menos una muestra por si vale la pena o no continuar con el proceso.

Aquí hay dos de ellos:

http://codility.com/ Tomén la prueba de "prueba"
http://www.codeanthem.com/ Aún esta en beta.

No parece tan descabellado. Así antes de hablar de la certificación en PHP ( o de al menos 5 patrones de diseño ) , le podriamos pedir al candidato que haga una pagina hola mundo en PHP.

:)

Imagen de ezamudio

fizzbuzz

Interesante... a veces con problemas así de simples puedes ver la manera de pensar de alguien. Lo primero que me vino a la mente:

101.times {
  boolean m3 = (it % 3) == 0
  boolean m5 = (it % 5) == 0
  if (m3 && m5) {
    println "$it FizzBuzz"
  } else if (m3) {
    println "$it Fizz"
  } else if (m5) {
    println "$it Buzz"
  } else {
    println it
  }
}

Y luego una segunda versión, no sé cuál sea más óptima porque hay que medir tiempos y sólo fue por quitarme la curiosidad:

101.times {
  boolean m3 = (it % 3) == 0
  boolean m5 = (it % 5) == 0
  print it
  if (m3) {
    print " Fizz"
    if (m5) {
      print "Buzz"
    }
  } else if (m5) {
    print " Buzz"
  }
  println()
}
Imagen de rodrigo salado anaya

Upss

Jejeje hola ezamudio, la segunda versión esta un poco rara por lo de if (m5).
Suerte bye : ).

EDITADO:
OOOOOOOOOOOOOO yayayayayaya

Si la segunda versión esta más pro!!! jejeje

Nota: no es que sea mal programador, es que sin las etiquetas code ( Indentación ) pus namas no se me da la lectura, jajajaja

Imagen de luxspes

Segun quien?: En otros paises se hace mejor

En México lamentablemente hay "profes" que nunca han programado (gracias ceneval) y se atreven a dar clases de programación.

Desafortunadademente si, los hay, yo tuve que sufrir algunos... y tambien tuve el placer de disfrutara a otros que si sabian hacerlo.... y esto fue, por cierto, antes del ceneval (y mis maestros eran todos entre 10 y 20 años que yo) (que se titulen con o sin ceneval, no tiene nada que ver).

Uno de mis primos es ing. en mecatrónica, tomo clases de programación en C/C++ (para programar PICs y AVRs) en Cuba, y dice que los programadores de allá tienen mejor nivel de preparación que los mexicanos. Según el "cualquiera de ellos sería maestro en México".

Las generalizaciones suelen estar equivocadas, tanto las positivas como las negativas

¿Le creemos?, ¿Es mentira?, o lo dijo solo por molestar.

No se si creerle, tal ves sea verdad, no creo que lo haya dicho por molestar, supongo que simplemente esta siendo victima de la incapacidad humana para evitar errores de generalizarizacion

La verdad, es que el software se hace mal en todo el mundo. En grandes compañias europeas o en pequeñas compañias nacionales. Si algo me da tristeza es esta actitud de "en Mexico todo se hace mal" siendo que, precisamente en el caso de software: "en todo el mundo se hace mal" (me pregunto en cuantos otros casos tambien es asi y no podemos verlo por nuestro malinchismo)

Imagen de luxspes

Marcado como spammer?

Le di 2 veces click a "Save" y ahora estoy marcado como spammer? :-(

FizzBuzz

FizzBuzz ( con un poco de magia , no hacer esto en casa )

import static java.lang.System.*;
class FizzBuzz {static{ 
  for( int i = 1 ; i <= 100 ; i++ )_( 
    // conditions 
    i % 3 == 0,
    i % 5 == 0, 
    // values
    i, "Fizz", "Buzz", "FizzBuzz" 
   );
  exit( 0 );
}
// kudos to: http://bit.ly/Bool2Int
 static void _( boolean a, boolean b, Object ... values ) { 
    out.println( values[ ( a ? 2 : 0 ) + ( b ? 1 : 0 ) ]);
 }
}


Si, es Java.

EDIT
Ahh que burro, acá esta una version más clara y sin tanta magia:

public class FizzBuzz {
  public static void main( String [] args ) {
    Object [] values = { 0, "Fizz", "Buzz", "FizzBuzz" };
      for( int i = 1 ; i <= 100 ; i++ ) {
        values[0] = i;
        System.out.println( values[ ( i % 3 == 0 ? 2 : 0 ) + ( i % 5 == 0 ? 1 : 0 )  ]);
      }
  }
}
Imagen de rodrigo salado anaya

FizzBuzz al gusto!!!

Funciona para los valores que te den la gana jejejeje : P.

package fizzbuzz;
public class Main {
    public static void main(String[] args) {
        int i = 0;
        int to = 100;
        int mod_1 = 4;
        int mod_2 = 6;
        for (; i < to; i++) {
            getFizzBuzz(i, mod_1, mod_2);
        }
    }

    static void getFizzBuzz(int i, int mod_1, int mod_2) {
        if (i % mod_1 == 0) {
            System.out.print("Fizz");
        }
        if (i % mod_2 == 0) {
            System.out.print("Buzz");
        }
        System.out.println(" :: " + i);
    }
}

EDITADO:
jejejej están más bonitos los de Enrique y Oscar jejeje.
Esta divertido esto de ser Geek, :P

Imagen de 043h68

El que recluta también debe saber, aunque sea lo mínimo.

A mi me toco hace algunos años llegar a una importante empresa a una entrevista de trabajo, en cuanto me vieron me dijeron que estaba muy chico (por edad) para el puesto ... pffff.. ya empezábamos mal así que me dijo que si pasaba una prueba me daría el puesto, así que acepte y me dejaron hacer un programilla en c#, nada de preguntas ni eso, primero debía demostrar que sabia y lo hice y de todos modos me botaron por que debía tener 25 años ¬¬!.

Jamas me habían realizado una prueba de esa manera asi que pues para mi esa es la idea, que hagan una prueba para que sepan si sabes hacer para lo que te están contratando en caso de que requieran especialistas en alguna tecnología, si te quieren de todologo, que te hagan una prueba que abarque lo que necesitan.

No es tan complicado conocer el nivel de un programador en algún lenguaje, los de RH lo deben de saber mejor xD.

Nota. Aunque si los de RH estan como los de IT Crowd pues no se quejen u_u. Jajajajaja

Malinchismo...no

Para mi en México si existen profesionales de la informática y verdaderos programadores. Sin embargo, por culpa de algunos el trabajo de los demás no tiene el mérito que merece.

Muchas veces el "papelito" cuenta más que el trabajo y la experiencia.

o_0

Imagen de 043h68

No tan de acuerdo

Hola, no estoy tan de acuerdo con que el "papelito" cuenta más que el trabajo y la experiencia.

Conozco gente muy talentosa que no ha tenido ni los estudios medios y están ganando muy bien y tienen una estabilidad laboral fuerte, claro con conocimientos pues mucho mas que los que sales de la carrera.

Como le hicieron? Pues han tenido muchos años e experiencia y esfuerzo, claro igual que los de la carrera pero autodidactas.

Obviamente esta persona no terminara en algún puesto directivo en una gran empresa, pero tendrá muchas mas alternativas de sobresalir y vivir bien, obvio no tendrá preferencia en algunos lugares pero no creo que tenga problema alguno para trabajar.

Todo es relativo, solo el esfuerzo de una persona marca los limites que puedes tener en cualquier trabajo, escuela, proyecto, etc..

Imagen de ezamudio

papelito vs experiencia

Creo que se refieren al momento de una entrevista de trabajo. Hay empresas donde prefieren contratar gente con certificaciones a gente que tiene mucha experiencia.

Exactamente

A eso me referia, tal vez @043h68 se confundió.

Re: fizzbuzz

¿Groovy?...El mío sería más algo así (en java):

class FizzBuzz{
----public static String WhatIs(int num){
--------return num % 3 == 0 ? "Buzz" : num % 5 == 0 ? "Fizz" : num % 5 == 0 && num % 3 == 0 ? "FizzBuzz" : "NONE!";
----}

----public static void Main(String [] args){
--------for(int i = 1; i < 100; i++)
------------System.out.println(WhatIs(i));
----}
}

Imagen de fcodiaz

FizzBuzz en PHP para 1/2 twitt

<? for(;++$i<101;) echo "$i:".(($i%3)?"":Fizz).(($i%5)?"":Buzz)."\n";

@CARRARO pregúntale a tu amiga si le entiende xP...

http://codepad.org/WgapRKl9

Imagen de ezamudio

Legibilidad

Jajajajaj... haciendo a un lado la legibilidad, se puede hacer en una línea en varios lenguajes; mientras tengas el operador de sentencia condicional y una manera de evaluar el módulo dentro de lo que vas a imprimir, o un operador para concatenar, el principio es el mismo en PHP, Groovy, Ruby y algunos otros similares (supongo que en pyhton debe ser también muy parecido).

Groovy:

(1..100).each{println "$it ${it%3?'':'Fizz'}${it%5?'':'Buzz'}" }

Ruby:

(1..100).each{ |i| puts "#{i} #{i%3==0?'Fizz':''} #{i%5==0?'Buzz':''}" }

Donde pondría interesante sería ya agregarle restricciones de performance (velocidad por una parte, uso de memoria por otra, y luego la combinación de ambas).

Re:FizzBuzz en PHP para 1/2 twitt

Ja ja ja ¡CLARO QUE NO LE ENTIENDE!

De hecho si no sabe ni cómo hacer la sumatoria del 1 al 10 (puedes checar arriba "su código")...menos va saber de qué trata el programa.

Su certificación PHP es un fraude. Solo pago por un papel sin valor.

Imagen de fcodiaz

en Pro de la Legibilidad

LOL... así es dejando de lado la legibilidad.. estoy muy de acuerdo.. lo hice así con propósito... en esa linea se podrían reflejar varias cosas sobre el lenguaje en cuestión,
- el conocimiento de ciclo for con sentencias nulas un poco inusual (lo reconozco), muchos no conocen estas "variantes" de un for y en primera pensarian q esta mal por que no tiene la estructura clasica for(i=0;i<100;i++){}

- el efecto que tiene el operador unitario ++ aplicado a una variable sin valor y este mismo precediendo la variable o después de la variable.

- el conocimiento del operador ternario, casi nadie lo usa :S......

- como se entiende la conversión implícita de boleanos

- la regla de bloques.. + de 1 linea llaves, una sola linea llaves opcionales, no me gusta la regla de legibilidad de que siempre debamos ponerlo por aquellos novatos que no entiendan esta regla ¬¬... pero bueno en pro de la legibilidad.....!

- el valor por defecto de una literal en texto es el valor del texto mismo a excepción que una constante se aya definido con esa literal entonces tomaría el valor definido por lo cual se me hace una mala practica hacerlo asi pero eran 4 caracteres menos :P

- la omisión del cierre ?> cuando el ultimo bloque del fichero sea codigo PHP y sobretodo en ficheros de librerias/clases se cosiera buena practica por zend y me consta, algo mas difícil de encortar q un ";" o una llave no emparejada :S es un espacio en blanco :S me paso una vez al rendear xml's

y así un montón de cosas q se pueden evaluar con una sola linea de código O.o!

performance; ayer el FizzBuzz lo hice poco antes de salir del trabajo.. salí y me fui pensando "a q wey es mejor con un while", por que con el for tengo dos sentencias nulas una se ejecuta una vez pero la de incremento se ejecuta en cada iteración, es el mismo numero de caracteres pero es una sentencia menos...

estocen la versión chida seria:

<? while(++$i<101) echo "$i:".(($i%3)?"":Fizz).(($i%5)?"":Buzz)."\n";

de allí en mas no se me ocurre nada mas de como optimizar :S...

y aquí la versión for Beginers o legible xP

<?php
for($i=1;$i<=100;$i++){
   echo "$i:";
   $mod3=$i%3;
   if( $mod3==0 ){
      echo "Fizz";
   }
   $mod5=$i%5;
   if( $mod5==0 ){
      echo "Buzz";
   }
   echo "\n";
}
?>

en conclusión es buena idea poner pequeños programitas de este tipo a los candidatos, te puede decir mucho acerca de su forma de programar, que tan buenos y tan rápidos son, y la calidad de su codificación y que tanto conocen el lenguaje

Imagen de ezamudio

Regla de 1 linea

La regla de 1 línea es buena, pero no por la razón que mencionas. La razón por que es bueno SIEMPRE poner llaves, no es para que le entiendan los principiantes que no conocen esa regla, porque está en varios lenguajes, viene desde C si no es que antes.

La razón es por mantenibilidad del código. Si yo escribo esto:

while (condicion)
  haceralgo();

No hay ningún problema, pero si tiempo después yo mismo, o alguien más, modifica ese código porque ahora resulta que el código tiene que hacer algo más, puede que lo dejen así (imagínate que lo tienes que hacer al aventón porque es un parche super urgente):

while (condicion)
  haceralgo();
  hacerAlgoMas();

BOOM! Error. El ciclo sigue haciendo lo mismo y al final del mismo se invoca una sola vez el otro método. Si desde el principio hubiera metido llaves:

while (condicion) {
  haceralgo();
}

Al meterle la segunda línea de código se ejecutará dentro del ciclo. Esa es la razón para siempre ponerle llaves. Siempre se recomienda que cuando escribes código, lo escribas pensando en que alguien más lo va a tener que leer en el futuro, y modificarlo. Yo prefiero escribir código pensando en que tal vez YO MISMO tenga que leerlo en el futuro y modificarlo. Así que para evitarme problemas en el futuro, prefiero hacer cosas de ese tipo cuando escribo código nuevo.

en Pro de la Legibilidad...buena idea

en conclusión es buena idea poner pequeños programitas de este tipo a los candidatos, te puede decir mucho acerca de su forma de programar, que tan buenos y tan rápidos son, y la calidad de su codificación y que tanto conocen el lenguaje

Si sería buena idea, sin embargo existe otro problema.

¿Si el que los entrevista no sabe nada de programación?

Yo he leido código visualmente sorprendente donde el "programador" crea clases y funciones que en apariencia son muy avanzadas, pero cuando lo lees detenidamente son una vil copia de algún libro, sitio, etc. Y es fácil engañar a cualquiera.

Por ejemplo este "programador tiene 10 páginas con el mismo código para conectarse a una base de datos MySQL. Y en cada página maneja una clase llamada Conexion1, en la otra solo le cambia el nombre por Conexion2 y asi sucesivamente cuando con una sola pudo hacer la conexión.

A veces el código más simple es el más eficiente.

Imagen de ezamudio

necesita esfuerzo del otro lado

CARRARO, para que funcione esto de poner exámenes en las entrevistas, tiene que haber alguien ya trabajando en la empresa, que revise los exámenes y le pase los resultados a RH. Eso requiere esfuerzo de los que ya trabajan ahí, porque RH no puede ponerse a evaluar el examen. Por lo tanto el resultado no se entrega en el momento. Y para ser imparciales, el que revisa el examen no debería saber quién lo hizo, sólo darle el resultado a RH, donde tienen que evaluar los otros aspectos del candidato.

Y por eso también los exámenes deben ser presenciales, en un equipo que pone la empresa, el cual se encuentra completamente offline, y bajo supervisión para que no saquen el smartphone y se pongan a googlear respuestas. Todo lo que necesitan debe estar en la computadora; referencia de API, IDE, etc.

Imagen de ingscjoshua

Apoyo

En efecto yo creo que mas aya de las certificaciones esta la Experiencia que no se puede adquirir en la esucela donde siempre utilizas la utima version de la tecnologia que estes aprendiendo ya sea .Net o Java, el verdadero sentido de ser un PROGRAMADOR es ese aprender a resolver cosas con lo que tienes a la mano y sin ahondar tanto en n mil formas de como lo hubieras hecho si se usara la ultima version de java ya quisiera ver si es que todavia hay quien diga que en su universidad le enseñan java 1.3 donde el split no existe y los genericos no existen tampoco y mucho menos el afamado forEach. y dado que la industria esta plagado de aplicaciones hechas asi donde un desarrollo nuevo es la GLORIA y tener que darle mantenimiento a aplicaciones de hace 5 años donde el primer y mas importante reto es entender que hiceron los que en ese entonces desarrollaron y como lo pensaron solucionar ademas de entender el negocio para el cual se esta desarrollando y como hacer que esto funcione sin desm.......componer lo que ya funciona y donde solo tienes 10 jornadas para arreglarlo eso si es un reto y eso es ser PROGRAMADOR!!!! no andar con cursitos y certificaciones que no qiere decir q no sirvan pero que vamos no son garantia de ser PROGRAMADOR!!!!!

Re: Regla de 1 linea

Eso es lo bonito de Python:

for x in lista:
----print(x)
----print("Hola %s") %x

Eso es de las cosas chidas de python, el uso de tabs en lugar de caractéres raros.