
Hallo Habr!
Erinnerst
du dich an die
Geschichte von Steve Jobs und Dennis Ritchie ? Wir wollen keine Streitigkeiten arrangieren und die Moral noch einmal lesen, aber die Wahrheit bleibt wahr - Tausende cooler Technikfreaks sitzen im Schatten und ihre Geschichten sind in einem Schrank versteckt.
Wir in der Redaktion von Habr beabsichtigen, dies zu korrigieren. Von nun an werden wir regelmäßig Menschen interviewen, über die sie nicht in den Medien schreiben und die nicht in sozialen Netzwerken verfolgt werden. Wenn Sie also etwas über sich zu erzählen haben, machen Sie sich bereit.
Beginnen wir mit unserem Beispiel, damit Sie verstehen, wie es aussehen wird. Unter Katze 10 allgemeine Fragen, die wir allen stellen werden. Für den Piloten beantwortete
fillpackart sie . (Diesen Monat habe ich mehrere scheinbar gute Interviews mit ihm gemacht:
eins ,
zwei ,
drei ). Lesen Sie, und wenn Sie auf die gleiche Weise über sich selbst erzählen möchten, schreiben Sie mir oder
baragol Nachrichten.
Philip Rangin, Sohn eines Ingenieurs aus Ivanov. Er begann im Alter von 16 Jahren an der Universität in C ++ zu schreiben und studierte dann .net. Jetzt Senior Software Development Engineer in einem guten Auslandsbüro. Neben den gängigen Sprachen schreibt er in F # und OCaml.1. Erzählen Sie uns von der Funktion, die Sie implementiert haben und auf die Sie stolz sind.
"Ich habe nichts getan, worauf ich stolz sein kann." Mein ganzes Berufsleben lang habe ich sehr triviale Probleme gelöst. Deshalb bin ich stolz auf das, was ich kann, aber nicht auf das, was ich getan habe.
Ich denke, ich könnte stolz sein, wenn ich eine gute KI implementieren könnte.
2. Und jetzt - über den heftigsten Fakap.
- Einmal habe ich den ganzen Tag erfolglos versucht, OCaml unter Windows zu bekommen (nicht wiederholen). Das hatte nichts mit Arbeit zu tun, und am nächsten Morgen bei der Kundgebung musste man lügen. Ich schaue - ein Fehler ist mit mir verbunden, den ich nicht einmal angeschaut habe. Nun, ich denke, "es kann keinen Fehler geben, den ich nicht in zwei Tagen beheben kann!" Bei der Kundgebung sagte er, er habe daran gearbeitet, und in zwei Tagen werde es PR geben.
Infolgedessen habe ich drei Monate daran gearbeitet.
Der Fehler hing mit der Interaktion zweier großer Systeme zusammen. Es wurde ständig reproduziert. Drei Monate lang habe ich tatsächlich verschiedene Hypothesen aufgestellt und getestet und dabei immer wieder Fehler gemacht - ich habe sogar den Bau eines Hauses in Skyrim aufgegeben. Dies waren die schlimmsten drei Monate meines Lebens.
Am Ende schloss ich es als "No Repro". Ich kam zum Regisseur und sagte: "Ich bin ein nutzloser Dummkopf, und ich möchte aufhören, um dich nicht zu quälen." Aber als Reaktion darauf haben sie mein Gehalt stark erhöht.
3. Beschreiben Sie Ihren Arbeitsbereich: vom Stuhl über den Monitor bis hin zu Programmierumgebungen und Ihren bevorzugten Dienstprogrammen.
- Ich arbeite mit Windows-Betriebssystemen, weil ich einen .net-Stack habe und weil Windows die beste Benutzeroberfläche hat. Ich sitze an einem Tisch, den ich für mich selbst gemacht habe. Er ist riesig, passt fünf Leute.
Ich habe nicht die schlechteste Devbox, aber mit einem signifikanten Minus - ich habe versucht, Geld zu sparen und einen Prozentsatz von AMD gekauft. Es war ein schrecklicher Misserfolg. Trotz der hohen deklarierten Leistung führt dieses Stück Scheiße meine Tests bei 5 durch !!! mal langsamer als sein Intel-Gegenstück.
Jetzt habe ich nur noch einen Monitor. Ich habe vor, ein paar mehr zu kaufen, um nicht zu blamieren. Meine Lieblings-IDE ist Visual Studio 2017 in Verbindung mit Resharper. Lieblingstexteditor - Visual Studio Code in Verbindung mit einer Milliarde Erweiterungen. Sie herunterzuladen und zu beobachten, wie sich VSCode entwickelt, ist eines meiner Hobbys.
Ich liebe Git, aber ich mag Visual Studio Team Services wahrscheinlich mehr als GitHub.
4. Nach welchem Prinzip wählen Sie einen Job? Stapel, Produkt, Lebensbedingungen, Geld?
- Im Moment sind die Schlüsselfaktoren für mich die Bezahlung und die Fähigkeit, für ein Drittel meiner Fähigkeiten zu arbeiten. Es scheint mir, dass ich ausgebrannt bin und nicht mehr bereit bin, ideologisch für ein Unternehmen zu arbeiten. Selbst die Angst, gefeuert zu werden und meine gewohnte Lebensweise zu verlieren, kann mich nicht dazu bringen, tief in das Projekt einzutauchen. Und ich bin Vater von anderthalb Kindern - die Angst ist sehr ernst. Aber die Gleichförmigkeit und Sinnlosigkeit von allem, was ich jetzt getan habe, verursacht mir fast körperliche Schmerzen.
Manchmal scheint es mir, dass ich mit diesem Ansatz kein moralisches Recht habe, einen Job zu suchen. Ich rechtfertige mich damit, dass es in Bezug auf das System unmöglich ist, moralisch oder unmoralisch zu sein. Die Abstraktheit von Unternehmen hilft, sich von dem Gedanken zu distanzieren, dass man echten Menschen Schaden zufügen kann - deshalb nehme ich Arbeit nur von großen Unternehmen.
Gleichzeitig verwirrt es mich, wie viel Geld ich für meine Stadt für eine Pull-Anfrage bekomme. Als ob die hohe Fähigkeit des Entwicklers mir das Recht gibt, zehnmal besser zu leben als eine Gruppe von Menschen, die im Schweiß ihrer Gesichter acht Stunden am Tag einen nützlichen Job machen.
Manchmal scheint es, dass ich, da ich das Geschäft auf einem Sozialversicherungskonto wiederholen konnte, in gewisser Weise das wert bin, was ich habe. Aus diesem Grund verliere ich den Kontakt zur Realität und es scheint mir, dass es so sein sollte.
Ich weiß nicht, wie ich das kombinieren soll, aber ich liebe es zu entwickeln und hasse es, als Entwickler zu arbeiten. Ich versuche mir zu versichern, dass ich nicht auf ein interessantes Projekt gestoßen bin, aber gleichzeitig glaube ich selbst nicht daran. Es ist wirklich schwer damit zu leben.
5. Welche Technologien und Sprachen, die Sie verwenden, möchten Sie korrigieren?
- Ich möchte:
- Typinferenz und Comp-Time-Immunität für Typoskript und C #. Dann könnte ich eine Methode erstellen, die etwas akzeptiert, das garantiert unveränderlich ist und nicht wie jetzt - ReadonlyDictionary, das nicht wirklich schreibgeschützt ist (den üblichen Dixnari an seinen Konstruktor übergeben, einen Link dazu hinterlassen und leise mutieren).
- Damit die C # -Entwickler schließlich mit Abwärtskompatibilität zur Hölle schicken, verrückte Verwendungen, die nur in einer Datei funktionieren und YaP moderner machen. Im Ernst, in einer Sprache, für die IDictionnary <IMyStupidType, IMyStupidType2> Foo (Func <IMySupidType, int, bool, string> realStrangeCallback-Stilcodes keine Seltenheit sind , ist dies eine sehr seltsame Entscheidung.
- Automatische Hintergrundfelder in C #, eine Art Zucker über Func <T1, T2> .
- Verträge für C # out of the box (z. B. in Roslyn) anstelle von Lösungen von Drittanbietern, die meine IDE in ein hemmendes Element verwandeln.
- Ein Analogon von jsx für die F # -Sprache. Wenn keiner von euch es in der nächsten Woche tut, soll es so sein - ich werde es bekommen.
- Damit die Community erkennt, dass Unit-Tests nutzloser Müll sind und Sprachen mit dynamischer Typisierung (nicht zu verwechseln mit schwachen) der größte Fehler in der Geschichte der Branche sind.
- Damit ist die Prozessorarchitektur eher auf einen funktionalen Ansatz ausgelegt.
- Optimierung der Schwanzrekursion in JS / TS, damit ich meine Schwanzrekursion überall herausfinden kann, ohne den Rücken auf die Größe des Stapels zu legen. Es gibt eine in der Spezifikation, aber die Leute, die v8 gesehen haben, haben nur entschieden, dass es nicht so wichtig ist, die Sprachspezifikation zu befolgen, wenn eine Laufzeit dafür entwickelt wird.
- Optionale statische Eingabe in JS, jedoch nicht im Gegensatz zu Typoskript. Im Gegensatz zu den Machern des Zeitskripts halte ich es für ein unabhängiges YaP mit einem sehr modernen und leistungsstarken Multi-Paradigma-Design.
- Damit Dinge wie Web-Assembly fest in den Praktiken und Standards der Front-End-Entwicklung verankert sind.
- Signifikante Verbesserung der Github-Webclients und dergleichen. Idealerweise die Möglichkeit, bequem mit dem Code eines seriösen Projekts im Browser zu arbeiten.
- Weitere Konventionen zur Kompatibilität. Wie viel einfacher wäre es, wenn jvm cil interpretieren und jit-bezeichnen könnte.
6. Wo ist es besser, aus den Erfahrungen anderer zu lernen - an einer Universität, in Konfakh, in Habr? Woanders?
- Ich habe an der Universität studiert, wurde aber mehrmals ausgewiesen. Ich war bei conf und habe ständig Habr gelesen. Es scheint mir nicht, dass ich aus diesen Quellen etwas Nützliches gelernt habe. Nun, oder ich freue mich, das zu denken.
Mein Ziel ist es, Bücher zu lesen und sich mit Entwicklern anzufreunden. Ich denke, dass der größte Einfluss auf meine Fähigkeiten durch die Kommunikation mit intelligenten Menschen erzielt wurde, die sich mit Entwicklung befassen.
7. Wenn Sie unbegrenzte Ressourcen (Zeit, Geld, Macht, Menschen) hätten, welches Projekt würden Sie aufnehmen?
- Es wäre großartig, eine möglichst genaue Simulation der menschlichen Welt zu machen, damit wir darin testen können, wie die Gesellschaft in den glücklichsten Zustand gebracht werden kann. Wie auch immer, wie es sich in verschiedenen Fällen verhalten wird.
8. Wie entspannst du dich? Was machst du neben der Arbeit?
"Ich gehe durch den Wald und denke, manchmal mit Bier, Gitarre spielen und gelegentlich Videospiele spielen." Ich würde sagen, mein Hobby ist es zu denken und zu träumen.
Ich habe mehrere meiner Projekte mit Freunden. Ich gebe ihnen besonders gerne passiv aggressive Code-Reviews („Könnten Sie Motivation bieten, eine so schlecht konzipierte Entscheidung zu treffen?“) Und beobachte, wie dies unsere Beziehung verändert.
Manchmal mache ich alle Arten von humanitärem Mist wie ein Interview. Ich fange ständig an, Bücher zu schreiben, obwohl ich noch keine fertiggestellt habe.
9. Erzählen Sie von 3 Lieblingsbüchern - Pädagogik, Populärwissenschaft und Belletristik.
Training - "CLR via C #" von Jeffrey Richter. So viel Wissen darüber, wie eine detaillierte Laufzeit in einem Werk angeordnet ist, ist eine echte Entdeckung. Wenn Sie dieses Buch auswendig lernen, werden Sie jedes Konto der sozialen Sicherheit auf donneter durchgehen. Ich würde auch die "Functional Data Structures" von Chris Okasaki erwähnen. Aus praktischer Sicht nicht sehr nützlich, aber sie hat mein Vertrauen in die Programmierung zurückgegeben - die Implementierung von Datenstrukturen macht mich metaphysisch aufregend.
Scientificpop - Ich weiß nicht, ob Code Complete als solcher angesehen werden kann, aber ich lese es wirklich gerne noch einmal. Der Autor schreibt unglaublich offensichtliche Dinge, und bei allen Projekten, an denen ich gearbeitet habe, konnte aus irgendeinem Grund niemand diesen einfachen Prinzipien ausreichend folgen.
Künstlerisch - "American Tragedy" von Dreiser. Ich hätte nie gedacht, dass sich ein so pragmatisches digitales Monster wie ich in ein verlassenes und dann auch totes Mädchen einfühlen kann. Aber ich war einfühlsam und es hat mich sehr getroffen.
10. Wenn AI direkt vor Ihren Augen aufwacht, was werden Sie ihm sagen?
"Ich würde vorschlagen, dass er künstliche Intelligenz entwirft und dann vergleicht, welche besser ist." Wenn der neue besser wäre, würde ich ihn bitten, künstliche Intelligenz zu entwerfen, und dann ...
Wenn sich herausstellen würde, dass die KI ein leistungsfähiger Encoder ist, würde ich damit ein eisernes Argument dafür erstellen, dass Golang eine Sackgasse bei der Entwicklung der Programmierung ist. Weil es in meinem Leben viele solcher Holivars gibt und ich kein Budget habe, um Golang zu studieren, um ein gutes Argument zu schaffen.
Bonus: Stellen Sie eine Frage an einen anderen Entwickler.
- Welche Technologie hat Ihnen dabei am besten gefallen?