• Zuhause
  • Artikel
  • Ich habe gerade nach 2 Jahren ein Full-Stack Bootcamp unterrichtet. Das erzähle ich meinen Schülern.
Veröffentlicht am 18-02-2019

Ich habe gerade nach 2 Jahren ein Full-Stack Bootcamp unterrichtet. Das erzähle ich meinen Schülern.

Foto von Joel Filipe auf Unsplash

Ich unterrichte seit Oktober 2016 Full-Stack-Web-Entwicklung. Anfang Februar war für mich ein Meilenstein in der Karriere, da ich meine voraussichtliche letzte Kohorte für die absehbare Zukunft abgeschlossen habe. Ich bin in der ganzen Stadt auf das Data Analytics / Visualization Bootcamp meines Unternehmens umgestiegen, werde aber beide Programme als Lead Instructor in Houston unterstützen. Ich hätte mir keine bessere letzte Gruppe von Schülern wünschen können, mit der ich zum Abschluss komme, und ich bin zuversichtlich, dass sie alle großartige Programmierer sein werden.

Als ich mit meinen Data Analytics-Schülern anfing, fiel mir auf, dass ich ziemlich viele der Dinge sagte, die ich meinen Schülern über mein Webprogramm mitteilen wollte. Allerdings sind meine Data-Schüler ganz anders - sie sind in der Regel älter, verfügen über mehr Berufserfahrung und eine motiviertere Mentalität. Sie machen jedoch genau die gleichen Fehler wie meine andere Klasse. Dies führte mich zu der Tatsache, dass die Fehler, die wir zu Beginn machen, wahrscheinlich für alle gleich sind, die zum ersten Mal Programmieren lernen, unabhängig davon, wozu der Code beabsichtigt ist.

Ich schreibe diesen Artikel, um Ihnen einige der Konzepte mitzuteilen, die ich als Teil meiner Unterrichtsphilosophie verehrt habe. Ich hoffe, dass Bootcamp-Schüler (unabhängig davon, ob Sie sich in meiner Klasse befinden) als Leitfaden für das, was sie während ihres Kurses beachten sollten Ich hoffe, dass andere Lehrer einige dieser Ideen in ihre Klassenzimmer integrieren werden. Vor allem hoffe ich, dass jeder, der dies liest, dem gesamten Unternehmen etwas mehr Mühe gibt, Code zu lernen.

Große Programmierer sind großartige Leser.

Lesen Sie ALLE Dinge!

Ich habe es wahrscheinlich von meinem Mitlehrer Tish abgenommen, aber ich habe es in jeder Klasse, die ich unterrichte, schamlos verwendet, seit ich es zum ersten Mal gehört habe. Eine der wichtigsten Fähigkeiten, an denen Sie als Entwickler arbeiten können, ist die Fähigkeit, Informationen auf Ihre spezielle Situation zu finden, zu verdauen und anzuwenden. Ich denke, dass dies eine Fähigkeit ist, die über die Softwareentwicklung hinausgeht, aber es erfordert oft herkulische Anstrengungen, um über ihren anfänglichen Widerstand hinauszugehen, nach eigenen Antworten zu suchen.

Als Entwickler werden Sie viel lesen. Lesen von Fehlermeldungen, Lesen von Dokumentationen, Lesen von Forumsbeiträgen, Lesen von Fehlermeldungen, Lesen von Benutzergeschichten, Lesen von E-Mails, Lesen von Lernprogrammen und nicht zuletzt Lesen von Fehlernachrichten. Ich kann nicht genug betonen, wie wichtig es ist, bei der Suche nach Antworten sorgfältig zu lesen, warum Ihr Bildschirm roten Text hat. Gute Bibliotheksentwickler nehmen sich Zeit, um Fehlermeldungen zu schreiben, die Ihnen oftmals im Klartext genau sagen, was bei der Ausführung des Geschriebenen falsch ist. Im Laufe der Zeit werden Sie einen Katalog von Fehlern erstellen, die Sie gesehen haben. So können Sie genau feststellen, was falsch ist und welche Änderungen Sie vornehmen müssen. Lassen Sie sich nicht von dieser Erfahrung ablenken, indem Sie einen TA oder einen Instructor direkt nach dem „Wie man das Problem beheben kann“ anfragen. Lernen Sie effektiv Google und lesen Sie effizient, damit Sie selbst ein guter Entwickler werden.

Lesen erfordert Einsicht. Ist React oder Angular für dieses Projekt besser? Ist diese Geschichte wirklich ein Muss oder ist es ein schönes zu haben? Werde ich hier bessere Leistungsgewinne durch… für oder. Für jedes () sehen? Wenn es um die Frage geht, welcher Tech-Stack wann verwendet wird, werden wir uns häufig an unsere Community-Foren wenden, um zu sehen, was andere erlebt haben. Im Labyrinth der Argumente für und gegen jede einzelne Technologie kann man sich schnell verlieren. Ein Teil der Arbeit in diesem Bereich besteht darin, ein Gefühl dafür zu entwickeln, Argumenten Gewicht zu verleihen und zu verstehen, was für Sie und Ihr Projekt wichtig ist. Verwenden Sie beispielsweise MongoDB nicht, weil Sie NoSQL mögen und jeder darüber spricht. Verwenden Sie es, weil Ihre Daten unstrukturiert und heterogen sind und keine große Anzahl von Beziehungen benötigen. Wenn es um technisch anspruchsvollere technische Fragen wie Leistung geht, sollten Sie sich nicht ausschließlich auf Konzepte der Informatik konzentrieren. Benchmarking ist der einzige Weg, um herauszufinden, welche Variante des Codes tatsächlich schneller läuft.

Schließlich ist es wichtig, mehr als nur die Programmierung zu lesen. Möchten Sie Ihre Finanzen verwalten? Lesen Sie mehr über persönliche Finanzen. Möchten Sie kreativer sein? Lesen Sie mehr kreative Fiktion. Ähnlich wie beim Codieren ist Lesen eine geübte Fähigkeit, die viele Bereiche Ihres Lebens verbessern kann.

Ihre Nebenprojekte bringen Sie an.

Ich codiere immer noch nicht genug.

Ich habe dies aus meiner persönlichen Erfahrung und aus den Ergebnissen von weit über 200 Studenten gelernt. Dies ist weniger ein Vorschlag und eher eine Anforderung, wenn Sie in diesem Bereich weit gehen möchten. In der Tat ist dies wahrscheinlich die kritischste Sache, zu der ich Sie drängen kann.

Jeder kann einem Tutorial folgen. Jeder in Ihrem Bootcamp vor, während und nach Ihrer Kohorte wird mehr oder weniger die gleichen Hausaufgaben machen. Der einzige Weg, um wirklich aufzufallen, ist, rauszugehen und etwas zu bauen. Es ist mir egal, was es ist. Baue mehr davon. Bauen Sie es bei der nächsten Iteration besser auf. Erstellen Sie Ihre eigene Version einer Bibliothek, die Sie immer verwenden. Ich würde eher hässlichen Code sehen, der versucht, etwas über Ihre jahrelange Erfahrung hinaus zu tun, von der Ihnen niemand sagen konnte, wie er erstellt wird, als ein leeres GitHub-Profil zu sehen.

Nebenprojekte machen Sie mehr als nur, sich von der Masse abzuheben, sie machen Sie eindeutig zu einem besseren Entwickler. Wenn Sie selbst Code schreiben, gibt es niemanden, der Ihnen sagen kann, wie Sie etwas tun sollten - Sie müssen die besten Praktiken dieses Handwerks lernen und wissen, wie diese auf Ihr Projekt angewendet werden. Wenn Sie selbst Code schreiben, werden Sie auf Probleme stoßen, für die Sie selbst recherchieren müssen. Wenn Sie selbst Code schreiben, müssen Sie mehr lesen und letztendlich mehr lernen. Sie erfahren, warum es Best Practices gibt, wann sie davon abweichen und was für Sie als Entwickler am wichtigsten ist. Softwareentwicklung - insbesondere Webentwicklung - ist nicht nur ein Bereich hochinteressierter Theorien, sondern auch ein Bereich, in dem Sie tätig werden müssen, und Sie müssen ständig neue Dinge tun, um an der Spitze Ihres Spiels zu stehen.

Baue es einfach und kompliziere es dann.

Sie müssen nur ein neues Rom erstellen, wenn Sie ein neues Projekt beginnen. Machen Sie die Funktion für diese eine Taste, die Ihr Kerngeschäftsziel ist. Lösen Sie dieses ein haarige Leistungsproblem. Zeigen Sie, dass Ihre App tatsächlich wie angekündigt funktioniert. Wenn Sie nur mit den unverzichtbaren Funktionen beginnen und dann das Angebot erweitern, werden Sie feststellen, dass Sie viel weniger Code schreiben, um loszulegen.

Möglicherweise müssen Sie Teile des Codes neu schreiben, Sie müssen möglicherweise die Bibliotheken wechseln oder neue hinzufügen, dürfen jedoch nicht durch Überplanung daran gehindert werden. Das bedeutet nicht, dass Sie nicht über Ihre Architektur und Organisation nachdenken sollten, sondern dass Sie irgendwann einmal anfangen müssen. Die harten Lehren aus Erfahrung werden Ihnen zeigen, welche Designentscheidungen später zu Fallstricken führen.

Code ist für Menschen.

Ich wurde stark von den Arbeiten von Cathy O'Neill und Giorgia Lupi beeinflusst, als ich darüber nachdachte, wie Daten - und, abstrakter, alles Code - das Leben der Menschen beeinflusst. Dies hat mich zu zwei etwas humanistischen Prinzipien geführt, die ich ständig in meinen Kursen unterstütze.

Viel zu schicke Hosen Regex

Das erste Prinzip ist, dass die Lesbarkeit von Code wichtiger ist als die Leistung. Zumindest beim ersten Durchlauf ist es wesentlich besser, Code zu schreiben, den die Zukunft, den Sie oder ein anderer Teamkollege verstehen kann, als Code zu schreiben, der vorzeitig optimiert und schwer zu ändern ist. Ja, die Leistung ist wichtig, und ja, es gibt einen Grund, aus dem Sie die Big O-Notation lernen müssen. Wenn jedoch Ihre rekursive Funktion nur schwer zu begründen ist, ist es auch schwierig, die Linie zu reparieren oder zu verbessern. Bei der Umstellung auf untergeordnete Sprachen ist dieses Prinzip noch wichtiger, da die Komplexität der Syntax und die Tiefe der Konzepte zunehmen. Einfache Dinge wie das richtige Benennen von Variablen, die Verwendung einer positiven Logik und das Hinterlassen von Kommentaren für esoterischen Code können einen großen Unterschied machen. Ich drücke diese Idee oft so aus: "Ich sollte in der Lage sein, Ihren Code einmal von links nach rechts zu lesen und die Zeile und ihre Bedeutung für den Block zu verstehen, in dem er sich befindet".

Das zweite Prinzip ist das Verständnis, dass Ihr Code irgendwann den Alltag eines anderen beeinflussen wird. Ihr Website-Design beeinflusst die Kauf- / Kaufentscheidung einer Person. Ihre korrekte Vorlageninjektion entscheidet, ob jemand kritische Informationen erhält, wenn er sie benötigt. Ihre API-Route bestimmt, ob andere Dienste eine Verbindung zu Ihrer Datenbank herstellen können. Überlegen Sie immer, wer Ihren Code benötigt und warum, und erleichtern Sie es dem Endbenutzer, sein Ziel zu erreichen. Wenn Sie sich nicht für eine Person oder andere Personen entwickeln, bauen Sie Ihre Anwendung falsch auf.

Bonus: Seien Sie ein Schöpfer, nicht nur ein Verbraucher.

Ich wünschte, ich könnte sagen, dass ich das im Unterricht sage, aber ich vergesse oft alles andere. Verbrauchen Sie nicht nur Bibliotheken und APIs, bauen Sie sie auf und ermöglichen Sie anderen Entwicklern, mehr zu tun. Schreiben Sie mehr, damit andere Entwickler sehen können, warum Sie die von Ihnen getroffenen Entscheidungen getroffen haben. Nicht nur erfolgreiche Entscheidungen! Eines der wichtigsten Dinge in diesem Bereich ist, zu sehen, warum die Verwendung einiger Werkzeuge im Maßstab möglicherweise nicht die beste Option ist, und schafft Raum für Innovation und Wiederholung früherer Ideen. Nehmen Sie das, was Sie gelernt haben, und geben Sie den Lernenden zurück.

Weiterlesen. Schreib mehr. Code mehr. TU mehr.

Siehe auch

Das Problem Interview - Verstehen Sie Ihren Kunden und seine spezifischen BedürfnisseWie die 80er die Zukunft der Sprachsuche freisetztenDie Sprache der ZukunftWie bereiten Sie sich auf das Update Ihrer Serveranwendung vor?Das hat Spaß gemacht zu lesen, Lolla. Du hast einen einzigartigen Stil.Money Management für Kinder: Ausgabe 2019