Über die Rolle von Testaufgaben im Leben eines Entwicklers

Wie viele technische Vorstellungsgespräche hatten Sie in Ihrem Leben?

In den letzten fünf Jahren habe ich an 35 technischen Interviews aller erdenklichen Art und Spezifität teilgenommen – von kasachischen Startups für den kollektiven Fleischeinkauf für den Winter bis hin zu deutschen und amerikanischen Fintech-Diensten und Banken; mit Schwerpunkt auf Programmierung, Bereitstellung und Management; remote und im Büro; begrenzt und zeitlich unbegrenzt; stressig und entspannt, in verschiedenen Sprachen.

Dies, gepaart mit den ca. 20 Vorstellungsgesprächen, die ich selbst als Arbeitgeber geführt habe – eine ausreichende Anzahl, um der König der Vorstellungsgespräche zu werden und die folgende (zunächst völlig unoffensichtliche) Beobachtung zu machen und mich darin zu etablieren: Ich bin größtenteils davon überzeugt Dank so vieler Interviews sieht es langsam wie eine Randgewohnheit aus, ich habe meinen Stack auf professionellem Niveau studiert und bin ein Wettbewerbsspezialist geworden, obwohl ich bereits seit 10 Jahren in der Webentwicklung gearbeitet habe.

Dieser Artikel richtet sich an Programmierer, die am Anfang ihrer Reise stehen und die Tiefe ihres Wissens noch nicht ausgeschöpft haben. Darin möchte ich die These über den enormen pädagogischen Nutzen von Testaufgaben und technischen Fragen in Interviews weiter ausbauen – und alle zu meinem neu geschriebenen Telegram-Bot einladen ActualizeBot, wo man nach meinem Plan mindestens jeden Tag bis zum Ende ein technisches Vorstellungsgespräch führen kann. Und damit sie nicht enden, können Sie auch eine interessante technische Aufgabe, Frage oder eine nützliche/lustige Situation erzählen, die Sie während eines Interviews erlebt haben.

Im Folgenden erzähle ich Ihnen mehr über den Bot. Lassen Sie uns zunächst herausfinden, warum es so wichtig ist, die Antworten auf diese technischen Fragen und Aufgaben zu kennen und zu verstehen, auch wenn Sie bereits seit Jahren erfolgreich freiberufliche Projekte durchführen.

Warum lässt die Qualität unseres Grundlagenwissens zu wünschen übrig?

Wenn Sie noch nicht der König der Vorstellungsgespräche sind, stellen technische Vorstellungsgespräche eine ernsthafte Belastung für den Körper dar, ebenso wie die Jobsuche im Allgemeinen – egal, ob Sie ein Fachanfänger, ein Quereinsteiger oder ein Entwickler sind, der in einem solchen Beruf gearbeitet hat (und in unserer Zeit kann „lang“ als ein Jahr angesehen werden).

In vielen Vorstellungsgesprächen gibt es einen menschlichen Faktor, der diesen Stress noch verstärkt. Ihre Gesprächspartnerin ist möglicherweise nicht Alena Vladimirskaya, sondern eine gewöhnliche Programmiererin, von der es schwierig ist, angemessene Aufgaben und deren Bewertung zu erwarten, oder ein Hardcore-Teamleiter, der auf den Moment wartet, um seine ganze Strenge zum Ausdruck zu bringen Sein Blick ist auf dich gerichtet und er stellt die Frage: Was ist für dich agil!?

Eines Tages, ohne die notwendige, aber, wie Sie verstehen, unvorhersehbare Antwort auf diese Frage zu geben, blieb ich ohne Angebot zurück, worüber ich mich unglaublich gefreut habe.

Indem wir versuchen, diesen Stress und unnötige Bewegungen im Allgemeinen zu vermeiden, distanzieren wir uns nicht nur von der lautstarken Offenlegung unserer Unwissenheit über einige grundlegende Merkmale der Sprache, sondern auch davon, diese Unwissenheit zumindest ein wenig zu reduzieren.

Das Problem besteht darin, dass es in der Praxis nur wenige Orte gibt, an denen wir diese Klasse von Problemen bekommen können.
Jeder Entwickler, der an mehreren Orten arbeiten musste, wird bestätigen, dass die in Interviews gestellten grundlegenden oder kreativen Probleme selten etwas mit dem zu tun haben, womit sich ein Programmierer im wirklichen Leben beschäftigt – keine Rekursionen, Diagramme und asynchrone Aufzugssteuerungssysteme auf dem Planeten mit Negativ Schwerkraft in einem anderen Arm der Galaxie. Leider.

In Bezug auf mein natives JavaScript gibt es ein gutes Beispiel: Wenn React.JS nicht aufgetaucht wäre, würden 98 % der JavaScript-Programmierer erfolgreich weiterhin in glückseliger Unwissenheit darüber leben, was bind ist – mehr als 20 Jahre nach seinem Erscheinen – und würden weitermachen Ich bin ratlos, bekomme in Interviews Fragen dazu und nur diejenigen, die all diese hochabstrakten Bibliotheken, Frameworks und Module erfinden, würden weiterhin damit arbeiten. Heute ist diese Zahl dank der Reaktion auf gefühlte 97 % gesunken.

Angesichts der „Isolierung von der Realität“ dieser Aufgaben ignorieren viele Entwickler sie offensichtlich oder verschwenden Zeit damit, sich in sie zu vertiefen – und gehen weiterhin ihrer täglichen Routine nach, d. h. im übertragenen Sinne nicht nur für die Produktion durch das Minenfeld der Entwicklung zu laufen ohne Minensuchgerät, aber auch ohne zu wissen, dass sie sich in einem Minenfeld befinden.

