
Übersetzt für Sie
einen Artikel von Chuck Groom , einem Programmierer mit 18 Jahren Erfahrung, der jetzt als technischer Direktor eines großen Unternehmens aus New York arbeitet. Chuck sucht oft nach Mitarbeitern für sein Unternehmen und erklärt in dem Artikel, welche Qualitäten und Erfahrungen ein Bootcamp-Absolvent (sowie eine Universität oder Kurse) haben muss, um eingestellt zu werden.
Als technischer Direktor meines eigenen IT-Unternehmens suche ich oft neue Mitarbeiter. Ich spreche oft mit Absolventen von Bootcamps, die dort 3-6 Monate verbracht haben. Die Hauptfrage, die sie interessiert, ist, wie man einen Entwicklerplatz bekommt.
Skillbox empfiehlt: Zweijähriger Praktikumskurs "Ich bin ein PRO-Webentwickler . "
Wir erinnern Sie daran: Für alle Leser von „Habr“ - ein Rabatt von 10.000 Rubel bei der Anmeldung für einen Skillbox-Kurs mit dem Promo-Code „Habr“.
Ich muss sofort sagen, dass das Training im Bootcamp oder anderswo überhaupt keine Garantie dafür ist, einen gewöhnlichen Sterblichen in einen erfahrenen Programmierer zu verwandeln. Um Entwickler zu werden, sind Tausende von Stunden unabhängiger Schulung und Übung zum Erstellen von Software erforderlich. Ja, Bootcamp ist ein guter Anfang, aber dann müssen Sie weiter lernen.
Folgendes sollte sich ein Programmieranfänger, der eine Karriere beginnen möchte, konzentrieren:
- Schreiben Sie viel Code, während Sie an einem Projekt arbeiten. Die Aufgabe, die Sie gerne ausführen, ist der Schlüssel zum schnellen Lernen. Darüber hinaus müssen Sie ein Repository auf GitHub starten. Dies ist sowohl ein Portfolio als auch ein Argument, mit dem Sie einem Anfänger ein gewisses Maß an Vertrauen schenken können.
- Die grundlegenden Dinge lernen, die Grundlagen des Programmierens. Erstens sind sie während eines Interviews sehr oft daran interessiert, ob der Bewerber die Basis kennt. Zweitens muss der Spezialist selbst verstehen, was er tut.
- Vernetzung. Sie müssen sich mit Kollegen und potenziellen Arbeitgebern treffen und sich selbst "verkaufen". Eine schwache Vernetzung führt häufig zu Schwierigkeiten bei der Arbeitssuche. Umgekehrt ermöglicht die Teilnahme an Konferenzen, Hackathons und Veranstaltungen für Programmierer nicht nur die Kommunikation mit „Brüdern im Sinn“, sondern auch die Herstellung einer Verbindung zu einem möglichen Arbeitgeber
.

