Webentwicklung im Jahr 2020: Welche Codierungswerkzeuge sollten Sie lernen?

Heute hat einer meiner Lieblingslehrer, Brad Traversy, einen Überblick darüber veröffentlicht, was er Ihnen empfiehlt, um 2020 Webentwickler zu werden.

Brad überwindet einen Großteil des Hype, den Sie in den sozialen Medien hören. Sein Rat ist praktisch und realistisch. Und ich stimme ihm in so ziemlich allem zu, was er Ihnen zum Lernen empfiehlt.

Die Hauptsache, die Brad betont - und die ich immer betone - ist, sich nicht entmutigt zu fühlen oder sich überwältigen zu lassen.

Denken Sie daran: Der Lehrplan von freeCodeCamp deckt die meisten dieser Tools ab und hat mehr als 40.000 Menschen dabei geholfen, Jobs als Entwickler zu bekommen. Wenn Sie Zweifel haben, konzentrieren Sie sich einfach darauf.

Ich habe die wichtigsten Erkenntnisse von Brad unten zusammengefasst. Ich ermutige Sie, sich sein vollständiges Video anzusehen, das ich unten eingebettet habe. Er fügt viele Details hinzu, die weit über das hinausgehen, was diese Notizen vermitteln. Es ist eine 73-minütige Uhr.

Webentwicklung im Jahr 2020: Ein Überblick

Das Hauptziel des Videos ist es, Sie mit einigen der gängigsten Webentwicklungstools vertraut zu machen, die Webentwicklern zur Verfügung stehen.

"Ich versuche nicht, Sie mit Technologien zu überwältigen. Dies sind nur Optionen, die Sie haben ... Es gibt viele Technologien da draußen. Wenn Sie etwas wie Nuxt oder Gatsby hören, möchte ich, dass Sie wissen, was es ist. Und dann Sie können wählen, ob Sie es lernen möchten oder nicht. "

Brad ermutigt zunächst die Leute, zuerst zu fragen, was sie tun möchten. Möchten Sie an einer Produktfirma arbeiten? Oder als Berater arbeiten? Möchten Sie freiberuflich tätig sein? Oder bauen Sie ein eigenes Produkt?

Viele seiner Ratschläge, was zu lernen ist, laufen auf Ihre Ziele hinaus. Und er rahmt viele seiner Werkzeugvorschläge in diesem Licht ein.

Als Ausgangspunkt empfiehlt er, das zu lernen, was er "Die Notwendigkeiten" nennt.

Eine kontraintuitive Sache, auf die er hinweist: Sie brauchen keinen schicken Computer für die Webentwicklung. "Es ist nicht wie bei der Entwicklung von Game-Engines oder Ähnlichem. Sie können also einen Laptop oder Desktop der Mittelklasse oder in einigen Fällen sogar einen Computer der unteren Preisklasse verwenden."

Er verwendet MacOS, Windows 10 und Linux für Cloud-Server und sogar für einige seiner Medienserver.

Er ist ein großer Fan von VS Code für seinen Editor und verwendet Chrome und seine integrierten DevTools für das browserbasierte Debuggen. Trotzdem hält er Firefox für einen langen Weg und ist eine praktikable Alternative.

Er empfiehlt, mit Standard-HTML und CSS zu beginnen und neuere CSS-Tools wie Flexbox und Grid zu erlernen.

Er sagt, dass das Erlernen von Responsive Web Design im Jahr 2020 eine Selbstverständlichkeit sein sollte. "Jedes ernsthafte Projekt, das Sie erstellen, sollte gut aussehen und auf allen Geräten vollständig verwendbar sein."

Anstatt sich auf CSS-Frameworks wie Bootstrap zu verlassen, empfiehlt er Ihnen, das Erstellen eigener modularer CSS-Komponenten zu üben, die Sie dann im gesamten Projekt wiederverwenden können.

Er sagte jedoch, dass Sie diesen möglicherweise begegnen, wenn Sie an Projekten für verschiedene Arbeitgeber arbeiten.

