Ivan Shamatov: wie man Geld schreibt

Hallo!

Wir bereiten uns auf die bevorstehende RubyRussia 2019- Konferenz vor (haben Sie bereits den 28. September im Kalender markiert?) Und sprechen mit unseren Rednern über das Leben, die Community und die Programmierung. Im heutigen Interview spricht Felix Yasnopolsky von Evrone mit Ivan Shamatov: dem Leiter der Saint P Ruby Community ( hier können Sie am gemütlichen Community-Chat über Telegramm teilnehmen) und VP of Engineering bei Cybergizer.

Bild

Worum geht es in Ihrer Rede auf der kommenden Konferenz?

Ich möchte zeigen, dass Geld in der Programmierung einfach ist! Mit Hilfe von Geld drücken wir den Wert eines Produkts oder einer Dienstleistung aus. Im Allgemeinen können sie als ein Tupel der Dimension 2 beschrieben werden, das aus einem digitalen Wert (z. B. 100) und einem Zeichenwert (z. B. USD, $) besteht. Bei Geldtransaktionen mit denselben Symbolen ist der mathematische Apparat relativ einfach, aber auch hier finden Sie Fallstricke. Was können wir über das Szenario der Umrechnung von Geld von einer Währung in eine andere sagen? Hier bricht die ideale mathematische Welt zusammen und die Geschäftsbuchhaltung beginnt. Ich werde zeigen, wie man einige der Szenarien versteht und welche Fehler an Beispielen von Praktiken aus Fintech-Projekten auftreten können.

Warum hast du dieses Thema gewählt?

Ich war an der Entwicklung eines Zahlungssystems für die U-Bahn Aeroexpress beteiligt, eines Systems zur Bezahlung von Stromrechnungen für einige Staaten in den USA und viele andere. Das allererste Skript, das ich für Geld geschrieben habe, ist ein PHP-Skript, mit dem das Internet über Terminals in Puschkin bezahlt werden kann. Als ich das nächste Mal bei Cryptopay auf das Thema Geld stieß, gab es dort auch Überweisungen und Transaktionen. Dann ging ich zu Toptal, wo ich Teil eines Abrechnungsteams war. Als ich mich auf die Konferenz vorbereitete, dachte ich, dass viele Leute über die Funktionen von Ruby sprechen könnten, aber nur wenige verstehen, wie man Geld schreibt und wie man es richtig macht. Und dieses Thema begegnen wir häufig in verschiedenen Projekten.

Welche Technologien außer Ruby mögen Sie?

Ich mag JavaScript sehr. Genießen Sie das einfache Schreiben auf ES6. Ich mag die Paradigmen, die Ruby aus anderen Sprachen kennt: In diesem Fall müssen wir diese anderen Sprachen nicht mehr verwenden. Sie können ein gleichzeitiges Juwel öffnen und eine Reihe von Tools aus Go, Clojure, Java und JavaScript anzeigen. Ich mag es, dass es in verschiedenen Sprachen notwendig ist, verschiedene Denkweisen zu verwenden. Es gibt Leute, die von Ruby zu Go gehen, um die Prinzipien des Ruby-Denkens aufrechtzuerhalten. Oder kommen Sie mit Prinzipien aus PHP zu Ruby. Dies funktioniert beim Programmieren nicht: Jede Sprache hat ihren eigenen Ansatz, ihren eigenen Workflow, ihre eigene Denkweise. Sie müssen verstehen, wie man Programme genau im Rahmen einer bestimmten Technologie schreibt.

Ich interessiere mich sehr für die mobile Entwicklung: die gleichen Muster, die gleiche MVC, aber alles funktioniert ganz anders. Es war sehr interessant, React und Redux zu studieren - ein großartiges Repo für eine typische Schiene :)

Erzählen Sie uns von Ihren größten Fehlern und Gründen für Stolz.

Ich kann stolz auf die Projekte sein, an denen ich teilgenommen habe und an denen ich beteiligt war. Zum Beispiel ein Projekt, das es ermöglicht, in Moskau mit einer Aeroexpress-Karte zu bezahlen. Das gleiche System wird in der U-Bahn von Kasan verwendet. Ich habe einen Client für Drehkreuze auf JRuby geschrieben, und das Rails-Backend, das diese Transporttransaktionen bedient, funktioniert mit verschiedenen APIs. Es war ein sehr interessantes Projekt, an dem nur drei Entwickler teilnahmen.

Fakapov schämt sich nicht, auch wenn sie passieren. Eine Person hat das Recht, einen Fehler zu machen. Irrtum - und das machst du nicht mehr.

Eine Ihrer Aktivitäten ist Mentoring. Warum machst du das?

Ich selbst hatte immer Mentoren, die vorschlugen, was und wie zu tun ist. Das sind Leute aus verschiedenen Chats, mit denen ich auf Konferenzen und Meetings gesprochen habe. Als ich ein bestimmtes Niveau erreicht hatte, begann ich sowohl offline als auch online zu betreuen. Jetzt beschäftige ich mich mit Leuten, die von Rubizz zu uns gekommen sind . Dies ist eines meiner Hauptprojekte für heute, ein intensives praktisches Studium von Ruby für Anfänger. Kinder erhalten maximale Handlungsfreiheit und das Recht, Fehler zu machen. Und erst wenn die Zapfen voll sind, erklärt der Mentor, warum dies ein Fehler war und warum Sie dies nicht tun sollten. Ich glaube, dass dies der richtige Ansatz ist: Einige Dinge können erst verstanden werden, wenn Sie diesen Rechen selbst einsammeln. Wenn Sie Rückrufe nie falsch verwendet haben, werden Sie nicht verstehen, woran sie liegen könnten. Und warum hassen viele Menschen in der Gemeinde Rückrufe?

