Este post es de opinión evidentemente, y plasmaré en estas líneas lo que a lo largo de los años he venido notando y experimentando, sin embargo, soy consciente que hay muchos contextos y no sólo un camino a seguir, pero el que aquí planteo, considero que aplica a la gran mayoría de desarrolladores de software que quieren mantenerse vigentes y efectivos en este cambiante y hermoso mundo del desarrollo de software.
En un inicio
En las etapas tempranas del desarrollo de software, me remonto a la década de 1990 (no tan atrás 😄) las fuentes de datos más expandidas eran las hojas de cálculo, archivos de texto, archivos propios de nuestra aplicación y bases de datos, el típico sistema FoxPro, PowerBuilder o VB con base de datos Access para la empresa pues no te acuerdas? jaja
El tener que armar una estructura para confeccionar y salvar los datos era casi obligatorio, porque o aprendías a hacerlo o tu aplicación no guardaba datos más que en memoria, es decir era más un utilitario que una aplicación empresarial o sistema de información administrativo, que era la demanda más grande de aquel entonces.
Entonces los desarrolladores fueron buscando la forma, por ellos mismos o movidos por el mercado, de adquirir las habilidades para aprender lo básico al menos de bases de datos, en ese camino tuvieron que aprender también en mayor o menor medida cómo diseñar una base de datos, y hacer consultas hacia ella.
Etapas posteriores
Con el auge de los lenguajes orientados a objetos ya bien establecidos (Java, C#, Visual Basic) y las bases de datos relacionales el hecho que un programador supiese diseñar bases de datos y hacer consultas hacia ella era un supuesto, entonces vemos que ambas cosas iban de la mano, lo cual en mi opinión es acertado.
Fue también por estos años que comenzaron a popularizarse (porque ya existían) los ORM (Object relational mapping) los cuales eran como una interfaz entre el programador y las bases de datos, aislándolos del DBMS o Gestor de base de datos, entonces fue cuando los desarrolladores cada vez más dejaron de diseñar tanto las bases de datos y mucho menos de escribir consultas hacia ellas, ya que justamente el objetivo de los ORM era hacer las consultas y hasta mapear las tablas a partir de las clases del código.
En la acualidad
Hoy, y desde hace algunos años ya, han hecho su aparición las bases de datos NoSQL (hola MongoDB 😄) con lo cual ahora los desarrolladores tenemos más cosas por aprender y podría parecer abrumador, sin embargo yo recomiendo aprender también este enfoque de base de datos NoSQL, al menos a un nivel profesional medio ya que son buenísimas también y cada una tiene su campo de acción y aplicación, el comparar ambos tipos de base de datos será motivo de otro post, pero lo que sí tengo claro es que no hay que parcializarse sino aprender ambas.
NoSQL no es que sea contrario a SQL sino que quiere decir Not Only SQL 😉
Respecto a aprender a diseñar bases de datos y aprender sus lenguajes de consulta, la tengo clara, un desarrollador tiene que aprenderlo, esto supone una ventaja amplia y además con esto se logra entender cómo es que trabaja una base de datos realmente, y si le pones ganas no te tomará mucho tiempo, aprende y practica que es gratis.
Los ORM son valiosos, eso sí, por ejemplo este blog recomienda y usa ampliamente uno: Entity Framework Core, pero como todo en la vida, los extremos son malos, también hay que conocer lenguajes de consulta de base de datos y saber diseñar una base de datos desde cero, a partir de los requerimientos del negocio.
En conclusión
No me voy a andar con rodeos 😂 aquí mis recomendaciones:
Hey dev! tómate un tiempo, y si es que aún no lo sabes, aprende a diseñar bases de datos relacionales y NoSQL
Tambien deberías aprender al menos un lenguaje de consulta de base de datos, como SQL y sus variantes.
Aprende a manejar al menos dos sistemas de gestión de base de datos como Sql Server Management Studio, Mongo DB Compass, por ahí que también MySql Workbench o PhpMyAdmin.
Los ORM son muy útiles y eficientes hoy en día, pero no te van a salvar, hay ocasiones en que aún usando ORM tendrás que escribir tu propia consulta a la base de datos porque la lógica de la operación es muy compleja o porque el ORM no se da abasto en temas de rendimiento y tiempo.
Si eres del mundo de .Net: Aprender ADO.NET y Entity Framework Core tu debes. Te hará más completo y encima no es difícil!
Si haces esto marcarás diferencia entre tus competidores por algún puesto de trabajo, te dará un mucho mejor panorama y sobretodo harás las cosas con seguridad y propiedad en ese ansiado empleo, esa es la idea no?.
Si este post te ha encantado compártelo crack! 😉 y cuéntame también tu opinión y experiencia.
2 comentarios en «¿Es necesario que un desarrollador aprenda a diseñar y consultar Bases de datos?»