Hola!, hace un tiempo alguien preguntó que tipo de cosas preguntan para contratar, pues a mi al momento de contratarme es bastante común que hagan pruebas de PHP.
en este tema quiero compartir las experiencias que he tenido en estas pruebas y las pruebas que yo mismo he hecho para aceptar otros trabajadores, preguntas comunes y tipo de preguntas que me han tocado a mi o a otros amigos de modo de prepararlos a ustedes tambien para sus proximas entrevistas.
también me gustaría invitarlos a ustedes a compartir las pruebas que han experimentado
TIPOS DE PRUEBAS
empezando, primero que nada hay que decir que me han hecho 3 tipos de prueba:
1.- Responder preguntas: lo mas normal es una prueba común donde hay varias preguntas y hay que contestarlas, esta prueba puede ser escrita o oral con pizarra.
2.- Entender código: esta consiste en un código realizado por la empresa en el cual debemos leerlo, entenderlo y decir que hace, a veces nos preguntarán como mejorarlo.
2.2- Encuentra el error: sorpresa! como si haber entendido el código no hubiese sido suficiente resulta que el codigo trae errores intencionales, como buenos programadores debemos encontrar hasta el más mínimo warning
3.- Realizar código: esta es sin duda la prueba más díficil, realizar un código que realice lo solicitado por el empleador, el código será probado, así que tiene que salir perfecto, tambien revisarán que sea ordenado.
ERRORES TIPICOS
siempre hay pequeñas trampas comunes, errores que olvidamos por que no consideramos importantes, estos son algunos de los que me he topado (y caido), anotenlos y tenganlos siempre en cuenta:
Tag PHP: Este es típico de la prueba 2.2, intencionalmente el tag de PHP es colocado de esta manera <? siendo que como sabemos esto no funciona correctamente en los servidores nuevos. tambien es posible que intencionalmente no las escriban! en ese caso escribámoslas nosotros :)
Conexión a BD: Yo diría que el 90% de los programadores no cierra la conexion a la base de datos, esto en una empresa grande es una falta gravísima, en mi empresa actual, quien no cierra la conexion al terminar su script no es contratado, recuerden como cerrar sus bases de datos en todos los motores existentes incluyendo odbc odbc_close();
Parametros: Hay parametros en funciones que no especificamos por ser omitibles, pero en una prueba laboral no debemos pensar de esa manera, el empleador evaluará cada aspecto de nuestra conducta para predecir posibles errores futuros, no olvidemos por ejemplo poner la variable de coneccion xxxx_quey($query,$coneccion), sabemos que no siempre es necesaria, pero más vale que este, no se arriesguen.
Inicio de sesión: este es bastante común en el foro, nunca olvidemos que session_start() debe ir al principio del código y no imprimir nada antes.
Arreglos: este me ha tocado hace poco, una típica trampa, declaran una variable como arreglo $var[]=1; e imprimen como variable echo $var;
Cabezales: se que muchos de ustedes no lo tomarán en cuenta pero es muy importante entender a la perfeccion esto de los cabezales (que no es lo mismo que encabezado XD), un rror común es este: echo "usted sera redireccionado"; header("Location:estas_despedido.php");
Cookies: una buena razón para ser despedidos es el uso de cookies innecesarias, bien sabemos que las cookies tienen una mala fama y los usuarios finales pueden desactivarlas.
GET/POST: ya todos conocemos estos métodos de envios de variables, funcionan, sin problema, pero mucho cuidado al momento de usarlas, primero elegir cuidadosamente cual de las 2 usar, si la página tiene usuarios que harán búsquedas y volverán continuamente a la página anterior usen GET, si la información es delicada, tratemos de usar POST o usar GET con datos que no digan nada al usuario, un ejemplo de un mal get: ?nombre=juan+sanchez, un ejemplo de un buen get: nm=56
Variables: uno de mis más típicos errores es usar variables no declaradas, hay que tener cuidado, jamás poner $x=$y si la variable $y no ha sido iniciada.
Archivos: otra buena razón para no aceptar un postulante, si estás en una empresa grande que tiene miles de personas accediendo simultaneamente si abres un archivo y no lo vas a editar usa fopen($file,'r'); o sea ábrelo como lectura y SIEMPRE despues de abrirlo cierralo, si no lo haces el archivo no quedará disponible para otros procesos.
Multiples Arreglos: evita el uso de arreglos GET y POST simultaneamente, seguramente dirás: "por que?", lo mismo pregunté yo, te aconsejo que no preguntes, solo evitalo XD, tambien evita el uso de SESSION y COOKIES simultaneas.
Bloquea tu PC: bueno al principio no lo consideré necesario, pero si vas a salir, deja el PC bloqueado, si luego sucede cualquier problema será tu culpa, de nadie más.
Graba: al igual que la anterior, graba tu sistema constantemente, si algo sucede será tu culpa por no ser cuidadoso
Pruebas locales: hoy me han llamado la atención por esto, vieron que instalé WAMP para hacer pruebas locales, me dijeron que eso podía ser una vulnerabilidad para la empresa, por suerte tenía una carta bajo la manga, cuando instalen servidores web en su trabajo dejenlos Offline y con acceso solo local.
No AJAX: el empleador no quiere que te luzcas, con AJAX todo es mas lindo, pero en una prueba lo importante es que funcione, es posible que hagan pruebas en navegadores antiguos (IE6) o poco usados (Netcape Navigator) donde tendremos problemas de incompatibildad, no arruines tu oportunidad!
Por último, recuerden que es mejor demorarse y pensar bien las preguntas y respuestas que apurarse a entregarlo rápido para parecer veloces, te contratarán por demorarte, pero jamas por equivocarte XD
siempre llevar un pendrive, una copia del curriculum, enlaces de páginas webs que hayas hecho y cualquier apunte de códigos que puedas ver cuando pidas ir al baño :)
AH! y la división por 0, ese es el error mas grande que existe en programación, si divides por cero eres un NOOB!, valida siempre que la división sea distinta de 0.
espero que esto le sirva a mas de uno!