Rigel en Inglaterra

lunes, febrero 20, 2006

Entrevista en Symbian

Hoy fui temprano a Londres para hacer las pruebas de acceso a Symbian. Primero sufrimos una larga lista de charlas en las que trataban de convencernos de que la empresa mola mucho. Todas dicen lo mismo, parece que se copiasen las unas a las otras. "¡Fíjate! ¡Hemos crecido un montón en los últimos cinco años!", "Nos preocupamos de nuestros empleados", "¡Mira cómo molamos! No hace falta venir de traje." (esto dicho por un tío trajeado, of course), etc. En fin. Para compensar, nuestros curriculos vitae son algo parecido pero a la inversa. "Mira cómo molo: sé C++, Java, Python... ¿dije ya que sé C++?".

Tras las charlas empezó la parte divertida: los tests. Reconozco que soy un masoquista y los disfruto. Nos daban un tiempo limitado para responder un porrón de cuestiones relacionadas con operaciones simbólicas y con análisis sintáctico. Se trataba de responder las máximas posibles con el mínimo de errores. No creo que destacase en ese área, pero tampoco creo que quedase por debajo de la media. Había un par de tipos que parecían muy listos. Uno de ellos, un indio la mar de majo.

Luego vino la entrevista. Para mi alivio, fue totalmente técnica y quienes la hacían eran dos ingenieros. Fue gracioso. Tras las preguntas de rigor sobre mis estudios, empezaron las cuestiones de tipo técnico.


  • ¿Qué es una clase base? ¿Qué es una clase derivada? Uff... esa es una pregunta muy básica. Una clase base es... [Pinto un diagramita UML]

  • ¿Qué es la herencia múltiple? ¿Qué problemas tiene? [Les cuento en qué consiste y por qué en C++ es una mala idea usarla. UML al canto]

  • Bueno, mejor nos saltamos estas preguntas, que se ve que te conoces bien el tema

  • [Me enseñan una función escrita horriblemente en C] ¿Qué fallos encuentras en este código? [Miro la primera línea] Dios, esto es horrible. Bien, eso es un buen comienzo. [Les explico línea por línea que todo está fatal. Luego les digo cómo habría que haberlo escrito].

  • [Me enseñan un diagrama de una lista enlazada] ¿Cómo harías para insertar un nuevo elemento en la lista? ¿Y para eliminarlo? ¿Qué usos podrías darle a una lista enlazada? [Les explico los dos primeros puntos y se quedan satisfechos. Luego les explico por qué para casi cualquier cosa que quieras hacer hay estructuras más eficientes que una lista enlazada. Entonces van y me dan la razón. ¡Juas!]

  • [Sacan un montón de teléfonos móviles de una bolsa y me explican algunas de ss características.] ¿Qué problemas crees que surgen cuando programas para un teléfono móvil? [Les respondo las limitaciones en memoria, procesador, teclado y pantalla. Luego continúo con el rollo típico de que no es aceptable que un móvil se cuelgue, por lo que el software debe ser totalmente estable. Se quedan la mar de satisfechos.]

  • A continuación me preguntan: ¿Qué hay que hacer si la señal del móvil no llega bien a la torre de antenas? [Sorprendido:] Aumentar la potencia de emisión. (Digo yo, no se me ocurre otra cosa. Pues le gustó la respuesta. Juas).

  • En el CV mencionas patrones de diseño. ¿Puedes describirnos un par de ellos? Bueno, podría hablar del singleton, pero como es un patrón que es usado incorrectamente a menudo, no lo haré. Os hablaré del patrón visitante. Bien, descríbelo. [Me pongo a pintar un diagramita UML en una pizarra y a explicarlo. Me miran con cara rara.] ¿Me estoy explicando mal? ¿Me seguís? No, es que no conocemos el patrón este. (What teh fuck?) [Rigel tras recuperarse del shock, todo esto sin perder la sonrisa por un momento:] Bueno, pues entonces os explicaré cómo es la implementación básica de un patrón visitante. Recientemente leí un artículo extenso sobre implementaciones alternativas dependiendo de las necesidades que uno tenga, pero me centraré en la básica. [Les cuento lo que viene en el Gang of Four. Se quedan asombrados.] Vaya, hoy hemos aprendido algo. (What the flying fucking fuck. Lo que hay que ver. Rigel 1 - Symbian 0)

  • Bueno, las preguntas que venían después de esta lo cierto es que ya nos las has respondido todas con esta explicación. Creo que no hace falta que sigamos preguntándote.



Bueno, eso fue la entrevista básicamente. Creo que se quedaron agradablemente sorprendidos. Espero no haber metido demasiado la pata en los tests.

EDITADO: Pensando en ello me doy cuenta de que los ingenieros que me entrevistaron no debían de ser informáticos, sino telecos o alguna otra cosa. Espero no haberlos echado atrás con tanto palabro informático que usé tal como recursividad de cola, árboles B+ (sí, el código fuente es mío), árboles rojo-negro, etc. Grrr... Gulín seguro que entiende mi agobio por conseguir curro de una vez.