Wir bei Veeam haben ein Bildungsprojekt mit dem lakonischen Namen Veeam Academy . Es ist der C # -Entwicklungspraxis gewidmet. Wenn Sie nicht ins Detail gehen, ist das Wesentliche: Wir nehmen ältere Studenten auf und bringen in drei Monaten ihr rein theoretisches Institutswissen in Übereinstimmung mit der umgebenden Realität. Dies geschieht sowohl mit Hilfe von Vorlesungen, in denen sie die praktische Bedeutung der langweiligen Theorie aufzeigen, die sie an der Universität vermittelt haben, als auch mit Hilfe eines gemeinsamen Projekts, an dessen Entwicklung sie während der gesamten Ausbildung beteiligt sind.
Auf dem Weg zum ersten Start der Akademie standen wir vor vielen interessanten rein organisatorischen und rechtlichen Problemen. (Wenn jemand es nicht wusste, ist Training eine lizenzierte Aktivität. Sie können also nicht einfach etwas lernen, auch wenn Sie es wirklich wollen, um das Interesse der Aufsichtsbehörden an sich selbst nicht zu erhöhen.)
Aber woher bekommen die Schüler die gleichen praktischen Fähigkeiten, fragen Sie? Die Antwort liegt in unseren Entwicklern, die auf freiwilliger Basis als Berater fungieren, Codeüberprüfungen für Kinder durchführen und einfach ihre Erfahrungen teilen. Darüber hinaus nehmen nur leitende Entwickler an dieser Aktivität teil. Mit ihnen (nach 3 Abschlüssen an der Akademie) beschlossen wir, uns zu unterhalten, um herauszufinden:
- Warum verbringen sie ihre wertvolle Zeit mit Studenten?
- Wie fühlt es sich an, ein unerfahrener Mentor zu sein?
- Wie / warum / warum mit Legacy-Code leben?
- Was fehlt in der modernen Bildung?
- Warum gehen Menschen zur Entwicklung von Boxprodukten?
Wir haben eine kleine Reihe von Videointerviews mit Dud-Stil durchgeführt, und es wird einen kleinen Textauszug der interessantesten Antworten geben. Zwei vollständige Interviews wurden jetzt veröffentlicht (sie sind im Artikel enthalten), drei weitere werden in Kürze veröffentlicht.
Schauspieler:
Alexander Baranov - Entwicklungsleiter, Veeam Backup & Replication.
Artyom Grigoriev - Erfahrener Entwickler.
Dmitry Babushkin - Senior Entwickler.
Kirill Lukyanov - Leiter der Entwicklungsabteilung für Hyper-V, Projektleiter auf einfache Weise.
Philip Guzeev - Erfahrener Entwickler.
Wie ist die Idee zur Veeam Academy entstanden?
Alexander - Die Idee war eine gemeinsame. In zahlreichen Interviews wurde verstanden, welche Kandidaten fehlten. Viele Junioren kommen zu uns (Juniorentwickler). In der Regel handelt es sich dabei um Personen, die vor kurzem das Institut abgeschlossen haben und über eine Berufserfahrung von etwa 1 Jahr oder gar keine verfügen. In der Regel fehlt ihnen die Übung. Dies bedeutet, dass etwas getan werden muss, damit zumindest die Hauptlücken geschlossen werden, wenn dieses Defizit nicht vollständig beseitigt wird. Wir begannen darüber nachzudenken, wie wir unsere vorhandenen Erfahrungen in prägnante zwei- oder dreimonatige Kurse integrieren könnten - dies war der Anfang.
Kurse in Algorithmen und Datenstrukturen, die an den Fakultäten für Mathematik unterrichtet werden sollen, sind an sich nicht schlecht. Das Problem ist, dass sie oft isoliert von praktischen Anwendungen in der Entwicklung sind, so dass sie nicht sehr gut absorbiert werden. Wir versuchen, dieses Wissen ein wenig zu strukturieren und ihm ein praktisches Gefühl dafür zu geben, wie es funktioniert. Und nicht nur „wie die Technologie funktioniert“, sondern auch, wie der gesamte Prozess funktioniert: wie das Team funktioniert, wie Aufgaben verteilt werden, wie Teammitglieder synchronisiert werden usw.
Wie bist du zur Akademie gekommen?
Artyom - Sie boten an, als Rezensent an der Akademie teilzunehmen. Ich dachte: „Warum nicht?“ Gleichzeitig werde ich mein Wissen auffrischen und Erfahrungen im Sprechen sammeln. Es war meine erste Erfahrung fast von der Universität, also war ich sehr besorgt.
Auf der anderen Seite ist die Akademie eine Gelegenheit, mehr Mitarbeiter einzustellen, und auf jeden Fall eine interessante Erfahrung und eine Gelegenheit zu verstehen, wie es ist, Wissen zu übertragen.
Philip - Sofort einverstanden, wie vorgeschlagen. Es ist immer wieder interessant zu sehen, wie Menschen denken, um etwas Neues für sich zu bemerken. Und es ist immer nützlich, Ihr Wissen zu teilen.
Cyril - Als das Projekt begann, war es nur eine Idee, Entwickler für den Prozess zu gewinnen. Das machte Sinn, weil Wir sind in der Praxis ständig mit spezifischen technischen Problemen konfrontiert und kennen einige Aspekte, die wir gerne teilen möchten. Ein Vorschlag ging ein, stimmte ich spontan zu, und als ich bereits begonnen hatte, dies nachdenklicher anzugehen, gab es bereits Ziele und den Wunsch, diese zu erreichen.

