Hoy, exactamente seis meses después de veinte años en la ciencia, fui a una startup que desarrolla software para crear datos sintéticos, en el que integro sistemas de aprendizaje automático en el producto final. Como hay personas aquí que todavía deciden dar ese paso, describiré mi camino, o más bien, un cambio en su dirección.
Academia
Soy un físico profesional y recibí un Ph.D. en el Departamento de Física de la Universidad Estatal de Moscú. Trabajó tanto en física teórica como en experimental. Artículos en Nature y PRL, más de 700 citas, y el índice Hirsch 14. Estos detalles no son para medir algo con alguien, sino para comprender el panorama general. Si tomamos contratos que duran más de un año, entonces en puestos tan largos trabajó en cuatro países de Europa occidental. Todo estaría bien, pero recientemente, la ciencia ha comenzado a convertirse en un negocio. Las personas en las universidades solo piensan en conseguir un puesto permanente. La búsqueda constante de dinero para investigación - escribir solicitudes de subvención comenzó a tomar más tiempo que hacer ciencia directamente. Si no tiene un proyecto ERC (Consejo Europeo de Investigación), entonces no estará interesado en una universidad europea más o menos normal, incluso si tiene un montón de excelentes publicaciones y proyectos. Además, todos los esfuerzos al final pueden convertirse en nada. ¿Cuáles son las posibilidades finales de conseguir un puesto? Del 0,5 al 2% cuando llegas al lugar correcto en el momento correcto, es decir, es cuestión de suerte (hola a Daniel Kahneman y Nassim Taleb). Diez años de investigación pueden resultar inútiles, no "de moda". Tales actividades comenzaron a traer más y más decepciones. Y si el trabajo deja de traer placer, entonces todo lo que lo rodea deja de agradar. Sí, y las estadísticas indican que es poco probable que la situación mejore. Entonces, se tomó la decisión de terminar su carrera académica. La cuestión de otras actividades para mí era obvia: la programación. Pero rápidamente la historia afecta, pero no rápidamente la cosa se hace ...
Programacion
¿Por qué programar, no las líneas de datos? Aquí todo es simple: tenía al menos algo de experiencia en programación y desarrollo de software. Sí, fue una experiencia de desarrollo limitada para uso académico personal e interno, pero mi software funciona y otras personas lo usan en laboratorios y en cálculos. Desarrollé sistemas para recopilar datos y monitorear grandes instalaciones experimentales (por ejemplo, un refrigerador de disolución con un subsistema de desmagnetización nuclear), análisis de datos y visualización en Python. Antes de esto, Fortran usaba mucho y un poco de C ++ para los cálculos numéricos. En cualquier caso, esta experiencia no fue suficiente para la transición. Era necesario "detenerse" o aprender muchas cosas nuevas tanto en programación (incluidos algoritmos y estructuras de datos) como en diseño de software. Me fijé un límite de tiempo de un año, es decir, era la fecha límite para mi transición, ya que mi contrato estaba terminando en ese momento, y no tenía la intención de renovarlo, aunque tuve esa oportunidad. También "esbozó" un pequeño plan de entrenamiento práctico, que incluía, por ejemplo, crear juegos de Python usando guiones del libro "Programación de juegos y rompecabezas" (Jacques Arsac, 1985) y varios pequeños programas de "La idea de los programadores" (Coders Léxico). Por cierto, todavía usé el primer libro hace muchos años cuando escribí juegos para Spectrum ZX. Paralelamente, comenzó a estudiar dos lenguajes de programación más: JavaScript y Go. En principio, todo iba bien, el beneficio de los recursos de capacitación, libros, ejemplos en Internet ahora es más que suficiente. Sin embargo, después de un tiempo, comencé a sentir la necesidad de una comunicación personal con las personas directamente involucradas en el desarrollo de software, así como de trabajar juntos en un proyecto. Comencé a buscar esas oportunidades, dado que seguí trabajando en la universidad y participando en la autoeducación. Y, por supuesto, los mitaps vinieron al rescate ...
Reuniones, proyectos
Uno de los primeros grupos fue FreeCodeCampVienna, que se centró principalmente en la programación web, pero eso era normal, ya que la comunicación y los contactos eran importantes para mí, además de adquirir experiencia trabajando juntos. Después de la tercera o cuarta reunión, organizamos un pequeño grupo de cinco personas (luego quedaron solo tres) para trabajar en el proyecto WebTags, que le permite publicar mensajes a amigos o grupos en cualquier sitio web. Hice el backend, ya que no soy muy amigable con el diseño web, por decir lo menos. Desafortunadamente, llevamos el proyecto solo a MVP e hicimos un par de presentaciones en las reuniones, pero de alguna manera no fue más allá, pero adquirí el conocimiento necesario. Al igual que en otro proyecto, "CarTalk: una comunidad diseñada para entusiastas del automóvil", lanzada en el equipo Chingu Voyage-7 (una plataforma global gratuita para aquellos que desean aprender a trabajar en proyectos conjuntos) no se completó. En ese momento, ya había comenzado a visitar otros grupos, incluidos los relacionados con las líneas de datos: la Escuela de IA de Viena, el Encuentro de aprendizaje profundo en Viena, la Ciencia de datos de Viena. Mis intereses comenzaron a cambiar hacia el aprendizaje automático y la IA, ya que había una cierta "naturaleza científica" en ellos que no podía interesarme ...
Un poco sobre ciencia de datos
La capacidad de no alejarme de la ciencia y al mismo tiempo participar en la programación me intrigó. Encontré y completé varios cursos de aprendizaje automático, IA y trabajo con big data. Hubo práctica en las reuniones, aunque no tanto como nos gustaría. Sin embargo, la principal prioridad para mí seguía siendo la comunicación y los contactos. Para entonces, ya habían pasado entre ocho y nueve meses del período de transición establecido por mí, y comencé a rehacer mi currículum. Quienes trabajaron en ciencias saben que el curriculum vitae se utiliza en la comunidad científica, que incluye casi todos los detalles de la actividad científica. Tuvimos que incluir un CV de ocho páginas en un currículum de una página. Por un lado, el problema es pequeño, porque el CV científico tiene mucha información irrelevante que no interesa a nadie más que a las universidades. Por otro lado, no estaba claro qué información podría ser útil. Al final, incluyó casi todo lo relacionado con el desarrollo de software y el análisis de datos, así como el trabajo en proyectos de terceros. Me llevó unas dos semanas procesar el currículum. Quedaban unos dos meses desde el momento asignado por mí y comencé a solicitar puestos vacantes. Cabe señalar que era diciembre, un mes en el que hay muchos días festivos, y de hecho, todo generalmente espera las vacaciones de Navidad y Año Nuevo. También entendí que mis habilidades y conocimientos para trabajar directamente, por ejemplo, como ingeniero de aprendizaje automático, todavía no eran suficientes, por lo que me centré en empresas dedicadas a líneas de datos, pero con posiciones abiertas de desarrolladores ...
Buscar
Y comencé a enviar mi currículum. En la mayoría de los casos, respondieron con bastante rapidez, en dos o tres días. Para mi sorpresa, no todos respondieron al instante. Fuimos invitados a un par de entrevistas después de entrevistas telefónicas y tareas de prueba. Sin embargo, luego recibió negativas. Había unos diez de ellos. Todo este tiempo continué la autoeducación y la comunicación en las reuniones. Escuché, profundicé, hice muchas preguntas. Tal vez alguien se molestó, pero en su mayor parte recibió comentarios amistosos. Entonces me llamó la atención la comunidad de datos con su apertura, que no he visto en un entorno científico "normal" durante mucho tiempo o muy raramente. Interesado en varios temas, incluida la generación de datos sintéticos y la protección de datos privados. Parecía magia, en realidad. Crear un rostro humano o generar un código C bastante adecuado para usted usando sistemas de aprendizaje automático. Cuando era niño, leía en un libro o revista sobre un programa que podía escribir poesía. Luego escribí uno para Sinclair Spectrum ZX, pero solo se rompió en matrices y sustituyó las palabras correctas en los lugares correctos. Y aquí no hay un algoritmo codificado para crear algo nuevo que no existiera, ¡pero eso tiene sentido! En una palabra, genial. Comencé a profundizar en estos temas, leer la literatura y buscar algoritmos. Escribí varias cartas a personas que trabajaron en este tema en Austria y alrededor de enero recibí una invitación para hacer una entrevista telefónica con ellos. director de inicio. Al mismo tiempo, recibí una invitación de una de las compañías que desarrollaron software científico, pero quería datos ...
Oferta
Después de una entrevista telefónica con el director de inicio, me invitaron a una entrevista en la oficina de la compañía y me enviaron algunas tareas prácticas, una de las cuales era solo para algoritmos, y la otra estaba relacionada con el análisis y la transformación de datos en Python. Las tareas no causaron ninguna dificultad, solo los nombres de algunas funciones me parecieron extraños. Como descubrí más tarde, estas tareas fueron "extraídas" del código real originalmente escrito en R. La entrevista tuvo lugar a fines de enero, lo que significa que podría cumplir fácilmente los plazos planificados y no renovar mi contrato en la universidad. Las entrevistas hablaron principalmente sobre programación, discutieron tareas de prueba y preguntas generales sobre adecuación y estabilidad psicológica. Hablamos un total de aproximadamente dos horas. Todo fue como si nos hubiéramos conocido por muchos años, sin tensión. Unos días después recibí una oferta para el puesto de ingeniero de software sénior. Y aquí se volvió aterrador. En primer lugar, rechacé la oferta en otra compañía que desarrollaba software científico, pero fue sin mucho tormento. El principal problema fue que hice lo que pretendía. Y ahora era necesario dar el último (¿o el primero?) Paso: abandonar la ciencia que había estado haciendo durante los últimos veinte años. Tenía cinco días para decidir, el más largo de mi vida. Pero como dicen, dijo "A", diga "B". Y después de trabajar durante el mes requerido en la universidad, fui a una startup ...
Inicio
Hoy puedo decir que me alegro de haber comenzado mi nueva vida no en una gran empresa, sino en una pequeña empresa. Me gusta poder comunicarme con todos los miembros de la empresa. Todos están haciendo su trabajo. Y lo que es más, sabemos lo que estamos haciendo y por qué. La primera semana no fue la más difícil, traté principalmente con correcciones de errores. Pero las pequeñas empresas no pueden permitirse ese lujo, por lo que diez días después ya estaba integrando el algoritmo de privacidad diferencial en nuestro "motor", que requería un estudio y una comprensión más profundos de Tensorflow y Keras, así como el algoritmo en sí. Después de eso, el desarrollo e implementación de un codificador que pueda procesar archivos que contengan decenas de millones de líneas y varios miles de columnas de varios tipos en un tiempo razonable. Para hacer esto, estudié Spark y la computación en la nube. Ahora implementación e integración de SaaS ... Todos los días algo nuevo. Diez a doce horas al día que pasan volando como una hora ...