¿Cuáles son las habilidades transferibles del ingeniero de software al aprendizaje automático?

Puede desarrollar sus cursos de matemáticas a nivel de maestría y doctorado en cursos de aprendizaje automático y afines. Significa que tiene una habilidad matemática para leer los documentos y documentos de aprendizaje automático, asistir a conferencias y escuchar, y discernir, si no derivar, las fórmulas. Como estudió informática, ya estudió un sistema operativo, sus aplicaciones y redes para computadoras. Esto generalmente requiere facilidad con lenguaje (s) de programación. Con una pasantía y estudio para ingeniería de software, ha realizado programas no triviales a nivel de sistemas. Por lo general, aplica los lenguajes de programación preferidos de su equipo y sus bibliotecas estándar, y trabaja con su equipo en el desarrollo de productos. Le brinda experiencia para diseñar, administrar, desarrollar y verificar la calidad de su software para el producto de su equipo. Si hace un buen trabajo, transfiere fácilmente su software a la administración de productos, comercializadores o vendedores. Y debería devolver su trabajo por ingresos y el retorno de su inversión.

Le recomiendo que estudie más cursos de inteligencia artificial, cursos de estadística y cursos de matemáticas aplicadas dentro de su asignación de grado. Usted obtiene un estipendio, residencia y servicios tales como asesoría, bibliotecas, estudiantes de doctorado, personal y apoyo de la facultad para su trabajo de curso e investigación. Lo ayudan a prepararse para una investigación independiente y a retribuir a la facultad y su departamento. Durante su selección de unidades dentro de tales materias, eventualmente puede sentir cuánto estudiar el aprendizaje automático. Puede tener más sentido proceder con un enfoque de ingeniería de software, aplicando procedimientos específicos del aprendizaje automático en su sistema. Pero, alternativamente, podría tener sentido entrar en trabajos de investigación, publicaciones de aprendizaje automático o más aspectos teóricos del tema. Por último, debe decidir cómo combinar y reenviar su compromiso de doctorado. Esto significa que usted hace un plan, estudio y desarrollo para graduarse con un doctorado en aprendizaje automático, y coherencia y / o desarrollo de su trabajo anterior en ingeniería de software. También podría ayudar ver cómo le interesa su aprendizaje automático en Ph.D. encaja en la facultad, el departamento y el campo más amplio de la informática.

Supongo que tiene un buen conocimiento práctico de uno o más lenguajes de programación, HTML, CSS y JavaScript, etc., así como RDBMS / SQL. Si es así, existen varias opciones relacionadas con su desarrollo web que incluyen:

  • Arquitectura / ingeniería de aplicaciones web: ¿Cuál de estos puede ser apropiado para su trabajo? ¿Qué marcos, patrones de software se pueden usar?
  • Lenguaje de programación de elección: ¿Cuál (es) usar? Esto puede depender del idioma (s) de las herramientas de aprendizaje automático que necesita, o quizás del repositorio que utiliza para el almacenamiento de datos. Python es muy popular en el aprendizaje automático debido a la cantidad de bibliotecas disponibles, pero esto también es cierto para Java, que se utiliza en Hadoop, Mongo y otros productos de big data .
  • Paradigma de programación: no es específicamente un problema de desarrollo web, pero su trabajo tiende hacia la POO. programación procesal, lógica o funcional?
  • Almacenamiento de datos: ¿su trabajo incluirá datos estructurados o no? Entonces, ¿qué base de datos usar, un RDBMS, un almacén de documentos, una base de datos de gráficos, etc.?
  • Herramientas de aprendizaje automático: ¿cuáles usar y en qué idiomas están escritas? Familiaridad con las técnicas de minería de datos / texto, etc. y la naturaleza de los resultados producidos.
  • Integración: Dependiendo de lo anterior, la capacidad de integrar diferentes software de terceros para trabajar juntos, entradas y salidas de estas herramientas también.
  • Lectura: ¿Qué han usado otros en trabajos relacionados? ¿Puedes usar esto como parte de tu trabajo?

Puede conocer algunos de estos antes de que comience su trabajo de doctorado, otros los adoptará durante el trabajo en sí.

También es posible que desee leer otra pregunta relacionada de Quora en ¿Cuál sería su consejo para un ingeniero de software que quiera aprender el aprendizaje automático?

Conocimiento teórico del software: análisis de algoritmos, estructuras de datos, programación paralela.

El aprendizaje automático es pesado en matemáticas y estadísticas. El software de aprendizaje en sí está integrado en un sistema más grande que interactúa con el entorno. Cualquier habilidad de software que relacione grandes sistemas con su entorno sería útil: base de datos, cliente-servidor, diseño de interfaz de usuario, lógica de negocios.

El aprendizaje automático parece requerir grandes conjuntos de datos. Entonces, cualquier cosa relacionada con la adquisición, gestión y organización de datos sobre personas o el mundo.

Como sé, el programador frontend no tiene nada que ver con el aprendizaje automático. Tal vez hay mucho que necesitas aprender.

Lo que tienes que aprender:

Matemáticas: cálculo / álgebra lineal / probabilidad / estadística (supongo que la mayoría de los estudiantes de CS ya han terminado la mayoría de estos cursos, solo necesita saber cómo (o cuándo) usarlos en lugar de cómo probarlos)