Er erwähnt ausdrücklich Rückenwind, von dem ich vorher noch nichts gehört hatte. Rückenwind unterscheidet sich ein wenig von anderen CSS-Frameworks. Es konzentriert sich auf "Utility-Klassen", die Sie kombinieren können, um mit dem Design das zu erreichen, was Sie wollen.

Es ist keine Überraschung, dass Brad empfiehlt, wirklich gut mit JavaScript umzugehen.

Praktisch lernen

In Brads Leitfaden betont er wiederholt die Notwendigkeit der Praktikabilität.

Ja, es gibt Best Practices für alles. In vielen Fällen gibt es jedoch eine gute Möglichkeit, sich schneller zu bewegen und mehr zu erledigen, ohne sich in Tools zu verstricken.

Eines der interessantesten (und vielleicht ketzerischsten) Dinge, die er sagt:

"Für eine kleine Site müssen Sie DevOps und AWS und all diese Dinge nicht lernen. Eine Hosting-Site oder eine verwaltete Hosting-Site wie InMotion oder Hostgator ist in Ordnung. Sie können [Bereitstellung] direkt im Browser durchführen. Dies ist nicht erforderlich." überkomplizierte Dinge. "

Er argumentiert, dass es auch im Jahr 2020 etwas zu sagen gibt, wenn man vertraute Werkzeuge verwendet.

Für Leute, die neu in der Webentwicklung sind, empfiehlt Brad, zunächst so weit zu kommen, dass sie als grundlegender Front-End-Webentwickler arbeiten können. Auf diese Weise können Sie als Freiberufler Websites für lokale Unternehmen erstellen.

"Hipster werden sagen, dass Sie definitiv ein Front-End-Framework verwenden müssen. Ich denke nicht, dass das stimmt. Wenn Sie Vorlagen auf dem Server rendern möchten, ohne ein Front-End-Framework zu verwenden, denke ich, dass das absolut in Ordnung ist, aber es gibt viele, viele Jobs, die nach etwas wie React oder Vue suchen. "

Sobald Sie jedoch bereit sind, Front-End-Frameworks in Angriff zu nehmen, empfiehlt er Ihnen, React, Vue und Angular zu erkunden. "Probieren Sie alle drei aus und finden Sie heraus, welches Ihnen am besten gefällt."

Er nickt auch Svelte zu - das ist kein Framework, sondern ein Compiler. Aber er sagt, es ist wahrscheinlich zu neu, um es 2020 aufzunehmen.

Und er diskutiert die zunehmende Beliebtheit von Server Side Rendering. Dateisystembasiertes Routing bedeutet, dass Sie keine komplizierte Routing-Datei erstellen müssen. Stattdessen können Sie die Dateien einfach in das Verzeichnis legen, in dem sie sich befinden sollen.

Die beiden beliebten serverseitigen Rendering-Tools sind Next.js (für React) und Nuxt.js (die Vue-Option).

Ein weiterer aufkommender Trend ist Static Site Renders. Er sagt, dass Sie nicht lernen müssen, aber sich dessen bewusst sein sollten. Zum Beispiel sind Gatsby-Sites extrem schnell und benötigen keinen Server.

Back-End-Entwicklungstools

Für die serverseitige Entwicklung bevorzugt Brad Node.js wegen seiner Geschwindigkeit und weil er das JavaScript sowohl im Front- als auch im Back-End verwenden kann.

Für serverseitige Entwicklungsframeworks empfiehlt er das Erlernen von Express, da es das beliebteste ist und "es Ihnen viel Freiheit gibt, Dinge so zu erstellen, wie Sie es möchten".

Er verwendet Python auch für einige Projekte und empfiehlt es ebenfalls.

"Python hat zwei großartige Frameworks. Django ist ein großes Framework mit vollem Funktionsumfang, bei dem Flask minimalistischer ist. Es gibt Ihnen das, was Sie brauchen, aber Sie treffen den Rest der Entscheidungen. Ich kann ehrlich gesagt keines der beiden auswählen, ich liebe sie beide und benutze sie für verschiedene Dinge. "

