¿Cómo creces en una habilidad cuando eres el líder de la empresa en esa área?

Soy miembro de una pequeña startup. Cuando decidimos considerar incluir un poco de IA en nuestro producto, me pidieron que investigara, simplemente porque lo encontré interesante y había tomado algunos cursos de IA/Aprendizaje automático en la universidad (licenciatura).

Hoy, soy el líder del componente central de IA de nuestro producto. El único problema, necesito (y quiero) más experiencia en el área.

Si este fuera un puesto habitual, asumiría que me uniría a un departamento grande y pasaría tiempo aprendiendo y creciendo con desarrolladores senior con mucha experiencia en el campo. El viejo dicho "Rodéate de personas mejores que tú".

Tal como está hoy, debido a la falta de experiencia, la mayoría de las decisiones que tomo son de prueba y error, lo que nos está ralentizando. Sin comprender completamente el estado de la industria, a menudo dedicábamos una buena cantidad de tiempo a implementar una solución, solo para descubrir un mes después que estábamos reinventando la rueda o haciendo algo que se sabía que era ineficaz. Y, naturalmente, no voy a proporcionar el mejor entorno de crecimiento para las personas de la empresa que realizan el trabajo de IA bajo mi mando.

Es cierto que definitivamente he crecido mucho en habilidades desde que comencé en mi puesto, sin embargo, todavía dudaría en describirme como algo más que tener un nivel de habilidad "intermedio" en el campo.


Para hacer de esta una pregunta valiosa para cualquiera:

¿Cuáles son los pasos prácticos que mi empresa o yo podríamos tomar para ponernos rápidamente al día en un campo donde la experiencia de la empresa es más o menos autodidacta?

En nuestro caso, probablemente no tengamos los recursos para aportar una experiencia masiva, pero cualquier consejo al respecto sería apreciado.

No vas a ponerte al día rápidamente .
Muy buena pregunta. Aprender en el trabajo está muy bien, pero a veces sientes que falta algo. A menudo es difícil encontrar el tiempo para aprender las mejores prácticas, los trucos del oficio, etc.
Lea, practique, codifique, discuta, etc.
Sin realmente reconocerlo de esta manera antes, me has hecho darme cuenta de que también estoy en tu lugar. Gran pregunta.
En mi opinión, mejorará naturalmente a medida que avance en este proceso de prueba y error. A diferencia de un aficionado, no puedes simplemente alejarte de algo mal considerado.
Estás trabajando en el mundo de I+D del desarrollo de SW. Es bastante diferente del mundo del desarrollo Web/CRUD. Muy rara vez hay un "experto experimentado" disponible en el mundo de I+D. Eso es en lo que su empresa espera que se convierta. Si bien la prueba y el error están bien cuando comienzas a aprender algo por primera vez, en algún momento deberías estar más informado y comenzar a tener razones reales para la dirección que estás tomando. No parece que estés creciendo al siguiente nivel. Debe comenzar a aprender algunas de las técnicas de resolución de problemas más formales para aprender a tomar decisiones más razonadas.
Esto es básicamente una decisión de comprar versus construir. Una empresa podría contratar a un experto o hacer que su personal existente aprenda lo que necesita. No hay opción gratuita.
Cuando leí por primera vez el resumen de la pregunta, mi reacción interna fue "una habilidad crece al ser un líder en ella" :) Tener que ser el maestro de algo tiene una forma de empujarnos a aprender.
En caso de que no lo sepas, te recomiendo el libro "Inteligencia artificial: un enfoque moderno".
¡Ve a hacer un doctorado en IA o contrata a alguien que lo tenga! Idealmente, desea al menos 3 personas que hayan realizado su doctorado en IA en diferentes universidades.
Muy buena pregunta. Solo espero que las respuestas sean tan buenas como esta.
Data Science SE es un buen lugar, no dude en preguntarme directamente también.
En mi empresa anterior, solíamos traer a un consultor "que resultó ser amigo del director general propietario" y ese consultor nos hacía preguntas para saber qué habíamos hecho, qué estábamos haciendo, cuál era nuestro objetivo, la meta a ser. Sugeriría soluciones e introduciría tecnologías que nunca pensamos que estuvieran disponibles. En cuanto a mí, enfrentaba nuevos problemas mensualmente y no resolverlos de manera eficiente haría que nuestro equipo llegara tarde. Por lo tanto, solía preguntar en línea, por ejemplo, stackexhange y otros sitios web de preguntas y respuestas incluso pagados para obtener la opinión de los expertos.
Es difícil hacerlo bien la primera vez, por lo que siempre se producirán rastros y errores. Si alguien acertó en algo a la primera, o lo hizo antes o fue suerte. Siempre hará una conjetura basada en el conocimiento acumulado que ha adquirido a lo largo de los años. Solía ​​trabajar durante ~11 horas diarias y tenía al menos 3 horas para aprender.

Respuestas (11)

Básicamente, estás en el mismo camino que cualquiera que quiera aprender algo en su tiempo libre. Si no hay expertos internos, búsquelos en otro lugar.

Los siguientes son los mejores recursos.

  • Seminarios,
  • conferencias,
  • Cursos,
  • artículos en línea,
  • Dado que es una tecnología bastante nueva, podría considerar la publicación científica en ese campo. Podría considerar ponerse en contacto con algún científico informático de las universidades, que podría dedicarle un poco de tiempo para darle alguna dirección sobre dónde debe buscar.

Los precios y la eficiencia de varios métodos pueden diferir, pero depende de su posición y de lo que su empleador esté dispuesto a gastar.

Si no está seguro de dónde buscar este tipo de lugares, siempre puede consultar [MeetUp](meetup.com) para ver si hay alguno en su área. Otra opción sería volver a tu escuela (o una local) y hablar con los profesores/estudiantes en una clase apropiada.
Cursos online. Echa un vistazo a EDx o Coursera.
Olvidaste el desbordamiento de pila.
Con respecto a su sugerencia de hablar con un experto en el campo de una universidad. ¿Tiene alguna sugerencia de cómo hacer contacto? (¿O vale la pena una pregunta completamente nueva sobre la academia?)
En Academia , tendrías más vistas de todo el asunto, pero al tratar de encontrar algunas publicaciones (arXiv, por ejemplo), podrías identificar a algunas personas que trabajan en ese campo. Y luego, no estoy seguro de un enfoque universal, pero podría intentar una llamada telefónica o un correo electrónico. O si no está muy lejos, ve tú mismo. Probablemente ayudaría si demuestras que has leído su trabajo y tienes preguntas concretas al respecto.
@SCB con respecto a su pregunta sobre cómo contactar a alguien de la Academia. Soy un estudiante de doctorado y estaría muy feliz y dispuesto a hablar con alguien sobre mi investigación con una taza de café, incluso si la invitación llega de la nada. Sin embargo, soy "solo" un estudiante de doctorado, si desea hablar con un posdoctorado o un profesor, sus posibilidades son bastante bajas. Sin embargo, un estudiante de doctorado aún podría ayudarlo mucho, no solo respondiendo preguntas sino también orientándolo hacia artículos importantes, estado del arte, buenas revistas, etc.
@SCB Puede intentar averiguar si algo como una IEEE Computer Society se reúne en su área. Muchas ciudades grandes los tienen y la mayoría de las universidades con programas notables de Ciencias de la Computación tienen capítulos. Las reuniones se utilizarían principalmente para la creación de redes, por lo que incluso si no hay un experto en IA en la reunión, es posible que encuentre a alguien que conozca a alguien...

La mayoría de los campos en los que soy competente son autodidactas en mi propio tiempo de trabajo cuando tuve la oportunidad. No tener superiores significa que trabajas desde lo básico hacia arriba, pero eso no es necesariamente algo malo para ti personalmente. Significa que tu conocimiento se vuelve bastante completo.

Busque cursos, etc. que usted podría ser capaz de convencer a sus empleadores para que paguen. Es importante llenar los vacíos entre lo que puede aprender por su cuenta y las mejores prácticas de la industria.

Una de las ventajas que encontré fue que no estás atado a lo que se enseña y, a veces, resuelves problemas de maneras únicas porque eres demasiado ignorante para saber mejor. En un ejemplo personal, combiné dos campos para resolver un problema y no le di mucha importancia porque era la única forma en que podía averiguar cómo hacerlo. Pero la solución ahora está en uso en 11 departamentos gubernamentales y la mayoría de las escuelas en dos países pequeños e incluso me consiguió una audiencia con un rey.

Esta es, en mi opinión, la mejor respuesta. Lo único que falta (que también se omite en todas las demás respuestas) es la idea de desarrollar nuevos conocimientos, si realmente está trabajando en la vanguardia de un campo en particular. No todo el conocimiento proviene de fuentes externas. Es posible crear nuevos conocimientos.
Este método conlleva el riesgo de adquirir malos hábitos, al igual que todo autoaprendizaje.
@Wildcard Muy buen punto, en realidad hice esto porque ataqué un problema en particular desde un punto de vista no estándar en dos campos y los puse juntos. Intentaré pensar en una manera de agregarlo a la respuesta.
@WeckarE. no hay garantía de que los "superiores" no transmitan sus propios malos hábitos; el truco en todos los casos es exponerse a tantas fuentes de información como sea posible y nunca dejar de aprender.
@HorusKol Es por eso que personalmente siempre recomiendo explorar nuevos temas en un entorno académico o al menos en el aula. Un análisis de grupo proporciona un búfer de basura realmente bueno, la mayoría de las veces.
@WeckarE. no necesariamente en tecnología. La idea de control de versiones de mi profesor de programación era usar Dropbox. Cuando me vio usando mercurial "oh, eso parece interesante, definitivamente deberíamos investigar eso". Y ella era del departamento de lenguajes de programación.

