Glatte ZÀhne, C ++ und Mathematik - wie hÀngen sie zusammen? GesprÀch mit Align



Manchmal scheint es mir, dass das Gesamtbild in meinem Kopf umso primitiver wird, je mehr ich mich mit der IT-Branche beschĂ€ftige. Es ist, als wĂ€re die IT entweder eine ernsthafte Raketenwissenschaft oder ein anderer Dienst, mit dem Sie mit nur einem Klick * etwas anderes * tun können. Über den Rahmen dieser PrĂ€sentation hinaus gibt es immer noch AktivitĂ€ten, die von neuen Technologien unberĂŒhrt bleiben. Gehen Sie zum gleichen Zahnarzt - na, wo kommt die IT?

Was fĂŒr ein Fehler das ist.

Heute verschreibt der Zahnarzt die Behandlung, und hinter seiner Entscheidung stehen möglicherweise mehrere hundert Ingenieure auf der ganzen Welt. Programmierer, Mathematiker, Techniker, Analysten, Spezialisten fĂŒr ML, Manager, Fabriken mit 3D-Druckern - alles fĂŒr ein strahlendes Hollywood-LĂ€cheln.

Warum gibt es so viele Menschen, womit beschĂ€ftigen sie sich genau und wie Mathematiker und C ++ - Experten helfen, ZĂ€hne gleichmĂ€ĂŸig zu machen? Wir haben mit Align Tech gesprochen - einem riesigen internationalen Unternehmen, das massiv Mundschutz fĂŒr die kieferorthopĂ€dische Behandlung herstellt.
Align Technology Inc. Auf My Circle erhielt sie eine durchschnittliche Bewertung von 4,5 von ihren Mitarbeitern, die das Unternehmen vor allem fĂŒr interessante Aufgaben, ein soziales Paket, komfortable Bedingungen und fĂŒr die Verbesserung der Welt bewerteten!



- Was machst du da?

- Andrey Maksimov : Dies ist eine kieferorthopĂ€dische Behandlung. Einfach ausgedrĂŒckt, wir sind bestrebt, unsere ZĂ€hne in die richtige Position zu bringen.

Jede Person hat MĂ€ngel: Fehlschluss oder gezackte ZĂ€hne. Um das Problem zu lösen, können Sie beispielsweise geschweifte Klammern setzen. Wir haben einen anderen Weg gefunden, um dieses Problem zu lösen - mit unsichtbaren Verkehrsflugzeugen. Dies ist ein solcher Mundschutz, der fĂŒr eine bestimmte Person gemacht ist. Sie ĂŒbt Druck auf die notwendigen ZĂ€hne aus und die ZĂ€hne bewegen sich.



Als Unternehmen bieten wir eine Lösung fĂŒr die Herstellung von Kappen. Zu Beginn der Behandlung macht der Arzt einen Zahnabdruck oder scannt ihn mit einem intraoralen 3D-Scanner, sendet die Daten an uns und wir wandeln sie in ein 3D-Modell um.

"Was fĂŒr einen Scanner hast du?"

Sergey Valiev: Stellen Sie sich eine elektrische ZahnbĂŒrste vor. Es hat einen Kopf, der sich dreht und seine ZĂ€hne putzt. Anstelle dieses Kopfes haben wir eine hochauflösende Videokamera. Basierend auf ihrem Zeugnis wird ein 3D-Modell erstellt. Die Hauptschwierigkeit besteht darin, dass dies genau und schnell erfolgen muss - schließlich liegt der Patient mit offenem Mund auf dem Stuhl. Das Scannen dauert ca. 3-5 Minuten.



Es gibt immer noch Schwierigkeiten beim Beschlagen der Kamera, mit Spritzern und FlĂŒssigkeiten. Und jetzt beschĂ€ftigen sich die Ingenieure mit diesen Feinheiten.

- Wie erhÀlt man ein 3D-Modell aus einem Video? Ist das Photogrammetrie?

