¿Qué esperan las empresas de un desarrollador PL / SQL con 5 años de experiencia en entrevistas técnicas?

  1. Conozca SQL al menos a un nivel intermedio.
  2. Conozca PL / SQL al menos a un nivel intermedio.

Entonces, ¿qué es intermedio? Cuando entrevisté, tuve una prueba de fuego para cada uno.

SQL: “¿Qué es una combinación externa y cuándo la usaría?”. Mi filosofía era que muchos desarrolladores de aplicaciones afirman conocer SQL, cuando todo lo que realmente saben es seleccionar desde dónde. Quiero ver un conocimiento más profundo. Si un solicitante no sabe qué es una unión externa, entonces realmente no comprende qué es una unión interna. Y si no saben qué es una unión interna, no deberían escribir SQL.

PL / SQL: “Cuando usa una instrucción ‘select into’, ¿cuál es la excepción que puede ver generada como resultado y cómo puede evitarla?” Este es un error común para los nuevos desarrolladores PL / SQL y un intermediario El desarrollador habrá visto esto muchas veces en su carrera. Se supone que una instrucción select into debe obtener exactamente un valor de una consulta y almacenarlo en una variable. El problema es que puede obtener 0 a muchos valores devueltos, ya sea porque el desarrollador no escribió la declaración correctamente o porque no había datos. Esas situaciones deben manejarse de alguna manera.

(Error tipográfico editado)

Yo mismo entrevisté a varios candidatos para el rol de desarrollador PL / SQL y puedo decirle qué esperaría de ellos.

  • Experiencia en SQL : considero que esta es la métrica más alta para la evaluación de cualquier desarrollador de bases de datos, simplemente porque se necesita práctica y habilidad para elaborar cualquier código de procedimiento que realice las operaciones de lectura / escritura de la base de datos tanto como sea posible en SQL puro. He visto varios códigos PL / SQL escritos por desarrolladores de Java, que select * from table y luego iteran sobre los registros en un bucle haciendo toda la manipulación de datos con tantos for loops y if else condiciones y cientos de variables locales. Personalmente, he encontrado que tales códigos de programadores anteriores son difíciles de leer y solucionar problemas cuando las cosas salen mal, porque no es sencillo establecer puntos de interrupción en PL / SQL, a diferencia de Java.
  • Conceptos de diseño de base de datos : dado un escenario, cómo diseñar un esquema y las tablas requeridas para normalizar eficientemente los datos. Cuándo y por qué crear vistas para abstracciones de datos en tablas subyacentes. Si debe tener índices o particiones en las tablas y, de ser así, qué tipo de ellas, en una columna específica para un conjunto de datos dado.
  • Funciones analíticas y agregadas básicas y cómo funcionan con valores null y no null , aunque simples, un poco difíciles de responder en algunos casos como: salidas (incluyendo error) para SUM(column), SUM(1), SUM(*), COUNT(column), COUNT(NULL), SUM(0),MAX(NULL), MIN(NULL) count(DISTINCT column) con varias permutaciones, con y sin group by . Esto puede parecer simple, pero apuesto a que muchos candidatos experimentados han encontrado algunos de estos difíciles de responder. Preguntas que requieren el uso eficiente de funciones analíticas como row_number() , dense_rank() , lead() lag() .
  • Aritmética DATE : esta es una de las funciones más incomprendidas, especialmente por personas que no saben cómo funcionan los tipos de datos DATE y TIMESTAMP en Oracle. Muchos sistemas hoy todavía almacenan horriblemente las fechas como cadenas. Me concentro en las mejores prácticas para almacenar y realizar operaciones de fechas, como convertirlas en caracteres, usar parámetros NLS_* , sumar, restar, usarlos en consultas, agregar ( group by ) fechas y horas, encontrar rangos, usar tipos y funciones de INTERVAL , generando fechas etc.
  • Manipulación de datos con refluctores : especialmente para hacer dmls masivos, cómo guardar excepciones, omitir excepciones o volver a generar excepciones, cómo escribirlos de manera eficiente utilizando utilidades de rastreo para simplificar la depuración.
  • Paquetes y su ventaja, cuándo usarlos, reglas de alcance que se aplican en las especificaciones del paquete y el cuerpo del paquete en las variables declaradas, procedimientos.
  • Métodos de registro disponibles mediante transacciones autónomas, activadores, etc. Generalmente, esperaría que los candidatos comprendan las desventajas de utilizar activadores porque la mayoría de ellos tienden a usarlo incorrectamente, lo que hace que se rompa, por ejemplo: error de tabla de mutaciones
  • SQL dinámico : cómo usarlos adecuadamente (y no abusar de ellos). Cómo evitar la inyección de SQL mediante la parametrización mediante variables de enlace, etc.
  • Conceptos de ajuste de rendimiento : aquí
    Principalmente me gustaría ver si el candidato comprende los conceptos tales como EXPLAIN PLAN, TABLE/INDEX scans, HASH JOINS, NESTED LOOPS etc. escenario en su experiencia donde tuvieron que ajustar una consulta de bajo rendimiento.
  • Comprensión de características como tipos de colección , función PIPELINING , funciones TABLE , Pragmas, excepciones definidas por el usuario, tabla externa, procesamiento de trabajos programados, nuevas características en Oracle 12c, etc.