Welche Folgen haben mangelnde Grundkenntnisse einer Sprache?

Die Antwort auf diese Frage scheint banal, aber aus irgendeinem Grund liegt es in der Natur des Menschen, seine Lösung immer in die hinterste Ecke zu drängen – und das spielt eine traurige Rolle im Leben von Junior- und Mittelprogrammierern und verlängert ihren Weg in die Höhen (und Tiefen). ) der Sprachkenntnisse um ein paar Jahre.

Der Anwendungscode, der Frameworks und Bibliotheken verwendet, die sie täglich schreiben, kann nicht als zuverlässig angesehen werden, wenn sie ihn schreiben, ohne die verschiedenen Aspekte seiner Ausführung ausreichend zu verstehen. Ein gutes Beispiel dafür aus der Welt von JavaScript ist das Schicksal der JQuery-Bibliothek, die einst der Motor des Fortschritts war und heute als in sich geschlossenes Wissensgebiet, getrennt vom Rest der Sprache, ihren natürlichen Platz einnimmt auf dem Markt – semiprofessionelle Skripte, die in aller Eile geschrieben und nach Bedarf bearbeitet werden, als Geschenk an das gleiche schnelle Layout auf Bootstrap von kostengünstigen Freiberuflern.

Die Zukunft von Projekten, die mit einem solch verantwortungslosen Ansatz, wenn auch aus Unwissenheit, entwickelt wurden, ist prosaisch und von kurzer Dauer: erhebliche Zeitverluste aus heiterem Himmel, Misserfolge, finanzielle und Reputationsverluste und infolgedessen ein Rückgang der Begeisterung für die Fortsetzung Zusammenarbeit.

Andererseits ist für jemanden, der sich für den Weg eines Programmierers entschieden hat, kaum etwas vergleichbar mit der Freude, zu verstehen, was er tut. Er versteht, dass er, wie Baron Münchhausen, zu Pferd durch ein Minenfeld tänzelt. Unnötig zu erwähnen, dass ein anständiger Arbeitgeber deutlich sehen kann, wie Menschen rücksichtslos durch ein Minenfeld gehen und wie Menschen, die vor Unentschlossenheit erstarren, einen Schritt zu tun, in eine Situation geraten, in der sie rennen und springen können, ohne an irgendetwas zu denken?

ActualizeBot

Nachdem ich die Vorteile von Vorstellungsgesprächen erkannt hatte und auch erkannte, dass es nicht ganz ethisch vertretbar ist, leere Vorstellungsgespräche zu führen, dachte ich, es wäre großartig, einen Bot zu entwickeln, in dem ein Anfänger oder ein Entwickler, der in eine andere Sprache umsteigt, an einer Bildungsausbildung teilnehmen könnte, ohne darauf zurückgreifen zu müssen Echte Interviews in dem Ausmaß, in denen es mir passiert ist. Und als ich mich daran erinnerte, wie gerne Programmierer Probleme diskutieren und vergleichen, die sie lösen mussten – vor allem, wenn es sich um etwas nicht Triviales handelte –, wurde mir klar, dass alles passt, ich lehnte alle Zweifel ab und voilà.

Der Bot hat derzeit 3 ​​einfache Funktionen:

  • Abonnement einer bestimmten Sprache/Framework, um neue Aufgaben dafür zu erhalten. Sie abonnieren und sobald Aufgaben eintreffen, erhalten Sie diese im täglichen Newsletter
  • Eine Aufgabe oder Testaufgabe veröffentlichen – In meinem Buch heißt es, dass Teilen wichtig ist
  • Ein ausgezeichneter Namensgenerator, mit dem Sie die optimale Signatur für den von Ihnen veröffentlichten Text auswählen können, einschließlich weiblicher Wörterbücher, nicht ohne Feministen

Derzeit stehen folgende Sprachen zur Auswahl: JavaScript, Java, Python, PHP, MySQL. Aufgrund der Grenzen meines Verständnisses ist die Auswahl etwas eingeschränkt. Ich hoffe, diese Liste mit Hilfe der Habra-Community ergänzen zu können.

Der Bot wird in einem reinen Rock'n'Roll-Format auf den Markt gebracht; eine Bezahlung für irgendetwas wird nicht erwartet.
Über diesen Link gelangen Sie dorthin: ActualizeBot

Kurz zur technischen Umsetzung

Dieser Bot ist eines von mehreren kleinen Projekten, bei denen ich die erste öffentliche Version meines Open-Source-Miniframeworks zur Entwicklung von Bots mit komplexer Struktur mit dem liebevollen Namen Hobot zur Verfügung stelle und in NPM für Hardcore-Leute verfügbar bin.

Das Framework ist auf Basis von Telegraf.JS und TypeScript aufgebaut, seine Zero-Zero-First-Version, ausgestattet mit einem Anwendungsbeispiel, kann unter eingesehen werden githabe und probieren Sie es gleich aus. Demnächst werde ich die Version 0.0.2 hochladen, erweitert und gekämmt für eine Person von außen, und ihr (dem Stamm) einen eigenen Artikel widmen. Ich freue mich, wenn es für jemanden genauso relevant ist wie für mich.

Wie viele Vorstellungsgespräche mussten Sie also wahrnehmen?
Ich bin sicher, Sie haben etwas zu erzählen!

Source: habr.com

Kommentar hinzufügen