- AM : Wir verwenden eine konfokale Methode zum Erhalten von 3D-Scans, dh wir verwenden einen Laser und eine optische Methode zum Erhalten von Informationen.



Wenn ein Fingerabdruck oder Scan bei uns ankommt, verarbeiten wir ihn mit speziellen Algorithmen. Das Programm versteht, wo die ZĂ€hne sind, wo alles andere ist. Über unser ClinCheck-Programm kann der Arzt das 3D-Modell der ZĂ€hne des Patienten betrachten und sie auch virtuell an die richtige Position bringen. Das Programm verfĂŒgt außerdem ĂŒber integrierte Mess- und Diagnosewerkzeuge.

- Welche Algorithmen verstehen Sie nach der Behandlung?

- AM: Es gibt kieferorthopĂ€dische Normen, nach denen ZĂ€hne platziert werden sollten. Wir haben eine riesige Basis fĂŒr die korrekte Position der ZĂ€hne, und mit ihrer Hilfe empfehlen wir dies Ärzten. TatsĂ€chlich automatisieren wir ihre Arbeit.



- Nur ein Vergleich der ZĂ€hne des Patienten mit dem, wie es laut Lehrbuch sein sollte?

- AM: Menschen haben nur 32 ZĂ€hne und sollten stehen, um sich nicht gegenseitig zu stören. Dementsprechend legen wir sie mit Hilfe von Algorithmen auf eine bestimmte Weise offen. Der Arzt ĂŒberprĂŒft, nimmt Anpassungen vor und wenn er alles mag, genehmigt er den Behandlungsplan, und wir beginnen mit der Herstellung von Auskleidungen.

- Wie funktioniert dieser Prozess?

Mikhail Matrosov: FĂŒr unsere speziell geschulten Mitarbeiter (Techniker) erstellen wir das Treat-Programm, in dem sie Liner fĂŒr den Druck nach Angaben von Ärzten vorbereiten. Hier ist ein Techniker, der Daten mit dem Kiefer des Patienten und Empfehlungen des Arztes zur Behandlung jedes Falles erhĂ€lt. Und das Konzept der „Heilung“ ist informell und die FĂ€lle sind sehr unterschiedlich.



Das Programm selbst ist ein 3D-CAD-System. Es zeigt den Ausgangszustand der ZĂ€hne des Patienten. Anschließend können Sie nach der Behandlung den gewĂŒnschten Zustand bilden und die Zwischenstadien berechnen - wie die ZĂ€hne des Patienten vom Ausgangszustand in den gewĂŒnschten Zustand ĂŒbergehen. Schließlich kann das Programm darauf hinweisen, dass der Patient an bestimmten ZĂ€hnen unsichtbare Ausbuchtungen („AnhĂ€nge“) anbringen sollte, die dem Aliner helfen, die richtige StĂ€rke zu entwickeln. Ohne sie wĂ€re es zum Beispiel fast unmöglich, einige ZĂ€hne aus dem Zahnfleisch zu ziehen.



Jeder dieser Schritte wird im halbautomatischen Modus ausgefĂŒhrt. Der Techniker stellt die erforderlichen Einstellungen gemĂ€ĂŸ den WĂŒnschen des Arztes ein und das Programm generiert das Ergebnis. Jeder Schritt hat ein eigenes Entwicklungsteam.

Nach dem CAD-System folgt CAM (Computer Aided Manufacturing). Es berechnet das vollstĂ€ndige Modell der Kiefer des Patienten in jedem Stadium (Zwischen- und Endphase). Diese Modelle fĂŒr jede Stufe werden auf einem 3D-Drucker gedruckt. Dann wird ein Film auf die gedruckten Formen gestreckt, ein Segment dieses Films wird mit einem Laser entlang einer komplexen Flugbahn gezeichnet und ein Aliner wird erhalten. Und fĂŒr alle Phasen benötigen Sie eine Menge Software, die in Align entwickelt wurde. Deshalb brauchen wir so viele Programmierer.



AM: Wir stellen 300.000 einzigartige Liner pro Tag her. Keiner der Wettbewerber hat eine solche GrĂ¶ĂŸenordnung erreicht, da dies im Grunde genommen ein manueller Prozess ist. Und manuell können große Kurven in keiner Weise erreicht werden.

- Wo werden diese dreihunderttausend Liner hergestellt?

- AM: In Fabriken in Mexiko und China. Sie bestehen aus speziellem Kunststoff, der ebenfalls in Alain entwickelt wird. Es gibt eine spezielle chemische Formel, da BiokompatibilitĂ€tstests durchgefĂŒhrt wurden. Material ist auch Know-how, es beeinflusst das Ergebnis der Behandlung.



Danach wird dem Arzt ein fertiges Kit zugesandt, er lÀdt den Patienten ein und erklÀrt dessen Verwendung. Aliner tragen fast immer, auch nachts, und heben nur mit Essen ab. Alle zwei Wochen wird die Kappe durch eine neue ersetzt.



ZĂ€hne und maschinelles Lernen


Einige ZahnĂ€rzte kennen sich in der KieferorthopĂ€die nicht so gut aus wie seltene Spezialisten. Deshalb helfen wir ihnen, einige einfache FĂ€lle zu lösen. Wenn die ZĂ€hne leicht bewegt werden mĂŒssen, empfehlen wir unsere automatische Behandlung.

Damit der Arzt versteht, ob er einige FĂ€lle behandeln kann oder nicht, werden wir die Situation mit einem speziellen Programm erkennen, eine Diagnose stellen und eine Schlussfolgerung ziehen - vielleicht oder nicht. Und fĂŒr solche Aufgaben brauchen wir viele Spezialisten - in ML, C ++. Da wir ĂŒber Automatisierung verfĂŒgen, benötigen wir Backend-Spezialisten.

Zuerst fĂŒhrten die Leute die Fallbewertung durch, und kĂŒnstliche Intelligenz wurde geschult. Jetzt werden fast 100% dieser VorgĂ€nge von der Maschine ausgefĂŒhrt. Wir haben viele AnsĂ€tze ausprobiert. Die Jungs haben versucht, aus dem Foto ein 3D-Modell zu machen und einige Unstimmigkeiten zu finden. Das hat nicht sehr gut funktioniert.

Vor anderthalb Jahren wurde die erste Iteration des ML-Modells veröffentlicht. Soweit ich weiß, verwendete das Team Python und TensorFlow. Die Bewertung erfolgt in verschiedenen Kategorien der Behandlung durch den Arzt. Der Patient kann ĂŒberfĂŒllte ZĂ€hne haben oder umgekehrt, wenn sie zu den Seiten auseinander gehen. Dies sind verschiedene Probleme mit ZĂ€hnen und verschiedene Modelle arbeiten fĂŒr sie. Sie sind am hĂ€ufigsten anzutreffen, und wir haben mit ihnen begonnen und sind dann zu privateren FĂ€llen ĂŒbergegangen.

In der nĂ€chsten Version werden wir Modelle fĂŒr alle möglichen Arten von Problemen mit ZĂ€hnen herausbringen. FĂŒr einige Zeit werden wir alle problematischen FĂ€lle verfolgen und die Fehler analysieren. HierfĂŒr wird vom manuellen Bewertungsteam eine Reserve gebildet.

Der gesamte Modellschulungsprozess dauerte ungefÀhr zwei Jahre.

Maschinelles Lernen wird auch zum Arbeiten mit Fotos verwendet. Wir versuchen der Person zu zeigen, wie ihr LÀcheln nach der Behandlung aussehen wird. Dazu machen wir ein Foto des Patienten, rendern ein 3D-Modell seiner ZÀhne und versuchen dann, es realitÀtsnah in das Foto einzubetten, damit die Person sieht, wie sein LÀcheln schön aussieht.




Wie Align in Russland erschien