CS: python con numpy + scipy, así como algunas habilidades básicas / leer algunos libros o ver algunos cursos en línea sobre aprendizaje automático (Udacity? Coursera?) / Proceder al aprendizaje profundo (viendo algunos blogs y cursos en línea también) (recomiendo Stanford curso CS231n) / Aprendizaje de refuerzo (cursos en línea y blogs)

Recuerde: la codificación es muy importante. Una vez que comprenda algo nuevo, intente implementarlo con python. Intenta terminar cada tarea de codificación en esos cursos en línea.

Para ser profesional en ML / DL: lea los documentos, comprenda el documento, vuelva a implementar los algoritmos o aplicaciones en esos documentos.

Divergencia: como un verdadero investigador de DL / ML, es posible que necesite saber más sobre “POR QUÉ”, pero a veces es posible que no necesite dedicar mucho tiempo a la codificación (por ejemplo, si quiere ser profesor o investigador en Google o Facebook). Como programador o programador, es posible que necesite saber cómo “implementar”, así como algunos métodos de optimización, por lo que no necesita saber mucho sobre “POR QUÉ” (si prefiere la aplicación).

La ingeniería de software consiste en comprender un problema y encontrar una solución eficiente. Lo que constituye un conjunto de datos o un ejemplo de capacitación puede considerarse como una solución candidata. La capacidad de analizar algoritmos se puede usar en casi todo, incluido el aprendizaje automático, si sabes lo que quieres lograr con tu uso del aprendizaje automático. En pocas palabras, el pensamiento crítico y la resolución de problemas son las habilidades transferibles.

Todos son transferibles.

El aprendizaje automático es un par de algoritmos, un software de control de trabajo y mucho tiempo de computadora. Cuanto mayor es el problema, más profunda requiere la ingeniería de sistemas. Y pasará de redes informáticas intensivas de máquinas, para capacitación y validación, a dispositivos integrados para implementación.

Es necesario tener algunos antecedentes de estadísticas y ciencia de datos para comprender el ciclo de vida completo de la selección de datos, la limpieza, los algoritmos utilizados, la validación y la presentación.

Bueno, la mayoría de todas las cosas.

El aprendizaje automático es algo teórico, y es difícil. Pero, para hacerlo bien, debes tener el CS. Hay tantas plataformas increíbles que resumen los detalles del ML, pero dependen de una programación competente. Es más de la mitad de la batalla en mi opinión.

¡¡Ninguna!!

El aprendizaje automático es algo que hace una computadora.

El ingeniero de software es un rol (actualmente no puede ser ocupado por una computadora).

Los ingenieros de software enseñan a las computadoras (mediante programación) cómo aprender (por lo tanto, aprendizaje automático).

La forma en que quería que respondiera esto es: todos ellos. El aprendizaje automático es un tema de programación, y aunque existen algunos patrones, algoritmos y filosofías que necesita además de sus habilidades generales de software, sus habilidades básicas aún se utilizan.

Pocas cosas se transferirían a su programa de doctorado e investigación de ML. Podrás usar tus habilidades de desarrollo para potenciar demos pulidas más rápido que la mayoría de tus compañeros. También sería más eficiente en la ejecución de experimentos.

Sin embargo, lo que realmente importa en la investigación es obtener resultados más conceptualmente vendidos y generalizables. Para eso, necesitaría adquirir habilidades de investigación para las cuales su experiencia en ingeniería de software no necesariamente lo prepararía.

Yo diría que su experiencia en matemáticas será de gran ayuda en el aprendizaje automático. Pero el aprendizaje automático no es realmente tanta codificación, muchas especialidades en matemáticas pueden hacerlo solo aprendiendo algo de codificación básica. Pero, de nuevo, depende más del trabajo, por ejemplo, Applied Machine Learning Research necesitaría buenas habilidades de codificación con computación paralela y GPU.

More Interesting

¿Cuál es una mejor opción profesional para recibir capacitación como ingeniero con Oracle o SAP?

¿Hay algún ingeniero de software que haya visto cuyos procedimientos de trabajo y rituales diarios le parezcan súper eficientes?

Soy un codificador de Ruby on Rails. Solía ​​programar con Java 2 años antes de entrar en Rails, pero un sentimiento extraño me dijo que volviera a Java. ¿Vale la pena aprender Java en 2015?

¿Qué debería hacer un nuevo graduado con un título de CS que quiere los mejores trabajos?

Si me dan un trabajo de desarrollador para el que no soy bueno y lo hago al asignarlo a trabajadores independientes en el trabajo por adelantado, ¿qué podría salir mal?

¿Un ingeniero de software y un desarrollador de software hacen lo mismo? Y si no, ¿puede enumerar las diferencias?

Como desarrollador, ¿debería aprender y buscar tecnologías que me gustan o que son más demandadas?

¿Es demasiado tarde para aprender matemáticas a los 28 años? ¿Sería mejor ir a la escuela?

¿Qué pasará con el talento y la habilidad si cada trabajo se realiza mediante softwares?

¿En qué campos de desarrollo de software tienen más poder los individuos?

¿Cuáles son las ventajas y desventajas de desarrollar / programar en un entorno Mac?

¿Qué trabajo hace un ingeniero de pruebas en las empresas de TI?

Soy ingeniero de software con alrededor de 7 años de experiencia trabajando en los Países Bajos. Tengo un salario bruto de 4500 euros. ¿Estoy siendo estafado?

Cómo convertirse en un desarrollador de software realmente bueno y conseguir un trabajo realmente bueno

¿MBA en TI después de 2 años como ingeniero de soporte de software en Atos me ayudará a crecer mejor en mi carrera?