Und er kommt schnell zur Verteidigung von PHP:

"Viele Leute geben PHP Mist und es ist bedauerlich, weil PHP eine großartige Sprache sein kann. Es ist praktisch und einfach überall bereitzustellen. PHP ist großartig für Freiberufler, die schnell etwas herausbringen müssen. Wenn Sie vorhaben Wenn Sie für ein großes Unternehmen arbeiten, ist PHP vielleicht nicht die beste Wahl, aber wenn Sie freiberuflich tätig sind und persönliche Projekte erstellen, kann PHP eine gute Wahl sein. Es ist cool geworden, PHP zu verprügeln. PHP war die erste Sprache, die ich gelernt habe und die ich immer noch sehr mag it ... Wenn Sie sich den Laravel-Code ansehen, ist er sehr elegant. "

Brad führt auch einen kurzen Überblick über Datenbanken durch und empfiehlt den mehrjährigen Favoriten PostgreSQL.

Andere Tools, die wahrscheinlich hier bleiben werden

GraphQL ist eine Alternative zu REST für APIs. Es gibt mehrere Kurse, die GraphQL sowohl auf Brads Kanal als auch auf freeCodeCamps Kanal behandeln. Aber er sagt: "GraphQL muss man heutzutage nicht mehr lernen, aber es ist groß genug, dass ich denke, es ist hier, um zu bleiben. Es ist mehr als ein Trend."

Brad spricht auch über Content Management Systeme (CMS) und wie sie sich zu neuen "kopflosen" Optionen entwickeln, bei denen Sie sie einfach als Backend verwenden und Ihr eigenes Frontend codieren.

"CMS sind sehr praktisch für Freiberufler, die Kunden haben, die sich anmelden und ihre Blog-Posts und ähnliches erstellen möchten. Viele Leute schlagen WordPress, aber es gibt einen großen Prozentsatz von Websites im Internet, die von WordPress betrieben werden und es ist immer noch sehr beliebt. "

Für Webserver bevorzugt er NGINX gegenüber Apache, weil "es weniger kompliziert zu sein scheint". Wir verwenden NGINX ausgiebig bei freeCodeCamp und ich bin geneigt zuzustimmen.

Brad erklärt auch, wie Virtualisierung funktioniert, und spricht darüber, wie komplexere Projekte vereinfacht werden können, indem die Umgebung auf mehreren Computern standardisiert wird. Er warnt jedoch davor, alles zu virtualisieren:

"Docker ist wirklich gut für Teams. Was ich nicht mag, ist, wenn Leute sagen, Sie sollten immer Docker verwenden. Es ist nur eine Präferenz. Wenn Sie nur einen lokalen LAMP-Server betreiben möchten, ist daran nichts auszusetzen. Fühlen Sie keinen Druck etwas wie Docker zu lernen. "

Und er fügt hinzu, um etwas zu betonen, das ich persönlich nicht genug betonen kann: "Ich weiß, dass viele nerdige Typen Dinge nur überkomplizieren wollen, und ich hasse das. Nur weil ich all dies aufliste, heißt das nicht, dass ich es vorantreibe Sie."

Er weist auch schnell darauf hin, dass die meisten großen Unternehmen engagierte DevOps-Teams (auch "Site Reliability Engineers" genannt) haben, die viel für Sie tun können.

Schön, Fähigkeiten zu haben, die man als Spezialität lernen kann

Wenn Sie Ihre Hände bei der Entwicklung mobiler Apps testen möchten, empfiehlt Brad dringend das Flutter-Framework. Es wird Dart verwendet, eine dunkelere Sprache. Er beschreibt Dart als irgendwo zwischen Java und JavaScript und sagt, wenn Sie eine dieser Sprachen kennen, sollten Sie in der Lage sein, sie zu lernen.

Seine zweite Wahl für die Entwicklung mobiler Apps ist React Native, das leicht zu finden ist, wenn Sie React bereits kennen.

Brad erklärt dann hervorragend, was Progressive Web Apps sind und welche Vorteile sie haben. Hier ist die Folie, aber ich empfehle Ihnen nachdrücklich, sein vollständiges Video anzusehen.

Anschließend geht er auf Electron ein, mit dem Sie Desktop-Anwendungen mit JavaScript erstellen können. Anfangs war er skeptisch, sagt aber, dass einige seiner bevorzugten Desktop-Apps - wie VS Code und Discord - jetzt mit Electron erstellt werden.

Er erwähnt den JAMstack (JavaScript, APIs und Markup) und die serverlose Architektur. Dies sind fortgeschrittenere Themen, zu denen sowohl sein Kanal als auch der YouTube-Kanal von freeCodeCamp Video-Tutorials bieten.

Und dann kommt er zu den großen Trends für 2020.

Maschinelles Lernen und Web Assembly

Nur weil alle anderen über maschinelles Lernen sprechen, heißt das nicht, dass Sie alles fallen lassen und es lernen müssen. So geht er dieser Phase seines Gesprächs voran.

Und ja, Sie können auch maschinelles Lernen in JavaScript durchführen.

"Python ist der König für maschinelles Lernen. Aber selbst mit JavaScript haben Sie TensorFlow.js, Sie haben Brain.js, um neuronale Netze zu erstellen und einige wirklich coole Sachen zu machen."

Aus der Art und Weise, wie er über Web Assembly spricht, geht hervor, dass er ziemlich aufgeregt darüber ist.

"Web Assembly befindet sich noch in einem frühen Stadium, aber ich denke, wir werden in diesem Jahr mehr davon sehen. Traditionell verwenden wir JavaScript auf der Webseite, um das DOM zu manipulieren und Berechnungen auszuführen. JavaScript hat Einschränkungen hinsichtlich der Geschwindigkeit. Eine Sprache wie C oder C ++ ist viel schneller als JavaScript. Web Assembly ist also ein effizienter Bytecode auf niedriger Ebene, der von einem Browser ausgeführt werden kann und extrem schnell ist. Er kann von Sprachen wie C, C ++ und Rust generiert werden. "

Rust ist eine der Sprachen, die Sie mit WebAssembly verwenden können (zusätzlich zu C und C ++). Es ist wesentlich einfacher zu erlernen und zu verwenden als C und C ++.

Es ist jedoch wichtig zu beachten, dass WebAssembly Sie nicht davon abhält, JavaScript zu lernen.

"Sie können sich JavaScript fast als den Chef vorstellen und Web Assembly mitteilen, was zu tun ist. So können wir in unseren Web-Apps wirklich schnelle Low-Level-Sprachen wie C ++ verwenden, und dies gibt uns viel mehr Funktionen - wie z Videospiele und Videobearbeitungswerkzeuge der nächsten Stufe direkt im Browser - Dinge, die nur mit JavaScript undenkbar sind. "

Abschließend sagt er: "Je mehr Sie lernen, desto einfacher ist es, mehr zu lernen und all diese Technologien zusammenzufügen. Versuchen Sie, nicht überfordert zu werden. Machen Sie Schritt für Schritt und recherchieren Sie und finden Sie heraus, was Sie sind will tun. "

Ich möchte mich noch einmal bei Brad Traversy für die Zusammenstellung dieses umfassenden Videos bedanken.

Die Leute fragen mich ständig: "Was soll ich lernen, wenn ich Webentwickler werden möchte?" Und meine Antwort lautet: "Verwenden Sie einfach freeCodeCamp als Ihren Kernlehrplan und verzweigen Sie sich unterwegs in andere Lernressourcen."

Und ich freue mich sagen zu können, dass Brads YouTube-Kanal Traversy Media eine der zusätzlichen Ressourcen ist, die ich am meisten empfehle.