Was hast du an der Akademie gemacht?
Dmitry - Vorbereitete Fragen für Online-Tests, war an der Auswahl und Befragung von Studenten beteiligt und fungierte auch als Mentor für einige Studenten.
Alexander - ich habe getan, was ich zuerst gedacht und geplant habe, was wir tun und erzählen sollen - und was uns [in den Kandidaten] fehlt und dass es für Leute interessant wäre, die an diese Akademie kommen.
Philip - An der Akademie war und bin ich als Mentor - eine Person, die den Studentencode überarbeitet und sie auf den wahren Weg führt und alle möglichen Ratschläge gibt.
Bedauern Sie nicht die aufgewendete Zeit?
Dmitry - Nein, natürlich. Ich habe geholfen, drei talentierte Leute einzustellen, sogar in benachbarten Abteilungen, aber am Ende haben wir ein großes Team, eine Familie, wenn Sie wollen. Je mehr Leute in der nächsten Abteilung sind, desto weniger werden sie ihre Aufgaben für uns abwerfen =)
Cyril - dachte ich - das ist eine gute Chance, meine Fähigkeiten in Bezug auf die gleiche Geselligkeit und das gleiche öffentliche Sprechen zu verbessern. Wir alle wissen, dass dieses Thema für viele Entwickler schrecklich ist, deshalb habe ich meine Ängste überwunden.
Infolgedessen habe ich zwei Studenten eingestellt, die Jungs arbeiten erfolgreich.
Warum bist du Mentor geworden?
Dmitry - Ich entwickle mich gerne in verschiedene Richtungen und es war eine großartige Gelegenheit, mich in allem zu beweisen. In der Zeit gewalttätiger Jugendlicher gingen die Gedanken in die Pädagogik ein, aber es funktionierte nicht, obwohl eine gewisse Erfahrung übrig blieb.
Philip - Nichts passiert umsonst. Zum Beispiel kommen Leute nicht nur so zur Akademie, sondern zum Beispiel, um später einen Platz im Team einzunehmen. Die Rolle des Mentorings besteht unter anderem darin, eine gültige Person im Team auszuwählen.
Was fehlt modernen Studenten?
Dmitry - Es kommen viele talentierte Leute, die gut denken, aber leider nur langsam. Sie hatten noch keine praktische Erfahrung, ihr Gehirn wurde nicht für die Programmierung umgebaut. Sie können nicht schnell Lösungen finden, sie müssen ruhig sitzen und in einer gemütlichen Atmosphäre denken. Dies ist kein Problem, wenn Sie einige akademische Probleme zu Hause lösen, aber wenn sie in den Arbeitsprozess übergehen, ziehen solche Leute möglicherweise einfach nicht.
Cyril - Wenn Sie große Themen benennen, sind die wichtigsten Wissenslücken nach den Universitäten Multithread-Programmierung. Der wahrscheinlich katastrophalste Bereich, gemessen an der Analyse unserer Testaufgaben.
Aber ich denke, das ist eine Folge des Mangels an Übung. Es gibt genug Theorie, aber an Universitäten ist sie in der Regel sehr einseitig. In C # übernehmen sie beispielsweise Aufgaben, asynchrone Aufrufe und analysieren sie. Dieser Mechanismus ist praktisch, erlaubt Ihnen jedoch nicht, unter die Haube zu schauen. Der Schüler selbst muss anfangen zu verstehen, aber fast niemand tut es. Neugier ist eine gute Sache, aber oft bleibt einfach nicht genug Zeit dafür.
Was ist so interessant an Student Code Reviews?
Artyom - Im Prinzip ist es an sich interessant, den Code anderer Leute zu betrachten. Wir verwenden nicht viele Innovationen im Workflow, deshalb habe ich sogar etwas Interessantes über relativ neue Technologien für mich gelernt.
Die Schüler schrieben auf dem siebten Sharpe bzw. im siebzehnten Studio einige Momente, die ich in der Praxis noch nicht erlebt hatte. Zum Beispiel async / await.
Eine Codeüberprüfung ist beispielsweise die Praxis, guten Code zu schreiben. Wenn Sie es selbst schreiben, denken Sie unwillkürlich: "Nun, Sie können es bekommen, hier ist es besser, hier ist es schlechter, dann werde ich es wiederholen usw." Und wenn Sie sich den Code eines anderen ansehen, haben Sie keine Einschränkung, dass Sie 10 Fehler vor dem Mittagessen beheben müssen. Und Sie können ruhig untersuchen, wo es schlecht ist, wo Sie es besser machen können und wo Sie es vollständig wiederholen können. Dies hilft dabei, den Prozess des Schreibens von Code von außen zu betrachten, und in Zukunft wird es einfacher sein, Probleme zu lösen, wie man ein Anrufschema erstellt, Klassenverantwortung usw.

