¿Qué debe hacer un experto en VBA Excel y Access SQL para avanzar en su carrera?

Si está interesado en mantenerse relevante como desarrollador de negocios, le recomendaría que se aleje de las secuencias de comandos de aplicaciones y se meta en algo un poco más general. Como está familiarizado con el lenguaje VB, podría considerar escribir algunas aplicaciones de ejemplo en VB.NET. Este lenguaje es, con mucho, el menos popular en comparación con C #, pero al menos proporciona una ventana al .NET Framework y lo que puede hacer; si la programación .NET le atrae como una carrera (las perspectivas de empleo son bastante buenas; en los EE. UU., la tasa de desempleo entre los desarrolladores experimentados de .NET es algo así como 0.4%) puede trabajar para familiarizarse con la sintaxis de “estilo C” C # más adelante en el camino. Si sabe programar en VB, es más un cambio de sintaxis que otra cosa, como aprender un dialecto de inglés con la mayoría de las mismas palabras pero con una gramática y puntuación diferentes.

En el lado de la base de datos, SQL es bueno, Transact-SQL es mejor. Access SQL es más o menos compatible con ANSI, por lo que no tendrá que desaprender mucho, pero de ninguna manera es un lenguaje de base de datos completo. Transact-SQL permite componentes prcedurales adicionales dentro de la capa de datos, como procedimientos almacenados, disparadores, funciones, etc. Si está familiarizado con Access SQL, esto no será un cambio de cabeza tan grande como pasar de VBA a VB .RED.

Suponiendo que desea aprovechar sus habilidades de Excel, Access y SQL, le sugiero que aprenda JavaScript y el conjunto de capacidades de Business Intelligence en Excel y SQL. Ahí es donde Microsoft está haciendo inversiones, y donde debe posicionarse.

Sugiero aprender JavaScript no porque pueda hacer algo diferente, mejor o más rápido que VBA, sino porque Microsoft ha decidido que JavaScript será el enfoque que tome para mover la programabilidad a plataformas que no sean escritorios Windows y Mac. Si desea poner código en línea en iPhone, iPad, Android, Windows phone u Office, solo se podrá escribir en JavaScript. VBA no se extenderá a esas otras plataformas.

Microsoft comenzó a impulsar JavaScript como un medio de extender la programabilidad de Excel, Word, Access, etc. hace varios años bajo el nombre de Agave. Las aplicaciones de Agave fueron capaces de incorporar datos externos a una aplicación de Office, pero eso fue todo. En el mundo real, nunca vi ni escuché que se usara un solo Agave. Algunos podrían estar disponibles, pero Agave era una solución que buscaba un problema y no encontraba ninguno.

Microsoft decidió arreglar la rotunda falta de éxito de Agave cambiando el nombre. Primero a Office Apps y luego a Office AddIns. Todavía no hay éxito.

En el otoño de 2015, Microsoft mostró mucho trabajo exponiendo el modelo de objetos de Excel (y presumiblemente otras aplicaciones de Office) a JavaScript. Finalmente, podría escribir código que realmente hiciera algo útil.

Escribir un complemento de Office significa aprender nuevas herramientas (Visual Studio) además del lenguaje JavaScript. A partir de la primavera de 2016, aún no puede grabar una macro. Debe repensar cómo aborda hacer las cosas (el código JavaScript se ejecuta de forma asíncrona en lugar de estar controlado por eventos). Y el código JavaScript se ejecuta muy lentamente, quizás del 1% al 10% de la velocidad de VBA.

Estoy seguro de que el código JavaScript finalmente se ejecutará más rápido de lo que lo hace hoy. Con futuras mejoras en la potencia del hardware, incluso el rendimiento actual del código JavaScript será lo suficientemente rápido como para ser útil.

Debido a que Microsoft sigue un imperativo de “la nube primero, primero el móvil” de la alta gerencia, definitivamente veremos soluciones JavaScript extendidas a las plataformas de Office en línea, iOS y Android, y posiblemente incluso a los teléfonos con Windows. Por razones más allá de mi alcance, se ha decidido que VBA nunca se extenderá a esas plataformas. Entonces, si desea que sus teléfonos y tabletas puedan hacer cosas de tipo VBA, tendrá que volver a escribir el código en JavaScript.

¿Microsoft abandonará el soporte para VBA en el futuro? No es una posibilidad, siempre y cuando los negocios dependan de ello. Su código VBA existente continuará ejecutándose durante décadas en el futuro en las computadoras de escritorio Windows y Mac OS. Para respaldar esta afirmación, aún puede ejecutar macros de Excel 4 a pesar de que ese lenguaje fue obsoleto por VBA en 1994. En adelante, a medida que se agreguen características a Excel, Access, Word, etc., VBA tendrá los objetos y métodos correspondientes. y propiedades extendidas para que esas características se vuelvan programables. Pero no se realizarán nuevas inversiones en el Editor de VBA o en extender VBA a otras plataformas.

También sugiero aprender las herramientas de BI en Excel y SQL. Microsoft está haciendo un gran esfuerzo para analizar big data, y las herramientas de BI como PowerPivot, PowerQuery y PowerMap están recibiendo grandes inversiones. Esas herramientas fueron complementos en Excel 2010 y 2013, pero ahora forman parte de la instalación básica de Excel 2016. Aún deberá comprar la versión más completa de Office para obtener capacidad de desarrollo (Office Professional Plus o la versión E3 de Office 365), pero cualquier solución que desarrolle puede ser vista por alguien que tenga incluso la versión menos costosa de Excel 2016.

Romper la barrera del millón de filas es enorme, y puede hacerlo con las herramientas de BI en Excel. Con Excel 2016 de 64 bits, puede manejar libros de trabajo increíblemente grandes. Múltiples CPU en un solo escritorio harán que las herramientas de BI se ejecuten rápidamente. Para obtener aún más potencia, puede ejecutar esas mismas herramientas de BI en un clúster de computadora de Azure de tiempo compartido para realizar minería de big data realmente rápido. Nunca olvides que Azure está cerca del corazón de Nadella y es una pieza esencial de su estrategia de “nube primero, móvil primero”.

En pocas palabras: sus habilidades con VBA en Excel, Access y SQL significan que probablemente se haya vuelto competente con el uso de esas herramientas en su trabajo diario. Si desea aumentar esa experiencia, aprenda JavaScript y las herramientas de BI. Ahí es donde el futuro se encuentra con las tecnologías de Microsoft.

Creo que las respuestas que escuchan realmente cubren las opciones, pero debes preguntarte “¿Qué quieres hacer?” En general, he visto dos caminos desde donde se encuentra Application Dev o DB / BI. Esos son los dos extremos, hay varios roles que combinan los conjuntos de habilidades.

Si quieres ser un desarrollador de aplicaciones, entonces renunciaré a VB.NET y aprenderé C #. Simplemente hay más demanda en el mercado para esa habilidad. No lo hablaré yo mismo, ya que fui por el otro lado.

Tengo el dominio de Excel / Access y bajé por la ruta DB / BI. Por alguna razón, MS SQL es el paso lógico de Access, aunque casi no hay similitud alguna. Si tiene conceptos sólidos de base de datos, entonces migrar eso, realmente a cualquier base de datos, debería ser relativamente fácil. Hay muchas tecnologías en el espacio de datos para elegir además de MS SQL. Tecnologías masivas de almacenamiento de datos empresariales como Netezza, Redshift y otras. Opciones NoSQL como Hadoop y todo es una rareza variada (no soy un tipo NoSQL, así que no paso mucho tiempo mirando las otras opciones). MS SQL es bueno porque es uno de los pocos que tiene una pila completa y tiene asistentes para ayudarlo a comenzar. Aunque como un chico de MS SQL me da vergüenza decir eso. Usa a los magos lo menos posible y haz tus propias cosas lo más rápido posible. Las muestras de código que encuentre en Google son probablemente mejores asistentes en algunos casos.

Si sigue el camino de tratar de equilibrar el conjunto de habilidades entre la aplicación y la base de datos, será un gran activo para una empresa pequeña que necesita una persona para desempeñar múltiples funciones, pero siempre se sentirá frustrado en una empresa grande, especialmente si tiene una buena comprensión de las mejores prácticas en ambos lados.

Si te entusiasma extraer millones de registros lo más rápido posible en un billón de bases de datos de registros y luego crear sprocs de alto rendimiento para analizar los datos, entonces el mundo MS SQL DB / BI es el camino a seguir. Si te gusta la interacción del usuario con una aplicación, entonces probablemente iría a la ruta C #. No importa cuál elija, hay suficiente en cualquiera de los dos para mantenerlo aprendiendo por el resto de su carrera.

¡Ah, y no descartes tus habilidades de Excel! Hasta el día de hoy uso Excel para la creación rápida de prototipos y análisis de datos. Es mucho más fácil mover un subconjunto de datos a Excel, crear una tabla dinámica, hacer un análisis y luego codificar una vista en MS SQL que intentar y trabajar en una consulta para devolver las respuestas desde el principio.

Aprende algo más.

VBA no tiene futuro. Todavía se incluye con los productos de Microsoft, pero dado que está completamente vinculado al código COM heredado, no existirá para siempre. Eventualmente se eliminará gradualmente.

Incluso si no fuera así, nadie está interesado en un programador cuyo repertorio completo esté programando código simulado en aplicaciones. Estás limitado por lo que puedes hacer. VBA fomenta el mal código y es inherentemente inestable. No es (y no ha sido durante muchos años) apropiado en entornos de producción. Carece de una verdadera orientación a los objetos y es difícil de integrar con otros sistemas (sí, está bien, ODBC, pero casi ninguna base de datos debería ser accedida y modificada directamente en este punto).

Puedo hacer VBA y puedo hacer Access SQL (es diferente por muchas razones) y puedo entender el código escrito en él. Creo (porque he ayudado a hacerlo) que puede entrenar a un codificador de VBA o experto en Access SQL para escribir código en C # y T-SQL. En última instancia, son plataformas mejores y más estables y no son imposibles de aprender (aunque llevará tiempo). Estos son mejores para tu carrera.

¡La mejor de las suertes!

Continúe aprendiendo nuevas tecnologías y mejore lo que ya sabe. MS Office es como una navaja suiza y el modelo de objetos VBA es increíblemente rico. Básicamente, si eres creativo, puedes usar Excel / Access para casos de uso ilimitados. Igualmente importante, estas herramientas permiten el desarrollo rápido / ágil y la creación de prototipos. ¡No se preocupe ya que MS Office no irá a ningún lado, ni VBA!

Me enfocaría en expandir su conjunto de habilidades a algo como la administración del servidor SQL, el análisis empresarial, la inteligencia empresarial o la administración del sitio de SharePoint. Esas son habilidades muy comercializables en este momento, pero generalmente están relacionadas con TI. Si puede ramificarse en su posición actual y asumir más responsabilidad, le ayudará tener esa experiencia para dar el salto a una nueva carrera más adelante. Puedo decir honestamente que no he visto ningún anuncio de trabajo en los últimos años buscando experiencia en Access o Excel VBA, aunque podría depender del tipo de industria o departamento en el que se encuentre.

No creo que VBA excel y access sql sean bastante útiles para el análisis ad-hoc, pero no se escalan lo suficientemente bien como para ser útiles para grandes proyectos. Debido a esto, sospecho que hay un límite definido para la cantidad de valor que podrá agregar usando estas herramientas solo.

Por otro lado, he oído hablar de al menos un caso de una corporación multinacional que ejecuta procesos comerciales críticos utilizando macros VBA de Excel con cadenas locas, por lo que podría tratar de convertirse en el tipo al que se llama para depurar algo así cuando deja de funcionar .

Alternativamente, podría aprovechar su experiencia para desarrollar material del curso o publicaciones de blog que enseñarían a otros cómo usar VBA Excel y acceder a SQL.
Algo como esto: cursos de Excel

Excel, Access, SSMS, BI, Data Scientists, Big Data, Gerente de datos de TI, VP Enterprise Info Tech (empresa pequeña a mediana).

Solo hipotético jajaja.