Un consejo para los entrevistadores: no espere que los candidatos respondan “sin usar” preguntas como “sin usar agrupar por”, “sin usar funciones analíticas”, háganme esto, háganme eso, etc. porque los obliga a hacer preguntas que son desordenado e ineficiente y eso no es algo que quisiéramos que apliquen en tiempo real.

Hola,

Para un desarrollador pl / sql experimentado, creo que a continuación debería ser una expectativa razonable

  • Capaz de explicar los conceptos como Procedimiento, Función, Paquete, Disparador, Cursor, SQL dinámico, Recolección masiva y Para TODOS, Colecciones.
  • Dado un escenario, debería poder escribir código usando las características anteriores.
  • Capaz de escribir consultas SQL para un escenario dado.
  • La optimización del rendimiento
  • Comprensión de los conceptos de la base de datos (ayuda a coordinar con DBA)

Gracias,

Amitabh

More Interesting

¿Crees que a la primera dama se le debe pagar un salario a tiempo completo porque es un trabajo a tiempo completo?

¿Cómo podemos pensar en la relación entre la compensación ($) y el atractivo de un trabajo / campo?

¿Qué salario inicial debo solicitar en una startup en Los Ángeles como desarrollador de software?

¿Qué opción es mejor: virtusa con más salario o KPMG con menos salario?

En términos de compensación financiera, según estadísticas recientes, ¿qué título de posgrado ofrece el ROI más alto?

¿Hay algún trabajo desde casa en la India? ¿Son genuinos? ¿Cuánto pagan? ¿Cuál es el criterio de selección?

¿Hay algún curso en el que no necesite presentarme para los exámenes y obtener buenos trabajos con un salario adecuado?

¿Por qué EdgeVerve ofrece salarios patéticos hoy en día?

¿Cuál es el salario de un analista de datos?

¿Cuál es el salario actual de la gerencia en prácticas en coal india limited?

¿Qué son trabajos bien remunerados?

¿Qué es un buen aumento de sueldo?

¿Cuánto paga Resonance / Bansal Classes a una facultad recién graduada?

¿Cómo es 65k euros brutos en Stuttgart, Alemania para un Ph.D. graduarse en ciencias de la computación como desarrollador de C ++ / CUDA? ¿Cuál es el salario promedio para un desarrollador con experiencia en programación de HPC y programación de GPU en Alemania?

¿Por qué el salario de este año para los nuevos reclutas de Snapdeal no es el mismo en cada universidad para los mismos perfiles?