Tal como está hoy, debido a la falta de experiencia, la mayoría de las decisiones que tomo son de prueba y error, lo que nos está ralentizando.

Entonces, ¿por qué no contratar a alguien con más experiencia en el campo?

Si este fuera un puesto habitual, asumiría que me uniría a un departamento grande y pasaría tiempo aprendiendo y creciendo con desarrolladores senior con mucha experiencia en el campo. El viejo dicho "Rodéate de personas mejores que tú".

Ese dicho aún se mantiene. Usted es ese departamento más grande, pero le faltan los desarrolladores senior con mucha experiencia en el campo . Parece que contratar a un desarrollador senior de este tipo ayudaría a tener y desarrollar el conocimiento experto en el campo para su empresa y el equipo.

probablemente no tenemos los recursos para traer experiencia masiva

Le costará, ya sea traer a otro empleado con experiencia o convertirlo a usted en uno. Puede haber un término medio en forma de empresas de consultoría, que podrían reducir la cantidad de prueba y error que está realizando.

Esta es una solución, pero no siempre es posible contratar a alguien (especialmente a un desarrollador senior) solo para aportar conocimiento a su empresa.
Piensa si OP viviera en algún lugar de África central. ¿Sería fácil que algún veterano experto en IA se trasladara allí? Además: el trabajo remoto realmente no es fácil si quieres hacerlo legalmente en todos los continentes.

Estoy en una situación similar. Soy el desarrollador principal de I+D en una empresa bastante pequeña (25 empleados).

Me gusta aprender cosas nuevas, así que tomo cursos todo el tiempo. Udacity es genial, también lo son Edx y Coursera, etc. Puedes aprender mucho allí, incluso si no tomas ningún curso y solo navegas, verás qué temas y herramientas están "de moda".

En términos de aprendizaje de IA, hay un gran curso disponible sobre Deep Learning en Udacity. Se basa en la biblioteca Google TensorFlow, que aún es bastante nueva y muy potente.

Hice ese curso y luego me puse a hacer mi propia red neuronal para predecir partidos de fútbol.

Otra forma de desarrollar sus habilidades y ver cómo está a la altura es hacer una codificación competitiva. Kaggle es un gran sitio web para desafíos de aprendizaje automático. Recientemente entré en un desafío para principiantes para la clasificación de hojas y actualmente estoy en el puesto 200 entre 400 participantes, ¡así que sé que tengo mucho más que hacer para mejorar! Hay foros allí donde puede hacer preguntas, la gente comparte cuadernos de Python y otras cosas, por lo que hay muchas formas de aprender.

Además, es importante hablar con la gente (o hablar con una persona que habla con la gente). Tengo un amigo en Cambridge que va a muchas reuniones y está al día con las últimas tendencias y novedades. Me aseguro de mantenerme en contacto principalmente porque es un tipo genial y nos gusta intercambiar ideas, pero también porque me deja saber lo que está pasando.

No estoy del todo convencido de que la codificación competitiva sea útil. Kaggle puede ser diferente, pero muchos de estos sitios favorecen las características que son fáciles de medir (como el consumo de memoria) sobre las que son difíciles de medir (como la capacidad de mantenimiento).
Kaggle ni siquiera mira el código, se trata de cómo funciona el algoritmo para categorizar cosas, etc. Por lo general, descarga un archivo CSV de entrada, crea un CSV de salida y lo carga para su evaluación. No importa qué lenguaje, marco esté usando, etc. Si quiere saber qué tan bueno es en el aprendizaje automático, creo que es un punto de referencia decente. Solo he hecho una competición, pero creo que haré más.
Kaggle es un buen lugar para comparar sus enfoques con los mejores posibles actuales: puede darle un sentido de lugar (a través del rango público). Aunque algunas de las técnicas utilizadas para ganar concursos, como conjuntos muy complejos o la búsqueda y el uso de fugas de datos (donde la mejor práctica sería eliminar la misma fuga y reiniciar su proyecto), no se traducen bien en las prácticas de la industria. Además, la clasificación está algo oscurecida por la copia de guiones. Si tiene 200/400 en su propio código, su verdadera comparación con los otros competidores es probablemente más favorable de lo que implica un 50% bruto.
Otra forma de hacer una codificación competitiva son los hackatones internos. Todos tienen la oportunidad de presumir frente a sus compañeros y el grupo puede aprender unos de otros.