- AM: Vor ungefĂ€hr 15 Jahren. Menschen aus Moskau haben in Kalifornien studiert und wĂ€hrend des Studiums einen Job im Align-BĂŒro bekommen. Damals war es eine kleine Firma. Nach Abschluss ihres Studiums kehrten sie nach Moskau zurĂŒck, die vertraglichen Beziehungen zu ihnen blieben jedoch bestehen. Sie waren einfach sehr gute Programmierer. Und um ihnen die Arbeit zu erleichtern, wurde in Moskau ein kleines BĂŒro eröffnet. Dann wurde es sehr groß. Jetzt gibt es mehr als 400 Menschen.



In Nowosibirsk wurde das BĂŒro wie in Moskau eröffnet. Ein Mann, der sich sehr gut bewĂ€hrt hatte, kam von dort und beschloss, in seine Stadt zurĂŒckzukehren. Er bot an, aus der Ferne zu arbeiten, wurde jedoch beauftragt, ein kleines BĂŒro einzurichten. Es gibt jetzt ungefĂ€hr vierzig Leute.

SV: Interessanterweise gab es vor einem Jahr in Moskau ungefÀhr 200 Menschen. Wir haben uns in einem Jahr fast verdoppelt.

- Wie verteilen sich Ihre Mitarbeiter auf all diese Projekte?

- AM: Wir haben ein Team von Ingenieuren, das sich mit dem Backend befasst. Es gibt ein Team, das am ClinCheck-Programm fĂŒr Ärzte beteiligt ist. Das grĂ¶ĂŸte Team beschĂ€ftigt sich mit Software fĂŒr Techniker, die nur intern verwendet wird. Es gibt separate QA- und DevOps-Teams. Das iTero-Team stellt Scannersoftware her.

- Wie unabhÀngig sind die Teams technisch?

- AM: GeschĂ€ftsaufgaben fĂŒr Teams kommen aus dem Marketing, aber technische Entscheidungen werden hier in Moskau unabhĂ€ngig getroffen. Sie benötigen keine besonderen Berechtigungen vom Hauptquartier. Wenn wir die Architektur zwischen Systemen Ă€ndern, sollten wir zumindest darĂŒber sprechen und eine Einigung erzielen. Aber auf funktionaler Ebene haben wir völlige UnabhĂ€ngigkeit.

Andrey Zaitsev: Wir haben einen Prozess namens Architecture Review Board. Auch wenn wir frei genug wĂ€hlen können, mĂŒssen wir dies fĂŒhrenden Architekten gegenĂŒber rechtfertigen.

Zum Beispiel haben wir jetzt die Hauptentwicklungssprache - Java. Das Team zeigte jedoch großes Interesse an Kotlin. Einer unserer Entwickler bereitete ein halbes Jahr lang PrĂ€sentationen mit einer BegrĂŒndung vor, wobei er das Risiko von Einstellungen, das Risiko von Datenlecks und Sprachprobleme berĂŒcksichtigte. Er hielt eine PrĂ€sentation bei einem Architekturrat, wir bekamen ein Upgrade und das Team bekam eine zusĂ€tzliche Entwicklungssprache. Jetzt verwenden wir fĂŒr neue Mikrodienste Kotlin anstelle von Java. Das heißt, wir sind frei, aber alles muss gerechtfertigt sein. Sie können nicht plötzlich zu einem Haskell wechseln.

- Und wie wird die Kommunikation mit anderen BĂŒros aufgebaut?

- AM: Es gibt keine Schwierigkeiten mit der Interaktion. Wir reisen stĂ€ndig zum Forschungs- und EntwicklungsbĂŒro in Raleigh in North Carolina, USA, und zu unserem Hauptsitz in San Jose.