Was erwarten Sie von einem Studenten für ein Interview?
Dmitry - Ich möchte seinen Ansatz sehen. Leute kommen, sie sagen, dass sie zum Beispiel Richter lesen. Ich habe Richter nicht gelesen, aber wenn Sie anfangen, mit ihnen zu sprechen, wird klar, dass sie dort eine Antwort auf ihre eigene Frage gefunden haben, und das ist alles - d. H. sie haben es nicht [nachdenklich] gelesen. Sie blätterten in einem Buch, aber sie interessieren sich nicht für das, worüber er schreibt, und nicht dafür, wie das .Net Framework im Inneren angeordnet ist. Dies ist ein gültiger Ansatz, wenn Sie ein etablierter Spezialist sind. Wenn Sie jedoch C # in Ihrem ersten Jahr gesehen haben und einige Implementierungsdetails entfernt haben, wie alles unter der Haube angeordnet ist, ist dies eine Garantie dafür, dass Sie anfangen, auf den Rechen zu treten. Und wenn Sie zu diesem Zeitpunkt in das Teamprojekt einsteigen, wirkt sich dies unweigerlich auf Ihr Ergebnis aus. Jeder wird dich beschimpfen, deine Motivation wird sinken und die Frage nach weiterer Arbeit wird sich stellen.
Es gibt noch einen anderen Aspekt der Freizeit. Selbst wenn die Augen seines [Schülers] brennen, er aber zwei Stunden auf dem Weg zur Akademie verbringen wird, plus seinen Teilzeitjob, Lebensprobleme und eine hungrige Katze zu Hause, wird klar, dass er keine Freizeit hat und nur brennt wie ein Streichholz für drei Monate Studium.
Ist es schwierig zu lehren, wie man Code „richtig und nach Bedarf“ schreibt?
Philip - Du kannst nicht sagen "du machst es richtig - oder falsch." So etwas gibt es nicht. Sie erstellen unterstützten Code oder Sie erstellen nicht unterstützten Code. Angenommen, Sie haben die Aufgabe, ein Projekt in 5 Stunden auf einem Hackathon zu entwerfen. Und natürlich werden Sie nicht an die Schönheit der Architektur und die Schönheit des Codes denken. "Sie vermasseln", um zu arbeiten - und das zu Recht. Wenn Sie dagegen in einem Unternehmen [eines großen Unternehmens] arbeiten, haben Sie Zeit für Aufgaben und bestimmte Anforderungen an den Code eingeplant, und dies ist das, wonach wir streben und wonach wir suchen.
Alexander - Es gibt zwei Situationen. Wenn eine Person bereits etwas Ähnliches in einem anderen Lebensmittelunternehmen getan hat, wird sie relativ leicht hineingießen. Der Markt standardisiert Prozesse.
Eine andere Sache ist, wenn Sie bereits Erfahrung haben, aber ein paar andere Dinge getan haben. Dies wirft die Frage auf: "Wie wollen Sie sich weiterentwickeln?" Wenn Ihr Ziel darin besteht, in einem großen Unternehmen zu arbeiten und in ein anderes Land zu ziehen, müssen Sie eine Phase der Unterbrechung durchstehen. Es ist wie ein persönliches Auto nach öffentlichen Verkehrsmitteln (oder umgekehrt): Zuerst ist es schmerzhaft und traurig, aber dann wird es sehr bequem und bequem.
Dmitry - Wenn eine Person über ein Mindestmaß an Fähigkeiten verfügt, muss sie dieses nicht „brechen“. Aber wenn erfahrene Programmierer kommen, haben sie bereits ihre eigenen Praktiken, ihren eigenen Codestil, der von unseren abweichen kann - und die Gespräche beginnen: „Warum verbieten Sie mir, Vars zu verwenden? Ich habe so guten Code, dass kein einziger Typ sichtbar ist und alles so ist, wie es in der funktionalen Programmierung sein sollte. “ Aber mit solchen Leuten ist es schwieriger.
Und wenn dies selbst im letzten Jahr ein Student mit einem Dutzend Projekten auf dem Github ist, hatte er einfach keine Zeit, sich bösartige Praktiken anzueignen. Die Arbeit mit völlig „reinen“ Menschen ist eine Freude.
Studenten können angenehm überraschen?
Artyom - Sagen wir einfach, manchmal gab es Situationen, in denen Sie den Code öffnen, und es gibt überall Konstruktionen, die Sie noch nie gesehen haben. Ich musste mich zu ihnen setzen und herausfinden, wie man sie richtig benutzt. Es kam vor, dass ich selbst das erste Mal nicht richtig verstanden habe.

