Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Entrevista De Trabajo En Ea

Iniciado por Zaelsius, 20 de Enero de 2004, 02:44:55 PM

« anterior - próximo »

Zaelsius

 Un usuario del foro de Irrlicht Engine acudió hace poco a una entrevista de trabajo en EA(creo que USA). Podeis leer algunos comentarios acerca de la entrevista en el foro de Irrlicht.

Esto es lo que le preguntaron:
Citar



Joined: 15 Dec 2003
Posts: 260
Location: Los Angeles, California, USA  Interview at EA Games

I had my interview at EALA yesterday, and it went pretty well.

The questions they asked were:
1) in code: write a function to delete a node from a linked list
2) in general: design for a spirograph screen saver (polar or cartesian coordinates? what periods/radii will create stable patterns?)
3) in code: write an interface class to a mouse, which could be using several different actual mice (ie: hide their differences) --basically use a Singleton abstract base class with a pure virtual method
4) if you were given a chunk of memory as an animation programmer, and wanted to make sure you only used that memory, how would you write a memory manager for it? --basically, he wanted me to create a virtual memory table, but INSIDE of the memory i was allocating.
5) explain the dot-product (its use, not the math) **i then went on to volunteer information about the cross product, normalization, normals, etc
6) where are quaternions normally used, and why?

thats all I could remember off the top of my head for now.

Siempre viene bien que la gente comparta este tipo de experiencias  :)  

Loover

 ¿Cómo se hace el 2? ¿Qué es un spirograph? :P
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

Zaelsius

 En el enlace que he puesto se resuelven esas dudas y comentan algunas cosas más sobre la entrevista y cómo la consiguió.

tamat

 mmmm, me esperaba algo más bestia, vosotros no? se que este debe ser un examen para cribar a los 'flipados' que van esperando currar en la maravillosa y famosa EA pero aun así se me hace raro, será que nunca he ido a una entrevista de trabajo...
Por un stratos menos tenso

Zaelsius

 A mí me parecen unas pruebas adecuadas. Se supone que quien llega a la entrevista es porque ha "demostrado" un cierto nivel con demos, juegos amateur, etc.

En la entrevista hay que comprobar que efectivamente el tio sabe de lo que habla(no sea que se haya dedicado a copiar/pegar código o que simplemente no  tenga ni idea), y que tiene una mínima base matemática que maneja con fluidez.

Por ejemplo, si preguntas que son los quaternions, aunque lo sepas más o menos... en la respuesta se nota quien los ha usado regularmente y quien no, no sé si me explico. Vamos, que aunque parezcan preguntas sencillas hay que tenerlo todo muy claro para convencer al entrevistador(además hay que tener en cuenta el factor nervios)

ethernet

 Yo no he usado nunca un quternion y se para que sirven
Por otra parte la pregunta del dot product es bastante ambigua y abierta, que vas a decir ahi? yo diria q es el factor de proyeccion de un vector sobre otro, no se me ocurre nada mas XDD

El otro dia hablando con un tio que ha entrado en MS le hicieron tb pruebas y algunas de ellas eran crear un
strncpy, o hacer cosas con listas enlazadas (insertar, borrar, etc)

Por cierto, en el codigo fuente del unreal usa una virtual table (que dice el).

saludos

Zaelsius

 Yo creo que en el tema del producto escalar habría que comentar tambien un poco para qué lo has usado, alguna técnica de la que te acuerdes donde se utiliza, etc.
No sé, por ejemplo decir que se usa en el descarte de caras ocultas, en el bump-mapping, cosas asi  :huh: .

Thenend

  Que este test nos sirva para convencernos de que ir a la universidad sirve para algo. Todas esas preguntas podrían estar perfectamente en algunos de los exámenes que he tenido a lo largo de la carrera (bueno, excepto la 6, pero igual en alguna asignatura optativa...)

Cuando alguien me pregunte (una vez mas  <_< ) que si lo que se aprende en la Uni sirve para algo le mandaré a este post  :D

Otra cosa es que puedas aprender todo esto fuera de la universidad también sin tener que soportar a los profesores sin vocación  (grrr)  y la presión de los exámenes (nooo) , pero ya nadie puede decir (como he oído a algunos compañeros) que aprender a hacer listas enlazadas es una tontería porque la STL ya las tiene. O que para qué queremos saber cómo hace la paginación el Windows si ese proceso no está a la vista.

Bueno, ya tengo un poco mas de moral para atacar los exámenes y terminar de una vez la carrera...  ;)  

ethernet

 - punto por punto

- la carrera sirve para saber hacer todo eso... y ademas hacerlo bien.
- La paginacion que hace windows no tiene q ver con nada de lo q dice ahi, la memoria virtual es otra cosa. En ese caso se refiere a tener un trozo de memoria e ingeniartelas para meter todo lo q pidan con new ahi, pidan lo q te pidan, 8 bytes, 10 megas o 3kb.

Zaelsius

 
1) Por desgracia mucha gente borra de su memoria todo lo que aprende con una velocidad asombrosa..(muchos monkeys de mi carrera)

2) Las técnicas de gestión de memoria de un SO más comunes son la paginación y la segmentación. Se trata, como dice ethernet, de intentar utilizar la memoria disponible eficientemente. Éso es lo que piden en la entrevista, y en mi asignatura de Sistemas Operativos 2 hicimos una práctica que consitía exactamente en hacer eso.

La memoria virtual es un mecanismo complementario en la gestión de memoria de un SO y thenend no la ha nombrado. Windows 2000 p.ej. usa paginación + memoria virtual. No voy a explicarla asi que o mirais en google o haceis la carrera xD.

.. thenend no ha metido la pata en ese sentido, creo.

ethernet

 que diferencia hay entre paginacion y memoria virtual?

Mars Attacks

 También se puede decir que leyendo foros como éste se puede aprender todo lo que dice ahí. Yo sé de los cuaterniones por vosotros ;)

Ethernet: puedes tener paginación a nivel de caché o de RAM. La memoria virtual usa almacenamiento secundario.

Un saludo tras mi examen de tratamiento de imágenes.

ethernet

 Mi pc usa memoria virtual y no toca el dispositivo de almacenmiento secundario en ningun momento. Tampoco estoy deacuerdo a llamar pagina a un bloque de la cache.


Zaelsius

 Copiando de la wikipedia:

Citar
PAGING: (paginación)

In computer operating systems, paging is the algorithm that divides computer memory into small partitions, and allocates memory using a page as the basic building block.

Advantages

A key advantage that this method has over simpler methods such as the buddy memory allocation technique and dynamic allocation techniques is that the memory allocated to a program does not have to be contiguous, and because of that, there is very little internal fragmentation - thus little memory is wasted.

Because programs rarely use all parts of their code and data at one point in time, the concept of virtual memory can be implemented by writing pages to disk, and reading pages from disk when they are needed. This is another advantage of paging over other memory allocation techniques.

Lo mismo se aplica para la segmentación(el programador especifica al compilador los segmentos del programa). La memoria virtual tambien permite trabajar con espacios de memoria más amplios que la memoria física, ya que que es el hardware el que luego traduce las direcciones virtuales de memoria a direcciones físicas(ram o hdd).

Edit:
Bueno lo importante es destacar que la memoria virtual por sí sola no constituye un algoritmo de asignación de memoria.

ethernet

 ejem, tampoco estoy deacuerdo, se puede tener memoria virtual sin disco duro y sin tener hardware especifico (otra cosa es q sea rapido.). No estoy deacuerdo en la diferencia entre paginacion y segmentacion. La paginacion usa bloques de memoria de tamaño fijo y la paginacion de tamaño variable. El uso de la paginacion o segmentacion se hace con el fin de usar memoria virtual con eficiencia (imaginate una tabla de paginas ( o segmentos) para cada dir de memoria e imaginate como deberia ser la TLB XD).

EDIT:  Eso sin hablar de mecanismos de proteccion de procesos

Volviendo al tema:
como hariais vosotros ese algoritmo?

un saludo






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.