- AZ: Wir haben sechs SCRUM-Teams im Backend. Einer befindet sich im israelischen BĂŒro in Tel Aviv, der andere in Raleigh, der Rest in Moskau. Wir synchronisieren zweimal pro Woche, Teamleiter diskutieren den aktuellen Prozess, kommende Releases, Interaktionen zwischen Teams, neue technische Lösungen, Änderungen in gemeinsamen Modulen. Und so - Standard-Unternehmenskommunikation. Wir haben alle Microsoft-Teams. Bei Bedarf können Sie jeden Kollegen einstellen und mit ihm sprechen.

FrĂŒher gab es das Problem, dass sich das BĂŒro in San Jose in der gegenĂŒberliegenden Zeitzone von Moskau befindet, und wenn sie zur Arbeit kommen, gehen wir einfach. Daher fanden Treffen normalerweise am spĂ€ten Abend statt. Mit einem BĂŒro in Raleigh einfacher, mit ihnen beginnen die Kundgebungen gegen vier Uhr abends in Moskau.

- AM: Da mein Team ein Programm fĂŒr Ärzte entwickelt, sollten wir Ärzten, die am Ende der Sprints in unserem Unternehmen arbeiten, Demos zeigen. Sie sitzen in San Jose, USA, deshalb muss man manchmal frĂŒhestens um sieben Uhr abends mit Demonstrationen beginnen.



Welche Technologien machen ZĂ€hne eben


- Sag mir, wer macht was mit was?

- AM: ClinCheck, das mein Team entwickelt, gibt es in zwei Formen. Die erste ist eine Desktop-Anwendung. Es wurde in C ++ und Qt fĂŒr die BenutzeroberflĂ€che erstellt. Der Desktop wurde vor sehr langer Zeit geschrieben. Das Problem bei ihm ist folgendes: Ärzte sind ĂŒberhaupt keine IT-Leute. Trotz der Tatsache, dass sie coole Spezialisten auf dem Gebiet der KieferorthopĂ€die sind, ist es fĂŒr sie sehr schwierig, den Computer in gutem Zustand zu halten. Und wenn wir das Update veröffentlichen, beginnen viele technische Schwierigkeiten.

Das zweite Problem ist, dass die HĂ€lfte der KieferorthopĂ€den Macs verwendet und unser Desktop nur fĂŒr Windows ist. Wenn der Arzt das Programm verwenden möchte, muss er eine virtuelle Maschine installieren. Dies ist unpraktisch - sie kommen mit einem Computer nicht gut zurecht, geschweige denn mit einer virtuellen Maschine im Allgemeinen.

Daher ĂŒbersetzen wir die Anwendung im Web so, dass sie ĂŒberall funktioniert. In Bezug auf die FunktionalitĂ€t hat es die Desktop-Version noch nicht eingeholt. Sobald es aufholt, werden wir den Desktop zusammenbrechen.

In der Entwicklung verwenden wir TypeScript und ReactJS. Das Skript wurde hauptsĂ€chlich aufgrund der Möglichkeit der statischen TypprĂŒfung ausgewĂ€hlt. Interessanterweise wechselten einige der Front-End-GerĂ€te von C ++, sodass der Wunsch bestand, weiterhin statische Typisierung zu verwenden.



- Aber schreiben Sie andere Dienste in JavaScript?

- AM: Ja, das Team, das das kommerzielle Webportal erstellt, schreibt es in JS und TypeScript.

- Als Sie sich fĂŒr TypeScript entschieden haben, wurde Ihnen nicht gesagt, dass es fĂŒr Sie besser wĂ€re, TypeScript zu verwenden, da das Unternehmen JS bereits verwendet.

- AM: NatĂŒrlich mussten wir die Wahl verteidigen, aber wir haben erklĂ€rt, dass TypeScript mehrere Vorteile hat. Hier war alles genau so wie bei Kotlin.

- AZ: Andreys Team macht die Front, was die Ärzte sehen. Mein Team erstellt hierfĂŒr ein Backend, damit die Daten dort gespeichert und verarbeitet werden können. Wir haben 2014 mit der Entwicklung unseres Systems begonnen. Zu dieser Zeit hatte das Unternehmen mehrere große Systeme auf Unternehmensebene, aber sie entwickelten sich langsam, sie waren monolithisch, mit sehr langen Veröffentlichungszyklen, ich musste viel testen und nicht jeder Build war erfolgreich.

