¿Qué necesita el mercado de ingeniería y desarrollo de software hoy en día de acuerdo con el conocimiento y las habilidades de las bases de datos, y cómo aprender esto rápidamente?

Si la pregunta es sobre lo que se espera que sepa en una entrevista de ingeniería de software de nivel básico, diría:

  • Se espera que conozca SQL simple, incluidas las cláusulas WHERE y las uniones simples.
  • Se espera que sepa al menos algo sobre el diseño de la base de datos a un nivel básico, incluido el uso de cosas como claves primarias, detalles de encabezado simples, etc.
  • No necesitaría recitar las definiciones de “formas normales”, pero es útil conocer la relación entre entidades y esas cosas. Y algunos tipos más pedantes pueden querer que sepas las definiciones de formas normales si tomas una clase de base de datos.
  • Es útil si conoce al menos un poco sobre las transacciones ACID y por qué son importantes, y un poco sobre cuándo necesitaría usar una transacción de varios estados.
  • No esperaría que un nuevo graduado sepa mucho sobre los componentes internos del motor db y esas cosas, especialmente si no estoy entrevistando a un desarrollador de kernel del motor de base de datos, pero si pones “amplio conocimiento de MySQL” en tu currículum, yo ‘ Te preguntaré sobre cosas como InnoDB versus MyISAM.

Me preguntaron “cómo optimizarías una base de datos que es lenta”.

Lo cual, sin duda, es una pregunta bastante abierta (ya que finalmente se reduce al diseño básico de base de datos), pero hablé sobre lecturas lentas frente a escrituras lentas, normalización, planes de ejecución, índices, estadísticas y su uso en consultas y transacciones. niveles de aislamiento (concurrencia).

Acerca de cómo aprender esto rápido, bueno, la forma más rápida es cuando su aplicación se ha caído y el cliente está enviando correos electrónicos enojados que no pueden trabajar. Esto tiende a motivarte realmente a aprender 😀

El segundo más rápido es un curso sobre bases de datos SQL (este es el único caso en el que los libros y las cosas no eran suficientes para mí; en realidad necesitaba hablar con alguien, toda la forma de hacer las cosas basada en el conjunto / relación era demasiado diferente de lo que Estaba acostumbrado)

El tercero es buscar en google / wikipedia las cosas que mencioné anteriormente.

Idealmente, los tres. El único problema es que el primero es casi imposible de hacer en proyectos de pasatiempos: lo más probable es que simplemente no tenga suficientes datos / conexiones para que su base de datos comience a comportarse mal, sin importar cuán mal diseñado esté. Y las cargas de trabajo sintéticas serán … bueno, sintéticas, ¿pero tal vez valga la pena intentarlo?

Lo siento. No hay respuestas fáciles aquí. Puede consultar varios sitios de trabajo específicos de dónde se va a echar un vistazo, pero esto varía de un mercado a otro.

Actualmente, existe una gran demanda de desarrollo web de back-end aquí, ya sea JavaEE, dotNET o PHP.

Entonces “aprender” no cuenta. Debe obtener un puesto de nivel de entrada trabajando con bases de datos, trabajar en él durante al menos 2 años (por “buena experiencia”), y luego solicitar ese trabajo. Verifique si quieren CRUD o si también quieren SQL transaccional, porque la mayoría de los trabajos solo usan CRUD, y si quieren T-SQL, tendrá que obtener un trabajo que le enseñe cómo escribir programas en SQL . (Y sí, puedes escribir diez mil programas de línea en SQL, no es solo un lenguaje de consulta de base de datos).