¿Cuál es la programación más difícil o la ciencia de los datos?
Vale, por lo tanto, no parece que haya un montón de buenas respuestas y estoy bastante calificado para responder a esto. Así que aquí va una larga.
Algunos antecedentes. Vengo de matemáticas puras en la escuela de posgrado (aunque hice una tonelada de programación en undergrad). Luego hice dos años de trabajo de ciencia de datos que incluía una tonelada de ingeniería de datos ya que estaba básicamente solo sin apoyo dev/DE. Luego me mudé a una empresa donde era ingeniero/DS de ML haciendo motores de optimización personalizados y ayudando a implementar modelos tradicionales de ml. Ahora estoy trabajando como ingeniero de DE/backend en almacenamiento de datos y sistemas de transmisión de datos.
Disfruto diseñando y construyendo cosas. Eso podría ser teoría matemática, un modelo matemático, un motor de optimización, o una tubería de datos. Tengo una actitud de artesano hacia el trabajo. Encuentro más disfrute en el lado técnico de las cosas que en el negocio (a pesar de que el contexto empresarial y la comprensión son fundamentales para el buen diseño).
Descubrí que muchos de los roles de DS son papeles de analista de datos / analista de negocios en esteroides (no un ligero sólo una observación). Esto significa aplicar el conocimiento matemático/estadístico, el conocimiento de ML o el conocimiento de Big data/SQL junto con un profundo entendimiento empresarial para obtener información y guiar las decisiones. Esto significa informar, consultar y construir modelos. Si usted está en una situación en la que no tiene un montón de apoyo de ingeniería, entonces esto también puede significar la construcción de infraestructura y tuberías (si usted es nuevo en DS evitaría estos papeles a menos que realmente desea empujar a sí mismo). Tenga en cuenta, que la única arquitectura y diseño realmente original aquí sería el diseño de modelos y potencialmente características de ingeniería para los modelos. El resto es realmente más aplicar las técnicas existentes a los problemas de negocios, sumergirse en los datos para obtener información/comprensión, y realizar pruebas estadísticas. (Nota: la mayoría de los DS no crean nuevos modelos de ML desde cero, es más bien un papel centrado en la investigación que pocas personas sin Ph.D. tendrán.)
Por otro lado, la ingeniería está más orientada al diseño. Usted seguirá aplicando principalmente soluciones existentes a un problema de negocio, pero ahora en lugar de pensar en estadísticas/math y optimización, usted estaría pensando en el rendimiento, la fiabilidad y el monitoreo. Usted necesita construir algo que no sólo resuelve el problema actual, pero se puede ajustar y escalar con gracia. Pensarás en cómo exponer tu trabajo como API para que otros lo consuman. Aquí un mal diseño / API puede causar tanto estragos a través de la deuda técnica como un mal modelo de ML puede a través de malas predicciones. Yo diría que la experiencia es igual de importante en ambos papeles. Simplemente tienen un punto de vista ligeramente diferente sobre lo que es.
Personalmente, cuando miro la trayectoria de mi carrera quiero ser alguien que pueda liderar la estrategia de datos de toda una organización. Esto significa poseer todo desde la ingestión en adelante. Con este fin, trato de encontrar siempre algo nuevo para aprender en un nuevo papel, ya sea DS, MLE, DE, o ingeniería de backend. Así que para mí, están tan estrechamente relacionados que no es necesariamente una cuestión de qué, sino más bien ambos.
Creo que si realmente quieres ser un individuo de alto impacto en el espacio DS necesitas tener las técnicas de ingeniería de software y experiencia. No creo que eso sea cierto al revés. Muchos ingenieros de software son de alto impacto sin usar DS. Así que si con eso en mente DS es un papel de estilo mucho más multifuncional.
De acuerdo, he revisado los puntos de decisión personales. En el lado de la carrera / economía la respuesta clara que siento es convertirse en un ingeniero de software. Típicamente veo más roles junior, salarios más altos para la misma experiencia, y una estructura de carrera mucho más estandarizada. Además de eso, la preparación para un trabajo es mucho más clara con ser capaz de codificar bien en un solo idioma y una comprensión de SQL es todo lo que realmente necesita para un rol junior. En el lado opuesto si usted pregunta lo que alguien necesita para ser un DS obtendrá mil respuestas diferentes de la programación a la visualización a álgebra lineal a las estadísticas, etc. Además, para las carreras tardías, un ingeniero suele tener dos opciones para convertirse en un colaborador individual de alto nivel o entrar en la gestión. En teoría, podía ver lo mismo para DS, pero en realidad, actualmente, sólo veo un camino en la dirección después de DS senior en la mayoría de los lugares.
En resumen, la apuesta segura es la ingeniería, pero realmente se reduce a lo que quieres hacer y lo duro que quieres empujar a ti mismo. No me estresaría demasiado sobre ello en sus primeros trabajos, ya que probablemente puede cambiar fácilmente entre ambos en un nivel junior/medio. También depende mucho más de la empresa y del papel individual que del título. Tómese unos años para obtener algo de experiencia y re-evaluar. Además, no tengas miedo/te sientas culpable de saltar un montón al principio de tu carrera, ya que es la manera más rápida de ascender y aprender. La mayoría de la gente entiende esto y no vale la pena preocuparse por los pocos que lo toman personalmente ya que no tienen su mejor interés en mente. Sin embargo, siempre trata de hacer lo correcto por la empresa en la que estás y hacer un impacto positivo incluso si te vas. Parte de la ventaja de tener muchos papeles temprano en su carrera es hacer relaciones sólidas con grandes personas.
Espero que ese puesto de larga duración ayude. Siéntase libre de responder o DM me con cualquier otra pregunta y voy a responder como tengo tiempo.
¡Gracias, gracias, gracias! Fui a la escuela de posgrado para matemáticas puras y ha sido difícil la transición fuera de la academia ya que he encontrado matemáticas puras es raro y la mayoría de la gente ni siquiera sabe que hay una diferencia (incluso entre los científicos de datos que he encontrado - una persona pensó que las matemáticas puras comenzaron y terminaron con la teoría del grupo Galois porque esa es la única matemática pura que se requiere para tomar - olvidar el análisis real o topología algebraica...). También tengo una licenciatura en CS de pregrado. He estado esperando una respuesta en este foro de alguien con un fondo similar.
Fui un adjunto durante tres años. Usted puede trabajar 200% ETC en tres campus diferentes y tirar en menos de 40k. Mi compañero en ese momento nos apoyó como camarero en un restaurante de cadena. Oh y los tres campus pagaron alrededor del percentil 70 con pago adjunto... Así que por encima del salario promedio...
Su consejo es muy útil. He estado debatiendo los dos desde que tengo un extenso conocimiento de Java, pero eso no se traduce a DS el mejor. También han pasado unos 6 años desde que en realidad estaba desarrollando aplicaciones. También he encontrado el nivel en el que me gustaría trabajar en DS requiere un doctorado y sólo tengo un MS. Estaba en un programa de doctorado pero me fui cuando ambos probablistas (mi área) dejaron de tomar estudiantes y tomaron posiciones de silla. Disfruté el curso de Andrew Ng porque probamos la mayoría de los resultados.
Ahora me inclino en el desarrollo de Android App, ya que la barrera de entrada a una verdadera posición DS parece demasiado alta sin la red social que tenía de vuelta en la universidad. Como usted ha mencionado, el campo SWE parece tener más oportunidades de acceso.
Una de mis dudas con DS es tratar con la gente de negocios. Hice un tiempo en Equifax (analista... gran error). Me fui cuando mi jefe no podía entender un problema de adición/multiplicación y no podía comunicarme con él. Y yo era un profesor decente. No me puedo imaginar presentando complicados resultados de datos a las partes interesadas. ¿Es mejor en SWE? Prefiero estar con otras personas técnicas en un equipo y no tratar con las partes interesadas del negocio. ¿Es una expectativa ridícula?
De todos modos, gracias. ¡He esperado meses por una respuesta de un matemático puro! ¿Puedo darte un consejo?
Es curioso, también me especialicé en matemáticas puras (undergrad, no grad tho), y también realmente disfrutar de diseñar y construir cosas en lugar de centrarse principalmente en el modelado estadístico y el conocimiento empresarial, que también son interesantes por derecho propio. Me pregunto si la forma en que la gente de matemáticas puras piensa a través de las cosas generalmente se alinean mejor con la parte de alto nivel de "artesanía".
Estoy estudiando matemáticas puras en undergrad y estoy considerando un doctorado en matemáticas, ya que realmente quiero hacer investigación en el diseño de nuevos modelos de ML e investigar IA en general.
En su experiencia, ¿es común que los científicos de investigación en la industria tengan un doctorado en matemáticas? Estudio un montón de CS y también programar mucho, pero estoy pensando que un phd de matemáticas no sería aa deseable para las empresas superiores en comparación con un phd de CS. ¿Alguien con experiencia tiene algún consejo?
Soy un ingeniero de ML (sistemas, modelos, infraestructura, análisis) que acaba de pasar a un rol más DS/BI Analyst (modelos, análisis, poder BI).
Definitivamente estoy de acuerdo en la diferencia de alcance del impacto. Es como... el campo de datos y análisis está automatizando muchas métricas y estadísticas de la vieja escuela, pero hay tantas ganancias y eficiencias fáciles que se están perdiendo porque solo contratan matemáticas/DS/actuarios en lugar de ingenieros.
Eso no quiere decir que uno sea inherentemente mejor o más valioso, pero definitivamente creo que la ingeniería tenía un techo natural más alto, simplemente porque la mayoría de las empresas tienen una necesidad limitada de estadísticas de lujo más allá del nivel inferior, pero un deseo ilimitado de eficiencia, escala, automatización, mantenimiento
TLDR: La mejor manera de avanzar en su carrera en ciencia de datos es convertirse en un ingeniero de software. Esto se debe a que hay más funciones subalternos disponibles, salarios más altos y una estructura profesional más estandarizada. Además, es más fácil prepararse para un trabajo como ingeniero de software que para un científico de datos.
¿Cuáles son las clases en la universidad que te pareció más útil para DS? Yo también creo que leetcode será el camino para la ingeniería y todavía creo que proporciona la solución de problemas básicos y hace cumplir buenas prácticas de codificación.
Ser algo así como un científico de datos de plomo es algo de lo que resueno contigo. Si es posible me gustaría recoger sus cerebros sobre cómo subir efectivamente en la gestión?
Por último, ¿siente usted la necesidad constante de mantenerse al día con las nuevas habilidades/algoritmos/avances en la industria también?
A pesar de que ya ha escrito mucho, tengo que preguntar: ¿tiene alguna experiencia con la ingeniería de ml? Ese es mi interés actual. Parece que nuestros antecedentes e intereses son razonablemente similares, pero claramente tienes más experiencia.
Artículos Relacionados: