¿Qué clases de CS son las más importantes para un ingeniero de big data?

Hay dos tipos de ingenieros de big data, los que crean aplicaciones y los que crean productos .

Si cree que va a construir productos, la respuesta es CADA CLASE CS. Porque si vas a construir una base de datos, por ejemplo, vas a competir en un mercado con Oracle y DB2 y estas nuevas cosas locas de Microsoft que hacen 5 tipos de optimizaciones en un solo almacén de datos. Lo que significa, esencialmente, que estás compitiendo con las mejores mentes en los últimos 30 años que han hecho que estos productos sean los mejores. Bueno, excepto que la nueva base de datos de MSFT se acaba de anunciar, pero apostaría a que matará a MongoDB. Bien, eso significa que vas a estar en un equipo de ingenieros que conocen sus cosas.

Es más probable que construyas aplicaciones, lo que significa configurar tecnologías existentes como Lego. En este caso, las cosas de CS que debes entender mejor tienen que ver con optimizaciones (hmm, no sé lo que enseñan hoy en día). Entonces, si fuera yo, estudiaría para dominar la comprensión de las tablas hash, la administración de memoria virtual, las condiciones de carrera y obtener una comprensión fundamental del problema P NP. Lo más sorprendente que puedes hacer es estudiar un código y determinar qué tan rápido se ejecutará dado que tiene que calcular n cosas. Es n? ¿Es N para una potencia? ¿Está en 2logN? Aprende esa teoría y estás listo. El resto es TODO práctico.

Aquí hay una analogía de autos.

Digamos que va a sintonizar un Nissan GT-R. Esta será una aplicación (no un producto). No vas a tener la oportunidad de obtener un título y luego entrar a la sede de Nissan y decir, quiero liderar el próximo equipo de ingeniería GT-R. Oportunidad de grasa. Aun así, hay personas que pueden hacer los cálculos y calcular la potencia dada el tipo de combustible, el ángulo del cigüeñal, el volumen de los cilindros. Como este chico [1]. Luego hay tipos que pueden resolver las cosas ensuciándose durante años de prueba y error, como estos tipos [2].

Tómelo de mí, puede tener una carrera satisfactoria de cualquier manera, todo sobre si prefiere un enfoque práctico o un enfoque teórico. Yo, me ensucié las manos en las tripas de aplicaciones de bases de datos durante 20 años.

ASI QUE. Asume la nube. Eso significa que cuando se trata de gastar su tiempo y dinero, debería estudiar sus cerebros para obtener certificaciones de AWS o Azure. Es divertido ser un geek de la base de datos, pero en el mejor de los casos conocerá bien una o dos bases de datos. Eso se puede hacer en 6 o 7 años o el equivalente a una docena de aplicaciones empresariales creadas de principio a fin. En ese momento, estará desesperado por comprender las redes y la seguridad y la cadena de bloques y todas las demás cosas interesantes adjuntas a las bases de datos. Si estudias para esas competencias, te irá muy bien en la industria. Eso es parte de su educación continua. Aprenda uno de los nuevos idiomas como Python o Scala o Golang, y escriba cosas de nivel API. Entonces tendrás una cabeza llena de conocimientos útiles.

Notas al pie

[1] Motores de automóviles: explicados

[2] Junkyard Turbo Swap! Chevy-Powered 1971 Datsun 240Z Autocross Thrash – Roadkill Ep. 26

Sugiero lo siguiente:

Obtenga todas las estadísticas, probabilidad y asignaturas y asignaturas optativas de álgebra lineal que se ofrecen bajo su título de CS. Por supuesto cálculo.

Luego obtenga toda la teoría de grafos que puede tomar.

¿Por qué parece matemática pesada? Debido a que estas habilidades matemáticas te harán proporcionar un mejor contexto sobre lo que te dicen tus grandes datos. Simplemente limpiar los datos y normalizarlos antes del procesamiento real es razón suficiente para tomar estadísticas.

Aprenda un entorno de programación de big data utilizable, probablemente python o lo que quiera que ofrezca su oferta de CS (pueden tener una licencia con descuento en ciertas herramientas de programación caras). Aprende pero no te “cases” con eso. Tarde o temprano, o dependiendo de su eventual industria de destino, las herramientas de big data que realmente utilizará serán dictadas por lo que sería la norma para el momento en que termine su título.

Para este fin, tome cualquiera de las teorías de los lenguajes y compiladores de computación. No necesariamente para crear nuevos lenguajes, sino para ayudarlo a elegir una nueva sintaxis más rápida, nuevos métodos de programación. Podría permitirle ser productivo en cualquier nueva habilidad de programación en cuestión de días.

Matemáticas, estadística, programación, bases de datos y sus diseños, investigación de operaciones, algoritmos, álgebra / cálculo y desarrollo de aplicaciones web.