War die Veeam Academy für Sie persönlich nützlich?
Dmitry - Ja natürlich. Wie immer - wenn Sie jemandem sagen, wie es geht, verstehen Sie zunächst, wie es geht. Zweitens systematisieren Sie Ihr eigenes Wissen und finden selbst in Vorlesungen Antworten auf einige Fragen, die Sie lange gequält haben. Das Teilen Ihres Wissens mit jemand anderem ist daher eine großartige Möglichkeit, sich weiterzuentwickeln.
Alexander - Zunächst wurde klar, was die Menschen erwarten, auch vom Ort der zukünftigen Arbeit. Wenn Sie als Führungskraft dabei sind, kochen Sie eher in der Geschäftsentwicklung. Und wo die Situation informeller ist, wie in der Akademie, wird klar, was Menschen bewegt, was sie wollen und was ihre Interessen sind.
Sie lernen, auch viel, über sich selbst, und das ist das Wichtigste.
Sie verstehen zum Beispiel, dass viele Dinge vereinfacht werden müssen. Wenn Sie längere Zeit in einem Bereich arbeiten, verschwimmt das Auge und die Dinge, die für Sie offensichtlich sind, werden für andere Menschen, insbesondere für Anfänger, völlig unverständlich.
Philip - Wenn Sie ständig inmitten von Entwicklern eines bestimmten Niveaus kochen, beginnen Sie, in einer Sprache zu sprechen, die nur für Sie verständlich ist. Und wenn eine Person ankommt, die gerade diese Umgebung betritt, beginnen Sie, alles in einfacheren Worten zu erklären. Sie lernen, Informationen strukturierter zu vermitteln.
Wenn Sie mit Schülern arbeiten, lernen Sie auch Geduld, Mitgefühl und Verständnis =) Aber dann sehen Sie einige Dinge, die er selbst wusste, aber vergaß. Sie müssen tiefer in die Technologie eintauchen, um der Person die Bedeutung des Geschehens besser zu vermitteln. Eher die Bedeutung, warum es besser ist, so zu tun, aber es ist besser, nicht so zu tun.