Ich habe gehört, dass Sie sechs oder sieben Mal versucht haben, in das Toptal-Team einzusteigen. Es stimmt?

Ja, es ist wahr, ich habe oft darüber gesprochen. Toptal verfolgt seit Unternehmensgründung eine aggressive oder korrektere proaktive Einstellungspolitik. Ich wurde ungefähr einmal im Jahr zu Interviews eingeladen. Nach wiederholten erfolglosen Versuchen entschied ich, dass ich es nicht noch einmal versuchen würde. Aber mein Freund, mit dem wir einmal unsere Reise in Ruby begonnen haben, bekam dort einen Job und schlug vor, es noch einmal zu versuchen. Und diesmal konnte ich alle Phasen des Interviews durchlaufen. Es gibt einen großen technischen Test am Eingang, dann ein Interview, dann noch einen und mehr ... Und jetzt glaube ich, dass die Durchführung von 5-6 Phasen von Interviews eine sehr coole Übung ist. Nur so können Sie verstehen, wer vor Ihnen steht, ob Sie mit dieser Person arbeiten möchten, ob sie in das Team passt. Und ich verstehe, warum sie mich nicht zum ersten Mal mitgenommen haben, ich habe damals wirklich nicht gezogen.

Wie sollte Ihrer Meinung nach ein idealer Bewerbungsgesprächs- und Einstellungsprozess arrangiert werden?

Als ich bei der Auswahl der Leute für das vorherige Team, Cryptopay, half, hatten wir zwei Phasen. Als Testaufgabe haben wir einen Code für das Refactoring angegeben. Basierend auf diesem Code haben wir eine vorläufige Bewertung des Kandidaten vorgenommen. Anschließend führten wir ein Interview im Format Live-Codierung durch, um zu verstehen, ob diese Person für uns geeignet ist. Mit Live-Codierung können Sie verstehen, wie eine Person denkt. Sie können nicht nur bewerten, was geschrieben ist, sondern auch, wie der Entwickler das Betriebssystem IDE verwendet. Weiß der Hotkey, wie gut er bestimmte Themen versteht, welche Ansätze er verwendet und welche Fragen er seinen Kollegen dabei stellt. Dieser Ansatz bietet viel mehr Informationen über eine Person als ein Test oder ein Interview über Algorithmen.

Aber ich glaube, dass das nicht genug ist. Jetzt stelle ich bei Cybergizer oft Leute ein, mit denen ich bereits zusammengearbeitet habe. Es gibt Leute, mit denen wir nicht zusammengearbeitet haben, aber zusammen haben sie eine Art Open Source geschrieben. Mit einer solchen gemeinsamen Aktivität können Sie sehen, wie eine Person Code schreibt. Und Sie verstehen auch, wie Ihr Workflow übereinstimmt, wie nah Sie geistig sind.

Ich betrachte mich nicht als Experte für Einstellungen, mein Ansatz schlägt auch fehl. Einer meiner jüngsten Fehler: Ich wollte die Person nach der Live-Codierungssitzung nicht für ein Interview nehmen, er hat mich nicht beeindruckt. Aber andere Teammitglieder stimmten für ihn und wir begannen zusammenzuarbeiten. In Zusammenarbeit wurde mir klar, dass dies ein erstklassiger Spezialist ist. Es gab einen absolut entgegengesetzten Fall, als ich ein Mann mit all meinen Händen war, und als Entwickler war er nichts. Nach diesen beiden Fällen bin ich nicht bereit, die Richtigkeit einer bestimmten Einstellungsmethode zu beurteilen. Vielleicht glücklich, vielleicht nicht glücklich. Um einen berühmten Witz zu paraphrasieren:
- Wie schaffen Sie es, so gute Entwickler einzustellen?
- Dies ist die ganze Erfahrung, gute Entwickler einzustellen!
- Und wie bekommt man so eine Erfahrung?
- Wir müssen verschiedene Entwickler einstellen.

Es scheint mir seltsam, dass so viele daran interessiert sind, gute Spezialisten zu gewinnen. Aber nur wenige Menschen interessieren sich dafür, wie man ein Unternehmen wird, in dem gute Spezialisten arbeiten wollen. Oder sollten Sie vielleicht zuerst darüber nachdenken?

Sie organisieren Treffen und Treffen von Saint P Rubyconf in St. Petersburg. Warum und warum machst du das?

Dies ist Teil der Ruby-Kultur - Community-Mitarbeiter. Jemand bettet Code ein, schreibt OpenSource. Ich trage zu dem bei, was ich bekomme. Viele Leute denken, dass man sieben Felder in der Stirn haben muss, um einen Beitrag zu leisten. Aber das ist nicht so! Vor fast 10 Jahren, als ich ganz am Anfang meiner Reise nach Ruby stand, übersetzte ich mit dem Team von Jungs ins Russische und sprach RailsCasts aus. So kann jeder für die gesamte Community nützlich sein: Es spielt keine Rolle, ob Sie das Dock in Gem aktualisieren, einen Artikel schreiben oder einen Mitap organisieren.

Wir sehen uns am 28. September bei RubyRussia!

Sehen Sie sich das Programm an und treten Sie hier bei . Die nächste Preiserhöhung wird nach dem 15. September erwartet.

Vielen Dank an die Unternehmen, die uns unterstützen:

Veranstalter - Evrone
Komplementärin - Toptal
Gold Partner - Gett
Silver Partners - JetBrains , Bookmate und Cashwagon
Bronze Partner - InSales

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


All Articles