In diesem Moment wurde der Microservice-Ansatz sehr beliebt und wir haben versucht, ihn mit unserem Team umzusetzen. Das heißt, wir entwickeln kleine Anwendungen mit einem klar definierten Ziel, einem klaren Verantwortungsbereich.

Unser Hauptstapel ist Java. Wir verwenden Spring als Framework und viele Dinge, die unter seinem Dach stehen - Sicherheit, Zusammenarbeit mit der Datenbank, verschiedene Cloud-Services, um ZuverlÀssigkeit und Fehlerbehandlung zu gewÀhrleisten. Wir kennen ihn gut, wir mögen alles und werden ihn noch nicht Àndern. Wir nutzen es als Kern unserer Dienstleistungen.

Jetzt haben wir ungefÀhr 20-25 Dienste. Sie sind auf sechs Teams aufgeteilt und im jeweiligen Verantwortungsbereich werden 3-5 Microservices erhalten. Wir geben keine Ressourcen aus, um Java auf Kotlin neu zu schreiben, aber wir schreiben alle neuen Dienste und Tests in Kotlin. Jetzt liegt das VerhÀltnis bei 95/5. Bisher sind nur drei Dienste in Kotlin geschrieben, da wir sie erst Ende letzten Jahres aktiv nutzen.

- Wie nimmt das Team den Übergang wahr? Will jeder?

- AZ: Im Großen und Ganzen werden sie positiv wahrgenommen, die Jungs sind glĂŒcklich zu verstehen. Es gibt zum Beispiel mehrere Kotlin-Champions - diejenigen, die wirklich viel geschrieben haben, und sie helfen dem Rest bei einer CodeĂŒberprĂŒfung.

Ich möchte ein VerstĂ€ndnis dafĂŒr entwickeln, wie die API auf Kotlin genau funktionieren sollte, damit nicht nur Code automatisch neu geschrieben wird. Und die Jungs versuchen einen bestimmten Archetyp zu entwickeln, der dann ĂŒberall verwendet wird.

Im Allgemeinen versuchen wir, gute Entscheidungen zu wiederholen. Da wir ĂŒber zwei Dutzend Dienste verfĂŒgen, werden bestimmte Dinge wie Sicherheit, Arbeiten mit der Datenbank und Arbeiten mit Cloud-Anbietern ĂŒberall wiederholt, sodass wir eine gemeinsame Codebasis haben. Es gibt verschiedene Module, die zwischen den Komponenten stöbern, sodass Sie einen leeren Microservice ohne GeschĂ€ftsfunktionalitĂ€t buchstĂ€blich an einem Tag abrufen können. Und es gibt alles, was Sie zum Arbeiten brauchen. Es hilft sehr, vorwĂ€rts zu kommen.

Auf der Basisebene nehmen wir normalerweise Postgress oder eine Art noSQL. Es gibt einige Python fĂŒr Bdd-Tests. FĂŒr verschiedene Daten-Upload-Anfragen schreiben wir Skripte darauf.

Alle Dienste werden in der Cloud bereitgestellt. Die Hauptsache ist Amazon. Wir nehmen die Anwendung, packen sie in den Docker-Container und stellen sie dann in einem der Orchestratoren bereit. Vor einigen Jahren haben wir uns fĂŒr Rancher entschieden und verwenden es jetzt.

- Als Sie ankamen, sind Sie nicht auf die Tatsache gestoßen, dass das Projekt ein großes und komplexes Erbe hat. Dennoch ist dies ein Produkt, das Ende der 90er Jahre begann.