Löse echte Probleme
Eine bestimmte Aufgabe, die Sie ausgeführt haben, bedeutet viel mehr als eine einfache Codierung im luftleeren Raum. Der Punkt ist, wenn Sie etwas lernen, tun Sie es nicht nur, sondern versuchen Sie, Ihr Wissen anzuwenden. Helfen Sie beispielsweise der Open Source-Community, das Projekt zu verbessern. Alles, was Sie in der Phase der Ausbildung brauchen, ist die Auswahl eines interessanten Projekts, eine Aufgabe, bei der Sie alles zeigen können, was Sie können. Versuchen Sie, etwas Einzigartiges zu schaffen, und erstellen Sie keine andere Site mit Rezepten.
Wenn Sie an einem Projekt arbeiten, veröffentlichen Sie die Ergebnisse auf GitHub
Veröffentlichen Sie die Ergebnisse Ihrer Arbeit im geöffneten GitHub-Repository. Machen Sie sich keine Sorgen, dass Ihr Code nicht perfekt ist. Versuchen Sie einfach, ihn so lesbar wie möglich zu machen (und natürlich zu funktionieren). Vergessen Sie nicht die automatischen Tests und das Hinzufügen gut geschriebener Readme-Dateien zu Projekten.
Arbeitgeber bewerten Programmierer häufig nach ihrem Github. Sie wollen Beispiele für Arbeit sehen, und Ihre Aufgabe ist es, sie zu geben.
Eine Idee: Erstellen Sie eine Fertigkeit für AlexaDies ist nützlich, um die Fähigkeiten eines Programmierers zu verbessern, und bezeichnend - da diese Fähigkeiten für alle verfügbar sind. Die Entwicklung von Modulen für den digitalen Assistenten von Amazon ist natürlich ein Wow-Faktor, der einen Arbeitgeber für Sie gewinnen kann.
Sie können mit einem einfachen beginnen. Zunächst sollten Sie sehen, was bereits vorhanden ist. Versuchen Sie dann, Ihre eigenen Fähigkeiten zu entwickeln, sie funktionsfähig zu machen und sie zu polieren. So werden Sie verstehen, wie das IoT-Gerät funktioniert, wertvolle Erfahrungen sammeln und den ersten (oder zweiten, dritten) Job in Ihrem Konto für Ihr Portfolio ausführen.
Und Sie können etwas für einen potenziellen Arbeitgeber implementierenDies ist eine großartige Option. Wenn Sie einen Job in einem bestimmten Unternehmen bekommen möchten, versuchen Sie, etwas Nützliches dafür zu tun. Als ich zum Beispiel bei Xmarks arbeitete, interviewten ein Kollege und ich einen Arbeitssuchenden, einen Mann, der eine Demo eines Projekts zeigte, das unsere APIs verwendete. Das Projekt war interessant, wir stellten fest, dass der Bewerber es wirklich versucht hat und außerdem unser Produkt kennt, und stellten ihn ein.
Lerne die Grundlagen
Nehmen Sie sich Zeit, um die Grundlagen der Softwareentwicklung zu erlernen - gängige Datenstrukturen, Programmiermethoden und Konzepte. Bei Fragen dazu besteht in Zukunft die Möglichkeit, sich bei einem der Interviews zu treffen. Noch wichtiger ist jedoch, dass dies gängige Tools sind, die jeder Softwareentwickler in seinem Gepäck haben sollte. Sie müssen klar verstehen, was ein gutes Programm ausmacht, das richtig und schnell funktioniert.
DatenstrukturenSie sollten mit den Listen und Wörterbüchern Ihrer gewählten Programmiersprache vertraut sein.
- In Bezug auf Listen sollten Sie Folgendes wissen:
- Syntax für die Arbeit mit einem beliebigen Element in der Liste;
- Syntax zum Abrufen des n-ten Elements aus einer Liste; Konzept des Index und der 0-Indexierung;
- Das Prinzip beim Sortieren der Liste besteht darin, zu erkennen, dass es einige Zeit dauern kann, wenn die Liste lang ist.
- Unterschiede zwischen Arrays und Listen; Stapel und Warteschlangen.
Für Wörterbücher sind die Schlüsselelemente des Wissens:
- Die Syntax für die Verwendung eines Wörterbuchs zum Suchen und Einfügen
- das Konzept eines Schlüssel-Wert-Paares;
- Suche nach Schlüssel;
- Häufige Anwendungsfälle: „Attributpaket“ zur Beschreibung von Dingen, Nachschlagetabelle;
- die Beziehung zwischen Wörterbüchern und JSON (Serialisierung);
- das Konzept der Hashing-Funktionen (und wie sie mit Wörterbüchern zusammenhängen);
- Prinzipien für die Verwendung von kryptografischen Hashes wie SHA-1.
Programmierkonzepte
Es gibt viele Konzepte, die Sie studieren können. Die Hauptsache ist jedoch ein Verständnis der Prinzipien der Arbeit mit Funktionen und weit entfernt von einer kappenartigen Kenntnis der objektorientierten Programmierung und ihrer Logik.
Funktionen sind die Hauptbausteine von Programmen. Es gibt viele Nuancen ihrer Verwendung - von einer guten Auswahl an Namen bis zum Verständnis, wann welche Funktion besser zu verwenden ist. All dies kommt mit Erfahrung.
Für die objektorientierte Programmierung benötigen Sie:
- in Instanzen und Klassen versiert;
- nicht weniger gut - in der Vererbung (Unterklassen);
- Wissen, wie Sie eine Klasse mithilfe der Initialisierungsmethode in der Sprache Ihrer Wahl definieren.
- Seien Sie bereit, über Kapselung, Abstraktion und Polymorphismus zu sprechen.
Datenbanken (SQL)
Bootcamp-Alumni sind mit Datenbanken oft schlecht vertraut. Wenn dies auf Sie zutrifft, empfehle ich Ihnen, sofort mit der Erkundung relationaler Datenbanken und SQL zu beginnen. Versuchen Sie außerdem, selbst eine PostgreSQL- oder MySQL-Datenbank auf Ihrem Computer einzurichten.
Denken Sie auch daran, dass MongoDB kein SQL ist, sodass der Interviewer nicht immer an Datenbankerfahrungen interessiert ist und nach MongoDB fragt.
Vorstellungsgespräch
Hier sind die Tipps allgemein gehalten: Es lohnt sich, die Hauptprobleme zu untersuchen, die bei einem Interview im Internet auftreten können. Schließen Sie sich auch mit Ihren Freunden zusammen und versuchen Sie, sich gegenseitig zu interviewen.
Vernetzung
Die Kunst, mit Menschen zu interagieren, erhöht die Chancen, einen großartigen Platz im Unternehmen zu bekommen.
Ein wichtiger Punkt für die Vernetzung eines Programmierers ist, wie gesagt, sein GitHub. Darüber hinaus müssen Sie über ein aktuelles LinkedIn-Konto mit vielen Kontakten verfügen. Dieses Mal verwende ich LinkedIn als meinen eigenen Lebenslauf. Zweitens - mit Hilfe dieses sozialen Netzwerks suche ich die Menschen, die ich brauche. Wenn Sie viele Verbindungen zu LinkedIn haben, können Sie eine große Anzahl von Spezialisten treffen, unter denen sich potenzielle Arbeitgeber befinden.
Das Internet ist nicht alles. Es ist wichtig, die Komfortzone zu verlassen (egal wie ramponiert dieser Satz sein mag) und Menschen von Angesicht zu Angesicht zu treffen. Nehmen Sie an Meetings teil, sprechen Sie Fremde an, stellen Sie sich vor und unterhalten Sie sich mit Personen, die Sie interessieren. Es ist ganz normal, Bekanntschaften mit denen zu machen, die Sie selbst kennenlernen möchten. Die wichtigste Lektion im Leben, die ich gelernt habe, ist, dass Sie sich nicht schämen sollten, jemanden zu einer Tasse Kaffee einzuladen, wenn auch für ein paar Minuten.
Sie werden überrascht sein, wie oft Zufall und Wohlwollen wichtige Türen öffnen.
Und die Hauptsache ist natürlich, weiter zu lernen, deine Erfahrungen und Kenntnisse zu verbessern. Motivation ist das, wonach viele Arbeitgeber suchen. Wenn ein erfahrener Leiter einen motivierten, wenn auch unerfahrenen Arbeitssuchenden sieht, kann er einige der Mängel in Bezug auf Professionalität aus Gründen der Begeisterung und der Bereitschaft, weiter zu lernen, ignorieren.
Skillbox empfiehlt: