Heute, genau sechs Monate nach zwanzig Jahren in der Wissenschaft, ging ich zu einem Startup, das Software zur Erstellung synthetischer Daten entwickelt, in die ich maschinelle Lernsysteme in das Endprodukt integriere. Da es hier Menschen gibt, die sich immer noch für einen solchen Schritt entscheiden, werde ich meinen Weg beschreiben, oder vielmehr eine Richtungsänderung meines Weges.
Akademie
Ich bin ein professioneller Physiker und habe einen Ph.D. am Physik-Institut der Moskauer Staatlichen Universität. Er arbeitete sowohl in der theoretischen als auch in der experimentellen Physik. Artikel in Nature und PRL, mehr als 700 Zitate und Hirsch-Index 14. Diese Details dienen nicht dazu, etwas mit jemandem zu messen, sondern das Gesamtbild zu verstehen. Wenn wir Verträge mit einer Laufzeit von mehr als einem Jahr abschließen, hat er in so langen Positionen in vier Ländern Westeuropas gearbeitet. Alles wäre in Ordnung, aber in letzter Zeit hat die Wissenschaft begonnen, sich in ein Geschäft zu verwandeln. Menschen an Universitäten denken nur daran, eine feste Stelle zu bekommen. Die ständige Suche nach Geld für Forschungs- und Zuschussanträge dauerte länger als die direkte Wissenschaft. Wenn Sie kein ERC-Projekt (European Research Council) haben, sind Sie nicht an einer mehr oder weniger normalen europäischen Universität interessiert, selbst wenn Sie eine Reihe hervorragender Veröffentlichungen und Projekte haben. Darüber hinaus können alle Bemühungen am Ende zu nichts werden. Was sind die ultimativen Chancen auf eine Stelle? Von 0,5 bis 2%, wenn Sie zur richtigen Zeit am richtigen Ort sind, das heißt, es ist eine Frage des Glücks (Hallo an Daniel Kahneman und Nassim Taleb). Zehn Jahre Forschung könnten sich als nutzlos und nicht als „modisch“ herausstellen. Solche Aktivitäten brachten immer mehr Enttäuschungen mit sich. Und wenn die Arbeit aufhört, Freude zu bereiten, dann hört alles um sie herum auf zu gefallen. Ja, und Statistiken zeigen, dass sich die Situation wahrscheinlich nicht verbessern wird. So wurde die Entscheidung getroffen, seine akademische Karriere zu beenden. Die Frage nach weiteren Aktivitäten war für mich offensichtlich - Programmierung. Aber schnell wirkt sich die Geschichte aus, aber nicht schnell ist die Sache erledigt ...
Programmierung
Warum programmieren, keine Daten? Hier ist alles einfach - ich hatte zumindest einige Erfahrungen in der Programmierung und Softwareentwicklung. Ja, es war eine begrenzte Entwicklungserfahrung für den persönlichen und internen akademischen Gebrauch, aber meine Software funktioniert und andere Leute verwenden sie in Labors und in Berechnungen. Ich entwickelte Systeme zur Datenerfassung und Überwachung großer experimenteller Einrichtungen (z. B. eines Auflösungskühlschranks mit einem nuklearen Entmagnetisierungssubsystem), zur Datenanalyse und zur Visualisierung in Python. Zuvor verwendete Fortran viel und ein bisschen C ++ für numerische Berechnungen. In jedem Fall reichte diese Erfahrung für den Übergang nicht aus. Sowohl beim Programmieren (einschließlich Algorithmen und Datenstrukturen) als auch beim Software-Design mussten viele neue Dinge "aufgerufen" oder gelernt werden. Ich habe mir eine Frist von einem Jahr gesetzt, das heißt, es war die Frist für meinen Übergang, da mein Vertrag dann endete, und ich hatte nicht vor, ihn zu verlängern, obwohl ich eine solche Gelegenheit hatte. Er „skizzierte“ auch einen kleinen Plan für die praktische Ausbildung, der beispielsweise das Erstellen von Python-Spielen mit Skripten aus dem Buch „Programming Games and Puzzles“ (Jacques Arsac, 1985) und verschiedenen kleinen Programmen aus „The Programmers Idea“ (Coders) umfasste Lexikon). Übrigens habe ich vor vielen Jahren noch das erste Buch verwendet, als ich Spiele für Spectrum ZX schrieb. Parallel dazu begann er zwei weitere Programmiersprachen zu studieren - JavaScript und Go. Im Prinzip lief alles gut, der Nutzen von Schulungsressourcen, Büchern und Beispielen im Internet ist jetzt mehr als genug. Nach einiger Zeit bekam ich jedoch das Bedürfnis nach persönlicher Kommunikation mit Personen, die direkt an der Softwareentwicklung beteiligt waren, sowie an der Zusammenarbeit an einem Projekt. Ich begann nach solchen Möglichkeiten zu suchen, da ich weiterhin an der Universität arbeitete und mich selbst bildete. Und natürlich kamen Mitaps zur Rettung ...
Treffen, Projekte
Eine der ersten Gruppen war FreeCodeCampVienna, die sich hauptsächlich auf Webprogrammierung konzentrierte, aber das war normal, da Kommunikation und Kontakte für mich wichtig waren und ich Erfahrungen in der Zusammenarbeit sammelte. Nach dem dritten oder vierten Treffen organisierten wir eine kleine Gruppe von fünf Personen (von denen nur noch drei übrig waren), um am WebTags-Projekt zu arbeiten, mit dem Sie Nachrichten an Freunde oder Gruppen auf jeder Website senden können. Ich habe das Backend gemacht, da ich mit Webdesign nicht sehr freundlich bin, um es gelinde auszudrücken. Leider haben wir das Projekt nur zu MVP gebracht und einige Präsentationen bei den Meetings gehalten, aber irgendwie ging es nicht weiter, aber ich habe das notwendige Wissen erworben. Wie in einem anderen Projekt wurde „CarTalk - Eine Community für Autoenthusiasten“, das im Chingu Voyage-7-Team gestartet wurde (eine kostenlose globale Plattform für diejenigen, die lernen möchten, wie man an gemeinsamen Projekten arbeitet), nicht abgeschlossen. Zu diesem Zeitpunkt hatte ich bereits begonnen, andere Gruppen zu besuchen, einschließlich solcher, die sich auf Daten beziehen - Vienna School of AI, Deep Learning Meetup in Wien, Vienna Data Science. Meine Interessen verlagerten sich allmählich in Richtung maschinelles Lernen und KI, da sie eine gewisse „wissenschaftliche Natur“ hatten, die mich nicht interessieren konnte ...
Ein bisschen über Data Science
Die Fähigkeit, sich nicht von der Wissenschaft zu entfernen und gleichzeitig zu programmieren, faszinierte mich. Ich fand und absolvierte mehrere Kurse in maschinellem Lernen, KI und Arbeiten mit Big Data. Bei den Treffen wurde geübt, wenn auch nicht so viel, wie wir möchten. Die Hauptpriorität für mich blieb jedoch die Kommunikation und die Kontakte. Zu diesem Zeitpunkt waren bereits acht bis neun Monate der von mir festgelegten Übergangszeit vergangen, und ich begann, meinen Lebenslauf zu wiederholen. Diejenigen, die in der Wissenschaft gearbeitet haben, wissen, dass in der wissenschaftlichen Gemeinschaft ein Lebenslauf verwendet wird, der fast alle Details der wissenschaftlichen Tätigkeit enthält. Wir mussten einen achtseitigen Lebenslauf in einen einseitigen Lebenslauf pressen. Einerseits ist das Problem gering, da der wissenschaftliche Lebenslauf viele irrelevante Informationen enthält, die nur die Universitäten interessieren. Andererseits war nicht klar, welche Informationen nützlich sein könnten. Am Ende umfasste er fast alles, was mit Softwareentwicklung und Datenanalyse zu tun hatte, sowie die Arbeit an Projekten von Drittanbietern. Ich habe ungefähr zwei Wochen gebraucht, um den Lebenslauf zu bearbeiten. Von der von mir zugewiesenen Zeit blieben noch etwa zwei Monate, und ich begann, mich für offene Stellen zu bewerben. Es sollte beachtet werden, dass es Dezember war - ein Monat, in dem es viele Feiertage gibt, und tatsächlich wartet normalerweise alles auf Weihnachten und Neujahr. Ich verstand auch, dass meine Fähigkeiten und Kenntnisse, um direkt zu arbeiten, zum Beispiel als Ingenieur für maschinelles Lernen, immer noch nicht ausreichten. Deshalb konzentrierte ich mich auf Unternehmen, die sich mit Datenbanken befassen, aber offene Entwicklerpositionen haben ...
Suche
Und ich fing an, meinen Lebenslauf zu verschicken. In den meisten Fällen antworteten sie ziemlich schnell - in zwei bis drei Tagen. Zu meiner Überraschung antworteten nicht alle sofort. Nach Telefoninterviews und Testaufgaben wurden wir zu einigen Interviews eingeladen. Dann erhielt er jedoch Ablehnungen. Es waren ungefähr zehn von ihnen. Während dieser ganzen Zeit setzte ich die Selbstbildung und Kommunikation bei den Treffen fort. Ich hörte zu, vertiefte mich und stellte viele Fragen. Vielleicht hat sich jemand darum gekümmert, aber zum größten Teil freundliche Kommentare erhalten. Ich war dann beeindruckt von der Datasine-Community mit ihrer Offenheit, die ich in einer "normalen" wissenschaftlichen Umgebung lange oder sehr selten nicht mehr gesehen habe. Interessiert an verschiedenen Themen, einschließlich der Generierung synthetischer Daten und dem Schutz privater Daten. Eigentlich sah es nach Magie aus. Erstellen eines menschlichen Gesichts oder Generieren eines angemessenen C-Codes für sich selbst mithilfe von maschinellen Lernsystemen. Als Kind las ich in einem Buch oder einer Zeitschrift über ein Programm, das Gedichte schreiben könnte. Dann habe ich eine für Sinclair Spectrum ZX geschrieben, aber sie war nur in Arrays kaputt und ersetzte die richtigen Wörter an den richtigen Stellen. Und hier gibt es keinen fest codierten Algorithmus, um etwas Neues zu erstellen, das es nicht gab, aber das macht Sinn! Mit einem Wort - cool. Ich begann mich eingehender mit diesen Themen zu befassen, die Literatur zu lesen und nach Algorithmen zu suchen. Ich schrieb mehrere Briefe an Leute, die in Österreich an diesem Thema arbeiteten, und erhielt im Januar eine Einladung, ein Telefoninterview mit diesen zu führen. Startup-Direktor. Gleichzeitig erhielt ich eine Einladung von einem der Unternehmen, die wissenschaftliche Software entwickelten, aber ich wollte Daten ...
Angebot
Nach einem Telefoninterview mit dem Startup-Direktor wurde ich zu einem Interview im Büro des Unternehmens eingeladen und schickte mir einige praktische Aufgaben, von denen eine nur für Algorithmen und die andere mit der Analyse und Transformation von Daten in Python zusammenhängt. Die Aufgaben verursachten keine Schwierigkeiten, nur die Namen einiger Funktionen schienen mir seltsam. Wie ich später herausfand, wurden diese Aufgaben aus dem ursprünglich in R geschriebenen Code „extrahiert“. Das Interview fand Ende Januar statt, sodass ich die geplanten Fristen problemlos einhalten und meinen Vertrag an der Universität nicht verlängern konnte. In den Interviews ging es hauptsächlich um Programmierung, um Testaufgaben und allgemeine Fragen zu Angemessenheit und psychologischer Stabilität. Wir haben insgesamt etwa zwei Stunden gesprochen. Alles verlief so, als hätten wir uns seit vielen Jahren gekannt - keine Spannung. Einige Tage später erhielt ich ein Angebot für die Position eines Senior Software Engineers. Und hier wurde es unheimlich. Erstens lehnte ich das Angebot in einem anderen Unternehmen ab, das wissenschaftliche Software entwickelt, aber es war ohne große Qual. Das Hauptproblem war, dass ich tat, was ich beabsichtigte. Und jetzt war es notwendig, den letzten (oder ersten?) Schritt zu machen - die Wissenschaft zu verlassen, die ich in den letzten zwanzig Jahren gemacht hatte. Ich hatte fünf Tage Zeit, um mich zu entscheiden, die längste in meinem Leben. Aber wie sie sagen, sagte "A", sagen Sie "B". Und nachdem ich den erforderlichen Monat an der Universität gearbeitet hatte, ging ich zu einem Startup ...
Start
Heute kann ich sagen, dass ich froh bin, dass ich mein neues Leben nicht in einem großen Unternehmen, sondern in einem kleinen Startup begonnen habe. Ich mag es, dass ich mit jedem Mitglied des Unternehmens kommunizieren kann. Jeder macht seinen Job. Und außerdem wissen wir, was wir tun und warum. Die erste Woche war nicht die schwierigste, ich habe mich hauptsächlich mit Bugfixes befasst. Aber kleine Unternehmen können sich einen solchen Luxus nicht leisten. Zehn Tage später integrierte ich bereits den Differential Privacy Algorithmus in unsere „Engine“, was ein tieferes Studium und Verständnis von Tensorflow und Keras sowie des Algorithmus selbst erforderte. Danach die Entwicklung und Implementierung eines Encoders, der in angemessener Zeit Dateien mit zig Millionen Zeilen und mehreren tausend Spalten verschiedener Typen verarbeiten kann. Dazu habe ich Spark und Cloud Computing studiert. Jetzt SaaS-Implementierung und -Integration ... Jeden Tag etwas Neues. Zehn bis zwölf Stunden am Tag, die wie eine Stunde vergehen ...