- AZ: Wir haben uns dem Kampf gegen große Legacy-Monster wie folgt genĂ€hert: Zuerst haben wir einen bestimmten Proxy geschrieben, der Microservices mit einer REST-Schnittstelle einschließt, und erst dann haben wir versucht, ihn zu brechen und umzugestalten. Das heißt, ich musste wochenlang nicht sitzen, um die Codebasis fĂŒr zweihunderttausend Zeilen herauszufinden.

Wir schreiben viele Dinge von Grund auf neu, wir schreiben einige neu. Bei neuen Projekten versuchen wir, die QualitĂ€t des Codes beizubehalten. Das Team ist bereits das fĂŒnfte Jahr und es scheint mir, dass wir bisher ziemlich gut abschneiden.



Einstellung von Mathematikern und C ++ - Experten




- MĂŒssen Sie die KieferorthopĂ€die verstehen?

- AM: Überhaupt nicht. Es ist unrealistisch, Menschen mit einem solchen Hintergrund zu finden. In der Arbeit selbst muss man auf die eine oder andere Weise lernen. Unterschiedliche Teams benötigen ein unterschiedliches VerstĂ€ndnis. Das ClinCheck-Team ist mehr, weil wir mit Ärzten sprechen und wir zumindest ihre Worte verstehen mĂŒssen.

Aber in Interviews fragen wir nie danach - wir suchen Leute, die sich hauptsÀchlich mit Programmierung auskennen.

"Was wirst du dir ansehen, um das zu verstehen?"

- AM: In der ersten Phase schauen wir uns den Lebenslauf an und bewerten die Erfahrung. Dann organisieren wir ein Telefoninterview, das ungefĂ€hr 30 Minuten dauert. Wir stellen einfache Fragen zur Technologie, mit was und wie es funktioniert hat. Und wenn sich jemand gut gezeigt hat, laden wir ihn ins BĂŒro ein.

Dort geben wir normalerweise eine Programmieraufgabe. Es ist nicht akademisch, Sie mĂŒssen nicht alle Arten von Sortieralgorithmen schreiben. Wir geben eine praktische Aufgabe, zum Beispiel, wie man eine Anwendung wie Twitter implementiert. Eine Person schreibt einen Code fĂŒr 20-30 Minuten und dann stellen wir Fragen zu diesem Code.

Die Formulierung des Problems enthÀlt mehrere Fallstricke, die eine Person umgehen sollte. Wenn er Erfahrung hat, sieht er diese Probleme sofort und löst sie entweder im Code oder erzÀhlt uns davon. Wenn er es nicht bemerkt, sagen wir es ihm und sehen auch, wie er sich entscheiden wird.

In der Regel dauert das Interview etwa zwei Stunden. Und die gesamte Einstellung von und bis dauert etwa zwei Wochen.

MM: Bei der Einstellung interner Dienste beschĂ€ftigen wir uns hauptsĂ€chlich mit C ++ und Mathematik. Je nach Team gibt es einen Versatz entweder in die eine oder in die andere Richtung. Das Team, das das Modell der KrĂ€fteverteilung auf dem Aliner erstellt, ist natĂŒrlich in erster Linie die Mathematik.

Das Team der 3D-Plattform, in der ich arbeite, befasst sich nicht mit Produktproblemen (es gibt viele davon), sondern unterstĂŒtzt die System-Engine und erstellt C ++ - Bibliotheken. Dort vor allem C ++ und Kenntnisse der Algorithmen.

- Vielleicht ist es schwierig, Leute in einem solchen Team zu suchen?

Ja und nein. Es ist schwierig, weil Sie gute Kenntnisse der Profis und ein VerstĂ€ndnis fĂŒr die Funktionsweise von Software und Hardware benötigen. Aber ein bisschen einfacher, weil wir zumindest nicht so viel Mathematik brauchen. - , — , , .

: , . . , , , . , .

— C++ , ?

, C++ , , , . , .

. , — , , , , , . , , . - , , .





— ?

. . , , . . — . 5-6 .

— , , « - , »?

: — « ». , , — - - — , .

Source: https://habr.com/ru/post/de447604/


All Articles