Enseñar. Comparta su comprensión con el resto del equipo.

Cuando tienes que enseñar a alguien más, tienes que:

  • detenerse y repensar las cosas para hacerlas identificables
  • descubre tus propias suposiciones
  • descubrir lagunas en su propio conocimiento
  • descubrir lagunas en el conocimiento de su equipo

Todo esto lo hará mejor en su propio campo, mejorará a su equipo y, en general, hará que su lugar de trabajo sea un poco mejor.

Además de las otras respuestas:
Usted habla sobre el crecimiento de las personas en la empresa que realizan el trabajo de IA debajo de mí : ¿hay algo que pueda hacer para usar sus recursos? Puede que no tengan tanta experiencia como usted, pero tienen sus propios pensamientos, percepciones, técnicas de búsqueda, etc.

¿Por qué no dejar que investiguen más para evitar reinventar la rueda o hacer algo que se sabe que es ineficaz ? Utilice a sus colegas como compañeros de entrenamiento en el desarrollo de los próximos pasos.

Estoy en la misma posición que usted (aunque en un campo ligeramente diferente de la ingeniería de software), por lo que puedo relacionarme totalmente con su situación.

Otras personas dieron buenas respuestas sobre el aprendizaje a través de los canales típicos (libros, etc.), lo cual es un buen consejo. Con el tiempo, será mejor para elegir recursos más efectivos.

Un poco que agregaría, para usted y otras personas en la misma situación, es ser honesto con sus compañeros y personas mayores. No tengas miedo de decir que no sabes, admite los errores que has cometido porque todo el mundo los sabe. Esto es muy importante desde la perspectiva de las personas a las que diriges porque necesitas su confianza.

Y, naturalmente, no voy a proporcionar el mejor entorno de crecimiento para las personas de la empresa que realizan el trabajo de IA bajo mi mando.

Puede dar un buen ejemplo de aprendizaje por su cuenta, también compartiendo recursos que encontró efectivos, etc. Así que no es tan malo como podría pensar.

¡Buena suerte!

"Puedes dar un buen ejemplo de aprendizaje por tu cuenta..." Adoptar este enfoque con los empleados implica que esperas que aprendan las habilidades que necesitan para hacer su trabajo en su propio tiempo. Proporcionarles el tiempo (remunerado) para aprender podría ser un buen enfoque, pero la implicación de que usted espera que pasen horas adicionales pero no remuneradas en el trabajo no va a funcionar bien (y no debería; parece extremadamente falso, incluso si no fue así).
Por tu cuenta, quise decir aprender sin mucha guía, decidir qué aprender, etc. por ti mismo, durante las horas de trabajo. Perdón por el malentendido, totalmente de acuerdo con lo que dices.

Sugeriría colaborar con un departamento/profesor de IA de una universidad. Normalmente cobran mucho menos que los consultores profesionales y tienen las últimas actualizaciones en el campo. También pueden vincularlo con sus alumnos anteriores que han trabajado en problemas similares. Estuve en una situación similar hace unos años cuando estábamos haciendo algunos desarrollos avanzados en telecomunicaciones con un equipo muy inexperto. Colaboramos con una universidad y teníamos reuniones semanales periódicas con el profesor. Era un mecanismo de corrección de rumbo y el profesor también nos actualizó sobre los últimos documentos en el campo. Nos ayudó inmensamente.

¡Podcasts!

Escucho muchos podcasts de desarrollo y tecnología casi a diario; cada vez que viajo al trabajo es una excelente oportunidad y supera a los canales de radio habituales.

Como resultado, mi conocimiento ha aumentado en muchas áreas, y puede obtener información detallada de expertos experimentados de la industria, sin renunciar a nada de su valioso tiempo libre.

Escuche en el coche, en el tren, en el autobús, mientras pasea al perro, en el gimnasio, mientras ve la televisión (sólo una toma de auriculares), mientras espera en una cola, a la hora de comer en su trabajo diario, en la cama antes de dormir o al despertar, al tomar el sol, etc.

La respuesta muy simple es que los entregables de su trabajo deben incluir una nueva categoría: "investigación".

Si está utilizando una metodología ágil, entonces su sprint incluye una tarea para investigar el estado del arte en el campo.

La forma más efectiva de hacer esto para grandes desafíos de ingeniería como aprender ML, que es un campo masivo en aspectos matemáticos, algorítmicos y de ingeniería, es unirse a un departamento en una empresa establecida. Regresas a una startup unos años más tarde como un veterano experimentado.

Probablemente tenga algo de la experiencia necesaria en su inicio en este momento para entrevistarse para estos roles.