Bei der Unternehmensentwicklung geht es immer um Vermächtnis?
Cyril - Absolut korrekte Aussage. Wenn ein Projekt seit 10 Jahren geschrieben wurde und sich ständig weiterentwickelt, ist ein bestimmter Prozentsatz des Legacy-Codes darin enthalten.
Eine andere Frage ist, wie verschiedene Unternehmen dies angehen können.
Während das Modul arbeitet, versuchen wir, nicht darauf einzugehen. Es wurde vor 5 Jahren getestet und mehr als eine Version hat stetig funktioniert. Eine andere Frage ist, wann Sie einen Code erhalten, in dem Sie ständig etwas ändern müssen. In diesem Fall ist es uns nicht verboten, es schrittweise zu verbessern: Refactoring usw. Vor 10 Jahren gab es einen anderen Sprachstandard, andere lexikalische Konstruktionen. Niemand stört sich daran, neue Designs zu übernehmen, umzugestalten und zu übertragen.
Der Code verjüngt sich allmählich, aber alles liegt in den Händen des Entwicklers. Sie können einen Bolzen hämmern, das aktuelle Problem lösen, und vielleicht reicht dies für das Unternehmen, weil Das Endziel in Form eines Arbeitsprodukts wird erreicht. Nun, was ist drin ... Es gibt viele Geschichten im Internet, insbesondere über den Beginn von Gamedev, als nur Klassen in C ++ erschienen ... Sie öffnen den Code - es gibt Klassen, es gibt viele Includes in jeder. Es ist klar, dass sie es jetzt ein ganz bestimmtes Wort nennen würden.
Aber im Allgemeinen müssen Sie mit Legacy-Code leben können. Es besteht kein Grund, Angst vor ihm zu haben.
Dmitry - Legacy-Code ist natürlich vorhanden und natürlich muss man irgendwie damit leben. Aber du lebst nicht aus Verzweiflung mit ihm, sondern weil es keinen Sinn macht, ihn zu berühren. In den meisten Fällen handelt es sich bei Legacy-Code um bereits debuggte Komponenten, auch wenn diese auf einer Art .NET 2.0 geschrieben sind. Sie funktionieren jahrelang, es müssen keine neuen Funktionen hinzugefügt werden - und warum sollten Sie sie berühren, wenn sie funktionieren und einwandfrei funktionieren ?
Es gibt Situationen, in denen Sie einen Fehler im alten Code sehen, der mehrere Releases bestanden hat, aber plötzlich ausgelöst wurde. Dann beginnen Sie, den alten Code neu zu schreiben, und decken ihn möglicherweise mit Komponententests ab, um nichts zu beschädigen. Oder Sie vertrauen den Testern einfach endlos. Das heißt, du nimmst dir natürlich nur eine gute Zeit, nicht für die Veröffentlichung - sondern alle Arten von Beta nur dafür und erfunden.
Was die Akademie betrifft, so können wir mit diesem Projekt auch mit der Zeit gehen. Neue Leute kommen, sie verfolgen aktiv die Nachrichten der Welt von C #, .Net usw. Sie mögen einige neue Konstruktionen, "syntaktischen Zucker" aus den neuesten Versionen. Tatsächlich zwingen sie durch ihre Teamleiter diese Entwürfe in das Projekt. Ja, es kann zu Widerstand führen, die Leute akzeptieren es möglicherweise nicht sofort, aber es ist alles nur vorübergehend, und wenn das neue Framework eine wirklich nützliche Funktion enthält, wird es in den Prozess einfließen.
Philip - Ich muss mich mit dem befassen, was vor 10 Jahren geschrieben wurde. Davon kommen Sie nicht weiter. Natürlich bemühen wir uns, unseren Stack zu aktualisieren, aber wir haben 180 Projekte in der Entwicklung, in dieser Zeit wurden mehrere Millionen Codezeilen geschrieben, und es ist sehr schwierig, einfach darüber zu springen. Wir müssen das verstehen und irgendwie akzeptieren.
Alexander - Ich habe einmal eine Präsentation von Mercedes Benz darüber gelesen, warum sie so konservativ sind und Technologien mit einer gewissen Verzögerung einführen. Die Antwort ist einfach: Alles, was dem Kunden nicht zugute kommt, geht „in einen Eimer“. Die Unternehmensentwicklung folgt dem gleichen Prinzip. Die ersten „Opfer“ der neuen Technologie sollten Analysten, Entwickler, ein Testlabor oder andere Personen sein, jedoch nicht der Kunde. Jede Technologie, bevor sie im Produkt erscheint, muss eingefahren werden. Von außen sieht es aus wie Vermächtnis, von innen jedoch nicht. Es ist nur so, dass wir alles Moderne zuerst an „Katzen“ testen und erst dann im Leben anwenden müssen.
Artyom - Ja und nein. Unser Produkt ist 10 Jahre alt, wir haben also viel Vermächtnis, aber das bedeutet nicht, dass wir die alten Komponenten blind ziehen und nichts damit anfangen. Es kommt vor, dass wir es komplett neu schreiben.

Wie ist dann die Einführung neuer Funktionen?
Alexander - Erklären Sie zunächst, welches Problem Sie lösen. Wenn Sie das Projekt des Mondrovers mitgebracht haben - das ist sicherlich großartig, aber erklären Sie, warum es benötigt wird. Wenn Sie erklären können, warum es für uns nützlich sein wird, werden wir es natürlich implementieren.
Cyril - Zuerst müssen Sie herausfinden, was es ist - weil es kann Konsequenzen haben. Wenn wir eine neue Bibliothek einführen, sind hier nicht nur Entwickler beteiligt. Die Testabteilung ist enthalten, die die gesamte Logik, die auf dem alten Arbeitscode beruhte, erneut testen muss. Jetzt haben wir alles geändert.
Daher ist die Einführung von Neuem in der Produktionsentwicklung häufig mit hohen Gemeinkosten verbunden. Und wenn der Gewinn aus der Implementierung diese Kosten übersteigt, wird in der Regel eine Entscheidung über die Implementierung getroffen. Und wenn im Gegenteil, warum dann? Sie müssen sich nicht in den Fuß schießen.
Was ist mit der Leidenschaft der Jones und ihrem Wunsch, alles zu verbessern?
Dmitry - Sie lösen aufgrund mangelnder Kompetenz immer noch keine ernsthaften, komplexen Aufgaben. Das junge Alter (in Bezug auf den Entwickler) ist eine großartige Gelegenheit, sich selbst zu stoßen, besonders wenn Sie den älteren Kameraden nicht glauben. Wenn der Preis für die Frage zwei Tage beträgt, in denen er versteht, dass sich seine „geniale“ Idee nicht durchsetzen wird und er sich nicht mehr mit diesem Müll befasst, ist es besser, ihm die Möglichkeit zu geben, persönlich auf diesen Rechen zu treten. Es ist viel schlimmer, ihm dies zu verbieten, und er wird monatelang denken, dass "der böse Teamleiter mir verboten hat, das coole Ding zu schneiden".
Cyril - Alles, was an der Akademie gegeben wird, ermöglicht es den Studenten, zunächst den Stapel moderner Technologien zu betrachten. Zweitens versuchen wir, alles, was wir geben, maximal zu nutzen.
Unser Produkt ist nicht jung, aber wenn eine neue Funktion geschrieben wird, wird sie von Grund auf neu erstellt, und der Einsatz neuer Technologien birgt weniger Risiken. Also lass sie es benutzen.
Artyom - Neue Funktionen können in neuen Bereichen angewendet werden. Unser Projekt ist nicht so monolithisch, dass es nur ein Problem löst, und das ist es. Es hat viele Funktionen und es gibt immer einen Ort, an dem das Neue angewendet werden kann.
Wenn eine neue Person ankommt, erhält sie zuerst pädagogische Aufgaben, dann kleine. In jedem Fall muss er sich zuerst mit dem Projekt vertraut machen, weil es riesig ist. Es scheint schon über eine Million Codezeilen zu sein, aber ich kann lügen. Auf jeden Fall wird es ihm nicht gelingen, in einer Woche und sogar in einem Monat einen Blick darauf zu werfen. Aber wenn er anfängt zu verstehen, können wir ein Experiment geben, warum nicht.
Wie kann man ein Junior mit einem Vermächtnis sein?
Philip - Erstens kann man nicht sagen, dass diese Dinge völlig veraltet sind. Es gibt alle Arten von direktem „Know-how“, ok, wir arbeiten größtenteils ohne sie. In jedem Fall wird eine Person von uns den richtigen Ansatz für die Organisation und das Design von Codes lernen. Das geht nirgendwo hin.
Wir werden auch lehren, wie man mit Vermächtnis arbeitet. Dies ist auch eine sehr wichtige Fähigkeit. Sie können nicht glauben, dass Sie kommen und anfangen werden, das beste System der Welt zu entwerfen. Nein. Wenn Sie zum Unternehmen kommen, befinden Sie sich meistens auf einem fertigen Produkt. [ — .], [ — .].
— . backlog [ , — .], , . , - , , - .
-, . , , , .

, , ?
— Enterprise- , . , , , . , “ ”, “”. , enterprise[-]. , , , , . , Veeam 5 , SMB [small & medium businesses — .] Enterprise. enterprise[-], , , . , , .
. , enterprise. : , enterprise “”, . , , . , enterprise, . : - 5 ( ) , , , . , .
. , . , . , , .
— . , , - , , .
[.. — .] . , .
? , , . , , — . : , . .
, 2-3 . , . , Veeam, , - , - . — .. , , .
— , . , . , enterprise- , .
, , , . , Amazon , Facebook , , .
, enterprise. , .
— “, , ” , . . , . , , - , , , . , .
, , . , , .. , . . , , .
enterprise?
— , . , , , “ ”, .
— . - - . - , “”. . 8 , , . , .
— , enterprise. , , , . , , ..
— , — . , , .

?
— , . , . - , , .
, . — , . , , , . , . -, , , “” [ — .]. , , . .
?
— , . .
— , , .
— . -, . 15 - , , , [Microsoft Visual Studio — .], , - .
— , .
— , , . , , , . , , , .
, , , .