Wie ein Programmierer denken: Programmierungskonzepte für Nicht-Entwickler | Brian Holt | Skillshare
Drawer
Suchen

Playback-Geschwindigkeit


  • 0.5x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 2x

Wie ein Programmierer denken: Programmierungskonzepte für Nicht-Entwickler

teacher avatar Brian Holt, Front-end Developer

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Einführung

      0:33

    • 2.

      Die Javascript-Konsole

      1:19

    • 3.

      Beginnen mit Daten

      7:55

    • 4.

      mit Variablen denken

      4:05

    • 5.

      Konditionen verstehen

      3:27

    • 6.

      Muster verwenden

      4:15

    • 7.

      Automatisierung anwenden

      3:00

    • 8.

      Schlussbemerkung

      0:08

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

745

Teilnehmer:innen

1

Projekt

Über diesen Kurs

Dieser Kurs erkunden hochwertige high-level Wir prüfen einige Möglichkeiten, Probleme anzugehen und sie mit der using zu zerbrechen. Kursteilnehmer:innen werden auch in die Arbeit mit Entwicklern erhalten.

Dieser Kurs richtet sich an alle, die sich auf Softwareentwicklung freuen

Vorkenntnisse sind nicht erforderlich, und der Kurs vorherige Programmieren

Es sind keine Software, da alle Übungen auf Papier abschließen können (oder in einem Google Doc oder ähnlichem).

Triff deine:n Kursleiter:in

Teacher Profile Image

Brian Holt

Front-end Developer

Kursleiter:in

Hi! I'm a front-end developer living in Vancouver, Canada, who's focused on scalable design systems. I generally work on large Ruby on Rails applications and have worked on a variety of front-end single-page-applications with React + Redux and Elm. Currently, I'm at Retail Zipline.

I come from the design world, where I worked as a graphic designer and creative director at some smaller agencies and through freelance work. When clients began expressing interest in moving their brands online, I jumped at the opportunity and moved in User Experience Design and Web Development. Since then, I've learned full-stack development, though my focus is on the front-end.

I really enjoy teaching and mentoring. From teaching User Experience courses to instructional articles... Vollständiges Profil ansehen

Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Einführung: Willkommen bei Think Like a Programmer, wo Designer, Vermarkter, Produktmanager oder wirklich jeder, der neugierige Live-Entwicklungsprozesse ist, sehen, was hinter dem Vorhang ist. In diesem Kurs werden wir einige hochrangige Problemlösungskonzepte durchlaufen und erfahren, wie Sie diese auf Ihre eigene tägliche Arbeit anwenden können. Darüber hinaus erhalten Sie einige Einblicke in die effektivere Zusammenarbeit mit Programmierern. Meine Karriere begann im Grafikdesign, aber als ich das Programmieren im Tandem lernte, fand ich heraus, dass ich Konzepte wie Automatisierung auf meinen eigenen Alltag anwenden und meine Arbeit erleichtern konnte Automatisierung auf meinen eigenen Alltag anwenden und meine Arbeit und ich hoffe, diese Dinge mit Ihnen zeigen zu können. Lasst uns loslegen. 2. Die Javascript-Konsole: Die Codebeispiele in diesem Kurs haben in Javascript getan. Sie können mitverfolgen, wenn Sie ein Gefühl für das Lesen von Code bekommen möchten. Alle Webbrowser haben Javascript in sie integriert und ein Tool namens Konsole für die Interaktion mit diesem. Javascript unterstützt viele der reichen Interaktionen, die Sie heute im Web sehen. Dies sind Dinge wie das Durchblättern von Produktbildern bei Amazon, Anpassen von Beiträgen auf Facebook, Videos werden automatisch auf YouTube abgespielt und vieles mehr. Wir werden nicht tief in JavaScript eintauchen, aber es ist die perfekte Sprache, mit der wir folgen können. Öffnen Sie die Konsole, indem Sie mit der rechten Maustaste auf eine beliebige Seite klicken, „Prüfen“ auswählen und dann auf die Registerkarte „Konsole“ klicken. Hier können Sie alles in Javascript tun, einfache Mathematik. Sie können Nachrichten schreiben. Sie können auf alles in der JavaScript-API zugreifen, um etwas wie eine Beschleunigung von Video zu tun. meiste Javascript, das in der Konsole zu tun ist, ist nicht dauerhaft. Wenn Sie das Gefühl haben, dass Sie mit etwas geworfen haben, können Sie die Seite aktualisieren und sie wird zurückgesetzt. 3. Beginnen mit Daten: Bei der Bewältigung eines Problems beginnen Programmierer mit Daten. Es ist eine Möglichkeit, einige der beweglichen Teile innerhalb der Arbeit schnell zu identifizieren. Wenn wir über Daten sprechen, sprechen wir eigentlich über den bekannten Wert. In der Software ist die Datenmenge der gespeicherte Wert. Es ist, was das Programm zu Protokoll hat, was es zur Quelle der Wahrheit macht. Verwendung von Daten, bei denen bekannte Werte immer einfacher zu verstehen sind, als mit unbekannten Werten zu arbeiten. Deshalb fangen wir damit an. Programmierer sind immer auf der Suche, Probleme so greifbar wie möglich zu machen , um die Komplexität zu reduzieren. beispielsweise einfache Mathematik betrachtet, ist es leicht zu verstehen, dass eins plus eins gleich zwei ist, weil wir mit tatsächlichen Werten arbeiten. Wenn einer dieser Werte verschwindet, eins plus etwas gleich zwei ist, wird das Problem etwas schwieriger. Oder in Fristen ist es so viel einfacher zu planen, wenn man die tatsächlichen Fristen kennt. Deshalb beginnen wir so weit wie möglich mit Daten. In Programmiersprachen werden Daten nach ihrem Typ klassifiziert, und ein Typ ist nur eine Möglichkeit zu definieren, mit welcher Art von Daten wir arbeiten. Programmiersprachen unterscheiden sich darin, wie sie Typen kategorisieren, aber die meisten von ihnen sind sich auf eine Form der folgenden vier einig: Zahlen, Zeichenfolgen, Boolesche Werte und Nullwerte. Zahlen sind für jede Art von Nummer. Dazu gehören positive, negative und dezimale Zahlen. Zeichenfolgen sind für Wörter, unabhängig davon, ob ein oder mehrere und werden immer in Anführungszeichen umbrochen. Boolesche Werte sind für eine oder Szenarien, insbesondere, ob etwas wahr oder falsch ist. Zum Beispiel ein Kontrollkästchen, unabhängig davon, ob es vollständig oder unvollständig ist. Sie können sich das wie ein Schalter vorstellen. Ist es ein- oder ausgeschaltet. Nullwerte sind Daten, die explizit angeben, dass keine Daten vorhanden sind. Ein Nullwert wird verwendet, wenn keine Daten vorhanden sind, wie bevor etwas gespeichert wurde. Es stellt einen bekannten leeren Wert dar. Einige Programmiersprachen verwenden etwas andere Namen oder enthalten zusätzliche Typen, aber diese vier können als High-Level-Typen betrachtet werden, sie werden primitive Typen genannt. Es ist nützlich, Daten in einem Format anzuordnen, um die Arbeit zu erleichtern. Diese Anordnungen werden als Datenstrukturen bezeichnet. Die Datenstrukturen akzeptieren einfach beliebige Daten und setzen sie in ein bestimmtes Format. Die Art der Strukturentwickler wählt, hängt davon ab, was sie damit zu tun beabsichtigen und die Muster der Programmiersprache. Dies sind die beiden gebräuchlichsten Datenstrukturen: Listen und Objekte. Lassen Sie uns in die JavaScript-Konsole springen, um zu sehen, wie diese aussehen. Eine Liste ist eine einfache Möglichkeit, eine Sammlung von Daten zu umschließen. Sie haben beispielsweise eine Liste von Monaten. Wenn sie sich in einer Liste befinden, können Sie einen Effekt auf alle anwenden, z. B. Jeder Eintrag Analyst hat einen Index gegeben, der eine Möglichkeit bietet, auf einen bestimmten Wert zuzugreifen, wenn Sie den Index kennen. Intuitiv beginnen Indizes bei Null anstelle von Eins. Was bedeutet, wenn wir auf Marsch in unserer Liste zugreifen wollen, müssen wir zwei verwenden, obwohl es der dritte Wert ist. Ebenso, wenn wir auf Januar zugreifen wollen, müssen wir Null verwenden. Beginnen wir mit der Einschränkung auf einzelne Ebenen, die verschachtelt werden können, um viel mehr Daten zu speichern, wie z. B. die Anzahl der Tage innerhalb des Monats. Jetzt, da wir verschachtelte Listen haben, wird es ein wenig schwieriger, auf die Daten zuzugreifen, die wir wollen. Ein Objekt ist eine Struktur, die den Schlüsseln Daten zuweist, wodurch es leicht ist, den richtigen Wert aufzurufen. Wenn wir eine Liste von Monaten in ein Objekt verwandeln, ist es viel einfacher, auf den Wert zuzugreifen, den wir wollen. Wenn wir March wollen, können wir es nach seinem Schlüssel nennen, March. Jetzt haben wir seinen Namen Wert, und es Tage Wert. In einem Objekt ist es ein wenig schwieriger, einen Effekt anzuwenden , wie wenn wir alles Großbuchstaben gemacht haben, aber es ist immer noch möglich. Eine Datenbank ist, wo tatsächliche Daten gespeichert werden. Es ist die Quelle der Wahrheit. Alles in der Datenbank ist die wirkliche Darstellung dessen, was das System hält. Eine Datenbank mag wie ein herausforderndes Konzept klingen, aber es ist einfach eine Sammlung von Tabellen, wie eine Excel -Tabelle. Jeder Eintrag in einer Datenbank wird in einer Zeile und jede Eigenschaft als Spalte dargestellt . Abrufen von Daten aus einer Datenbank erfolgt am häufigsten mit SQL, das für Structured Query Language steht, und S-Q-L geschrieben. Es ermöglicht Programmierern, Anweisungen zu schreiben, die Daten in einer angeforderten Datenstruktur sammeln , um sie anzuzeigen , zu aktualisieren, zu entfernen und hinzuzufügen. SQL ist extrem schnell, aber das Anordnen von Daten kann kompliziert sein. Nun, eine einzelne Tabelle könnte vielleicht alle Daten in einer Anwendung enthalten. Wenn die Anwendung klein ist, desto langsamer wird die SQL ausgeführt, je mehr Daten zur Tabelle hinzugefügt werden. Alle Daten auf eine einzelne Tabelle zu setzen, wird aus diesem Grund als eine wirklich schlechte Praxis angesehen. Programmierer brechen Konzepte in ihre eigene Tabelle ein. Dies kann Komplexität erhöhen, da Programme eine Abfrage schreiben müssen , die über mehrere Tabellen ausgeführt wird, um die angeforderten Daten abzurufen. Dies ist teilweise, was eine teure Anforderung erstellen kann, aber es ist sehr abhängig von der spezifischen Systemeinrichtung und es gibt Techniken, um die Leistung zu optimieren. Bei der Arbeit mit Webanwendungen spielt die Internetverbindung auch eine Rolle bei der Datenbereitstellung. Wenn mehr Daten angefordert werden, müssen mehr Daten über das Internet gesendet werden. Wenn die Verbindung langsam ist und es viele Daten zu senden gibt, kann die Webseite Timeout oder abstürzen. Es ist am besten, nur die notwendigen Daten zu senden. Schauen wir uns ein Beispiel an. Diese Tabelle stellt Kommentare dar und ist von Instagram modelliert. Es gibt vier Spalten mit Eigenschaften, ID, Benutzer-ID, Foto-ID und Kommentar. Die letzte Spalte sind die Kommentare, die auf dem Beitrag erscheinen. Die erste Spalte, die ID-Spalte, ermöglicht es uns, auf den richtigen Kommentar zuzugreifen. Es funktioniert genauso wie auf einen Eintrag in einer Liste zuzugreifen. Spalten zwei und drei enthalten die Benutzer-ID und die Foto-ID. Wie ich bereits erwähnt habe, könnten wir alle Benutzerinformationen und Fotoinformationen direkt auf diesem Tisch enthalten , aber es ist eine schlechte Übung. Stattdessen enthalten wir nur den Mitgliedsnamen und den Lichtbildausweis. Wenn wir auf Informationen über den Benutzer zugreifen möchten, wie ihren Namen in Avatar, haben wir die richtige ID abzufragen, und dann machen wir eine Abfrage auf der Benutzertabelle. Wenn wir einen Kommentar aktualisieren oder löschen, wir keinen Einfluss auf den Benutzer oder die Fototabelle, was bedeutet, dass die Abfrage schneller ausgeführt werden kann. Nachdenken über Daten auf diese Weise kann eine Geschichte erzählen. Schauen wir uns den Inhalt ein wenig näher an, um zu sehen, was hier passiert. Schauen Sie in den Benutzer-ID-Kommentar, hebt sich etwas von Ihnen ab? Die ersten beiden Zeilen haben die gleiche ID, was bedeutet, dass diese Kommentare vom selben Benutzer stammen. Wenn wir uns den Foto ID-Kommentar ansehen, sehen wir auch, dass die ersten beiden Zeilen die gleiche ID haben. Das bedeutet, dass dieser Benutzer das gleiche Foto zweimal kommentiert hat. Wenn wir weiterhin die Fotoausweisspalte überprüfen, sehen wir, dass zwei weitere Benutzer das gleiche Foto kommentiert haben. Ein wenig über Typen, Datenstrukturen und Datenbanken zu wissen , wird ihnen helfen, mit Entwicklern zu arbeiten. Aber über Daten als den tatsächlichen Wert nachzudenken, sollte Klarheit bringen , um auch außerhalb der Programmierung zu funktionieren. Hier sind ein paar Tipps. Denken Sie zuerst darüber nach, was Sie tun möchten und wohin es in Zukunft gehen könnte. Denken Sie daran, was Sie erwarten zu arbeiten und wie Sie es erwarten. Denken Sie schließlich darüber nach, was Sie sicher sind und worüber Sie sich nicht sicher sind. Für Übungen möchte ich, dass Sie über die Daten nachdenken , die zum Erstellen dieses Instagram-Bildschirms erforderlich sind, und auch die unabhängigen Konzepte identifizieren, die eine eigene Datenbanktabelle haben. Wir haben bereits einen Kommentar von einem Teil der anderen identifiziert. Fügen Sie Ihre Antworten zu Ihrem Projekt hinzu, und ich sehe Sie im nächsten Video. 4. mit Variablen denken: Der Umgang mit konkreten Daten ist der einfachste Weg, um ein Problem zu lösen. Aber manchmal haben Sie keine echten Daten, mit denen Sie arbeiten können, oder es gibt viele mögliche Optionen für diese Daten. Wenn dies der Fall ist, verwenden Programmierer Variablen, um vorwärts zu gehen. Variablen in der Programmierung können sich etwas von der Art unterscheiden, wie Sie über sie im Alltag denken. In der Programmierung ist eine Variable eine Abstraktion. Es ist wie ein Container, der Informationen enthält. Es ist eine Möglichkeit, über etwas zu sprechen, ohne konkret darüber zu sein, oder wenn der tatsächliche Wert unbekannt ist. Es kann auch eine bequeme Möglichkeit sein, etwas zu referenzieren , ohne es jedes Mal explizit zu sagen. Darüber hinaus können sich Variablen ändern oder einen anderen Wert als erwartet enthalten. Aber wir müssen uns in diesem Moment nicht darum kümmern. Variablen werden überall um uns herum verwendet, auch außerhalb der Programmierung. Es gibt viele verschiedene Teile, aus denen ein Lied, ein Vers, Pre-Chor, Chor, Interlude, usw. Jede dieser Teile sind Variablen, halten einen Wert, aber wir können sie anhand ihres abstrahierten Namens referenzieren. Wenn wir den Inhalt davon wissen wollen, greifen wir auf die Informationen mit Namen zu. Darüber hinaus werden einige Teile, wie der Chor, wiederverwendet, aber sie haben den gleichen Inhalt. Anstatt es Chor eins und Chor zwei zu nennen, nennen wir es einfach Chor. Deadlines innerhalb eines Projekts können mit Variablen anstelle von oder zusätzlich mit ihren tatsächlichen Daten, Beta-Release,Alpha-Release, Go-Live-Datum usw. benannt werden oder zusätzlich mit ihren tatsächlichen Daten, Beta-Release, Alpha-Release, . Dies ermöglicht es uns, über die Arbeit nachzudenken, die enthalten ist innerhalb des Meilensteins. Designer verwenden Variablen die ganze Zeit, benennen Farben. Anstatt einen Farbbytes RGB- oder Hexadezimalwert aufzurufen, nennen wir ihn vielleicht hellblau, blau oder dunkelblau. Bei der Programmierung ist Variablen eines der ersten Werkzeuge, die wir verwenden. In unserem Listenbeispiel habe ich die Liste der Monate einer Variablen namens Months zugewiesen, so dass ich sie immer wieder verwenden kann, ohne den Inhalt immer wieder neu schreiben zu müssen. Als wir die Monatsnamen Großbuchstaben machten, wurde eine sich ändernde Variable erstellt. Ich kann jeden Monat Großbuchstaben machen, ohne mich darum zu kümmern, welche es tatsächlich war. Viele Anwendungen haben eine Variable namens „aktueller Benutzer“. Es ermöglicht Programmierern, eine Anwendung zu schreiben, aber einzigartige Erfahrungen für verschiedene Menschen zu bieten. Aktuelle Benutzer, die Ihrem Profil zugewiesen sind, sobald Sie sich angemeldet haben, damit Sie Ihre eigenen Inhalte erhalten. Wenn wir keine Variablen hätten, wäre eine Programmierung wahrscheinlich unmöglich. Außerhalb der Programmierung kann das Denken mit Variablen Ihnen helfen, Ihre Arbeit voranzubringen. Verwenden Sie Variablen, um Arbeit in kleinere Stücke zu zerlegen, selbst wenn etwas unbekannt ist, abstrahieren Sie ein Konzept oder einen Teil der Diskussion weg. Du musst jetzt nicht darüber nachdenken. Markieren Sie, welche Daten unbekannt sind. Welche Fragen müssen gestellt werden? Nennen Sie ein Konzept zu etwas, das sich ein wenig greifbarer anfühlt. Konzentrieren Sie sich auf einen bestimmten Teil des Problems isoliert und machen Sie Fortschritte in einem Projekt, ohne alle Antworten zu haben. Es gibt zwei große Herausforderungen bei der Arbeit mit Variablen. Bestimmen, ob eine Variable flexibel oder fest ist, und geben Sie ihr den richtigen Namen. Um einen Zustand zu bestimmen, fragen Sie, wird er sich ändern? Soll es sich ändern? Kann ich diese Entscheidung später treffen? den Unterschied kennen, können Sie Probleme vereinfachen, mit denen Sie arbeiten und Grenzen identifizieren. Wo Sie Fragen stellen und womit Sie arbeiten müssen. Benennen von Variablen wird oft als eine der schwierigsten Aufgaben in der Programmierung betrachtet. Wenn eine Variable falsch benannt wird, kann dies zu sehr verwirrendem Code für jemand anderen oder sogar sich selbst später führen. Manchmal ermutigten falsch benannte Variablen, über ein Konzept in der falschen Weise nachzudenken, was bedeuten kann, dass das Produkt oder die Funktion sich als falsch oder weniger als ideal herausstellt. Da Variablen eine Form der Kommunikation sind, kann Fehlkommunikation durch falsch benannte Variablen einschleichen , aber Sie können Ihre Variablen jederzeit umbenennen. Um zu überlegen, ob Sie den richtigen Namen haben, fragen Sie sich, gibt es einen einfacheren Weg, ihn zu beschreiben? Wenn Menschen ständig Klärung für die Variable benötigen , denken Sie daran, dass sie falsch benannt werden könnte. Überlegen Sie auch, wie Sie es beschreiben? Gibt es einen einfachen oder kürzeren Weg, dies zu tun? Ist der Name zu vage? Verstehen andere, was sie repräsentiert? Hyper Spezifität kann gut sein und ist in einigen Programmiersprachen üblich. Scheuen Sie sich nicht unbedingt davor. Du willst sicherstellen, dass es sich anfühlt, als würdest du eigentlich über das Richtige sprechen. Denken Sie über die abstrahierten Daten in dieser Instagram-Funktion nach und fügen Sie Ihre Ideen zu Ihrem Projekt hinzu. Wir sehen uns in der nächsten Lektion. 5. Konditionen verstehen: Die Daten können sich je nach Umstand ändern. Möglicherweise möchten Sie ein Produkt zu einem reduzierten Preis zwischen zwei Datumsangaben verkaufen oder nur bestimmte Personen erlauben, Inhalte zu sehen. Bedingte Anweisungen ermöglichen es Entwicklern, diese Fälle zu codieren, denken Sie an eine bedingte Anweisung als eine Gabelung in der Straße. Es gibt zwei Wege, die jemand einschlagen könnte. Diese Pfade können sich wieder verbinden, oder sie könnten divergent bleiben, sie könnten in kleinere Pfade einbrechen. Eine bedingte Anweisung erstellt abweichende Pfade durch das Verschieben durch ein System oder ein Programm. Es ist eine if else Anweisung in ihrer einfachsten Form, die zwei Pfade erzeugt und in einer komplexeren Form Stadien oder Zustände haben könnte. Die Bedingungen sind überall in der realen Welt. Eine einfache Form ist Unsicherheit. Entweder haben Sie den Schlüssel, um das Auto zu öffnen, oder Sie nicht. Wenn Sie den Schlüssel haben, können Sie ihn fahren. Sonst kannst du das Auto nicht benutzen. Eine gemeinsame Zugstrecke, auf der mehrere Züge auf demselben Bahnsteig ankommen , hat viele unterschiedliche Wege. Es kann einen lokalen Zug geben, der jede Haltestelle besucht, ein Expresszug, der hält, ein anderer könnte an einem anderen Ziel enden. Dies ist eine kompliziertere Reihe von Bedingungen und Sie können staatliche Bedingungen und Wahl finden, wie die Wahl der Pizza-Beläge. Sie erhalten zu wählen, was auf sie mit einer Reihe von Ja oder Nein Optionen geht. Am Ende haben Sie noch eine Pizza, aber es gibt eine Reihe von geringfügigen Bedingungen, die zu unterschiedlichen Ergebnissen führen. In Programmierbedingungen erstellen divergente Pfade für verschiedene Benutzer. Wir verwenden Bedingungen für Einschränkungen, wenn der Benutzer eingeloggt ist, so dass die Seite sie anderweitig an den Anmeldebildschirm sendet. Wir verwenden Bedingungen für Einstellungen oder Benutzereinstellungen, genau wie die Toppings auf einer Pizza, die eine Reihe von unabhängigen Schaltern sein kann , die ein einzigartiges Erlebnis bieten. Wir verwenden Bedingungen auch für einfache Dinge, wie, wenn sonst Aussagen, wenn es eine Benachrichtigung gibt, zeigen Sie die Glocke, sonst nicht. Im User Experience Design denken wir viel über Zustände nach. Der Spielzustand, Teilzustand, Fehlerzustand und Idealzustand. Alle diese Zustände müssen berücksichtigt werden, um ein Design zu vervollständigen und sie bestehen aus mehreren Bedingungen basierend auf dem Benutzer des Systems. Was macht das Verständnis von Bedingungen bei der Arbeit nützlich? Du bist in der Lage, Dinge zu identifizieren, die koabhängig sind. Sie können einen Arbeitsablauf in den Griff bekommen und dann divergierende Möglichkeiten darin und erkennen, was schief gehen könnte und welche Risiken plausibel sind. Ein Kontrollflussdiagramm ist ein großartiges Werkzeug, um Bedingungen zu visualisieren. Wie für Grundformen, ein Oval, das den Anfang oder das Ende anzeigt. Pfeile, die die Richtung angeben, die bewegt werden soll. Ein Diamant, der einen Entscheidungspunkt oder bedingte und Rechtecke angibt, die einen Schritt im Prozess angeben. Sie können andere Formen und Farben zusammen mit der Legende verwenden , um verwandte Aktivitätstypen zu gruppieren. Hier sind einige Tipps für die Arbeit mit Bedingungen, da sie immer die Komplexität erhöhen. Überlegen Sie, ob die Bedingung überhaupt notwendig ist und wenn Sie anfangen, verschachtelte Bedingungen zu schreiben, denen es sich um einen Pfad handelt, der sich in einem anderen Pfad befindet, versuchen Sie, die Bedingung auf eine höhere Ebene zu verschieben. Wenn es notwendig ist, erkunden Sie den besten Weg, um es auszudrücken. Sollte es ein wahrer oder falscher Wert sein, oder kann es Präferenzen sein? Schließlich, um das richtige Gleichgewicht zwischen angemessener Erschöpfung des Weges bis zu seinem Ende und Verirren im Unkraut zu finden. Überlegen Sie, wie eng der bedingte Pfad mit Ihrem ursprünglichen Problem verbunden ist. Ich möchte, dass Sie ein Flussdiagramm von Instagram wie eine Foto-Funktion erstellen. Versuchen Sie, so früh wie möglich zu beginnen und so viele unterschiedliche Pfade zuzuordnen, wie Sie sich vorstellen können, dann schließen Sie in Ihrem Projekt Wenn Sie in verschachtelten Bedingungen stecken bleiben, überlegen Sie, ob der Pfad in ein eigenes Flussdiagramm unterteilt werden kann. Wenn das der Fall ist, geben Sie dem Schritt einfach einen Titel und konzentrieren Sie sich auf den Geschmack der Foto-Funktion. Wir sehen uns nächstes Mal. 6. Muster verwenden: Identifizieren von Mustern ist wichtig bei der Programmierung. Entwickler brechen Probleme in kleine Stücke, lösen dieses Problem und erhöhen das Muster, um größere Systeme zu erstellen , die zusammen eine ganze Anwendung bilden. Kurz gesagt, Muster erstellen Systeme. Verwendung eines Musters bietet eine konsistente Möglichkeit, etwas mehrmals und immer wieder zu tun , und es ist vorhersehbar und wiederholbar mit einem Muster, können Sie ein System erstellen, mit dem Sie Arbeit nutzen und wiederverwenden und Sie können dieses Muster verwenden und es zu vielen verschiedenen Situationen. Muster sind überall um uns herum. An Türen wissen wir instinktiv, dass man einen Griff zieht oder einen Flachbildschirm drückt, um ihn zu öffnen oder zu schließen. Es ist irritierend, wenn wir einen Türgriff drücken müssen weil die Vorhersagbarkeit des Musters gebrochen ist. Wir wissen, dass das Drehen der Schraube nach links sie lockert und nach rechts gedreht wird , wir ziehen sie fest, und Designer verwenden Muster in ihren Designsystemen und Styleguides mit Komponenten, Farbauswahl und Verhaltensweisen. Erstellen von Markenschnittstellen. Muster sind extrem wichtig bei der Programmierung. Arbeit mit einem Muster ermöglicht es einem Team von Entwicklern, gemeinsam auf die gleichen Ziele zu arbeiten. Eine Funktion ist ein kleines Stück Code, der eine Aufgabe abgeschlossen und wiederverwendbare Funktionen sind einfache Muster. Beispielsweise ist eine Funktion, die ein Wort Großbuchstaben machen kann, wiederverwendbar. Es spielt keine Rolle, welches Wort es erhält, aber es wird es Großbuchstaben machen. Programmierer verwenden auch verschiedene Paradigmen, um Probleme zu lösen. Zum Beispiel ist ein funktionelles Paradigma eine Möglichkeit Code mit kleinen, vernünftigen Funktionen zu organisieren. Während ein objektorientiertes Paradigma die Stücke zum Programm als Objekte behandelt und ihre eigenen internen Daten enthalten. Jeder hat Vor- und Nachteile, aber zu wissen, wann man benutzt, kann die Lösung eines Problems einfacher machen. Best Practices und Standards sind ebenfalls Muster. Wir lernen von anderen Erfahrungen und wenden ihr Wissen auf unsere Anwendung an, einige Beispiele für Best Practices sind; das Prinzip der einheitlichen Verantwortung. Es bedeutet, dass jeder Code nur für eine Sache verantwortlich sein sollte, und es hält Code isoliert und behält seinen Fokus. Das Dry-Prinzip, für das steht, wiederhole dich nicht. Es bedeutet im Wesentlichen vermeiden, dasselbe immer und immer wieder zu tun , und es ermutigt, über Probleme in der Zusammenfassung nachzudenken , Stücke zu identifizieren, die üblich sind, um es in ein Muster zu verwandeln. Es stellt auch eine Quelle der Wahrheit für die Bewältigung des Problems dar. Denn wenn du dich nicht wiederholst, gibt es nur einen Weg, dies zu tun, und das reduziert Verwirrung. Eine andere ist, du wirst es nicht brauchen. Es bedeutet, dass du das Ding erst baust, wenn du weißt, dass du es brauchst. Es reduziert die Arbeit auf das Wesentliche, um voranzukommen, und es schränkt den Überbau ein. In der Praxis kann es auch Probleme konkreter anfühlen, weil wir oft einige der Unbekannten wegstreifen, um die einfachste Sache zu bauen, die funktioniert, gibt es viele andere Muster, die Programmierer verwenden. Muster helfen uns, Probleme auf unterschiedliche Weise nachzudenken und bessere Workflows zu schaffen. Verwendung von Mustern in Ihrer eigenen Arbeit kann enorm nützlich sein. Wenn Probleme sich zu groß anfühlen, ist die Suche nach Ähnlichkeiten eine gute Möglichkeit, sie in überschaubare Teile zu zerlegen. Identifizieren von wiederkehrenden Problemen kann die Möglichkeit bieten, über Dinge auf einer höheren Ebene nachzudenken , um den richtigen Weg zu schaffen, dies zu tun. Schließlich tragen Muster dazu bei, Konsistenz oder feste Inkonsistenz zu erzwingen, was zu Verwirrung oder Schlampigkeit führt. Der einfachste Weg, Muster zu verwenden, ist, sich zu fragen, ob Sie zuvor etwas Ähnliches getan haben oder ob Sie erwarten, diese Arbeit erneut zu tun. Wenn Sie zwei Probleme vergleichen, fragen Sie sich, was sind die Unterschiede? Versuchen Sie, über die Teile als Variablen nachzudenken. Wenn Sie viele Ähnlichkeiten finden, haben Sie wahrscheinlich die Möglichkeit, ein Muster zu erstellen. Manchmal können zwei Muster aussehen, als wären sie eins und das ist ein bisschen eine knifflige Situation. Verwendung unserer Daten und variablen Ansätze kann dabei helfen. welchen Daten arbeiten Sie zusammen? Was erwartest du damit zu tun? Wenn die Unterschiede groß genug sind, dann müssen Sie wahrscheinlich Muster. Eine Faustregel ist, dass Sie nicht versuchen, etwas in ein Muster zu zwingen. Das richtige Muster zu finden, sollte sich wie eine Erschließung der Leistung anfühlen, obwohl es ein wenig schwierig sein kann, dorthin zu gelangen. Schließlich, wenn Sie die einzige Person sind, die weiß, wie man etwas macht, ist das Aufschreiben von Anweisungen eine gute Möglichkeit, sich in ein Muster zu verwandeln. Mit guten Anweisungen können viele Aufgaben von jedermann erledigt werden. Diese können sogar als Erinnerung für sich selbst in der Zukunft dienen. In dieser Lektion möchte ich, dass Sie die Muster identifizieren, die Instagram verwendet, die auch in anderen Anwendungen verwendet werden. Zum Beispiel, ein Foto zu mögen ist ein Instagram, aber ein Kommentar zu mögen ist auf Facebook und die Liebe in einem Video ist auf YouTube. Das Muster der Vorlieben ist in den meisten Social-Media-Apps üblich. Teilen Sie Ihre Arbeit und Ihr Projekt. Dann springen wir in unsere letzte Lektion, Automatisierung. 7. Automatisierung anwenden: Automatisierung ist ein leistungsfähiges Werkzeug im Riemen eines Programmierers. Es ermöglicht Programmierern, die Arbeit in Chargen deutlich schneller zu erledigen, mit viel weniger Aufwand. Im Kern vereinfacht die Automatisierung die Arbeit, reduziert sich wiederholende Aufgaben und führt Sequenzen von Ereignissen durch. Was bedeutet das praktisch? Weniger Arbeit mit den gleichen Ergebnissen, schneller zu machen und effizienter zu sein. Wir denken oft an Roboter, wenn wir das Wort Automatisierung hören, aber es gibt viele Beispiele für weniger Arbeit mit den gleichen Ergebnissen. Ampeln beschleunigen im Gegensatz zu Vier-Wege-Stoppschildern die sich wiederholende Aufgabe, die Kreuzung zu inspizieren. diese Automatisierung können viele Fahrzeuge gleichzeitig passieren , ohne dass sie einzeln angehalten werden müssen. Eine andere Form ist ein Wecker. Sobald es festgelegt ist, werden Sie automatisch zum entsprechenden Zeitpunkt benachrichtigt, sodass Sie es nicht manuell überprüfen müssen. Können Sie sich vorstellen, die Uhr jede Stunde in der Nacht zu überprüfen , um pünktlich zur Arbeit zu sein? Automatisierung ermöglicht es Ihnen, zu schlafen. Darüber hinaus können Sie eine Sequenz so programmieren, dass Sie nur von Montag bis Freitag benachrichtigt werden. Marketing-Tropfkampagnen sind weniger physische Form der Automatisierung. Es wird einmal erstellt und in der Folge auf viele Menschen angewendet. Sie erhalten eine Willkommens-E-Mail, wenn sie sich anmelden und nach einiger Zeit eine weitere E-Mail erhalten, die automatisch die gesamte Kampagne durchläuft. In der Programmierung haben wir viele Arten von Automatisierung und Sequenzierung; von Schleifen, wie wenn wir eine Liste von Monaten durchlaufen, um sie in Großbuchstaben zu machen, bis hin zu Hintergrundjobs, die den Benutzer benachrichtigen, wenn sie erwähnt wurden. Alle Anwendungen beinhalten ein gewisses Maß an Automatisierung, sonst müsste alles manuell abgeschlossen werden, was ein enormes Team erfordern würde. Wie können Sie die Automatisierung bei der Arbeit anwenden? Suchen Sie zunächst nach Straßensperren und Ineffizienzen in Prozessen, damit Sie sie entfernen können. Wann immer die Arbeit aufhören muss, überlegen Sie, ob der Grund erforderlich ist. Kann sich der Prozess verbessern, damit er nicht aufhören muss? Zum Beispiel, wenn ein Designer einen Beweis an Sie sendet, damit Sie ihn an den Kunden posten können, kann der Designer ihn stattdessen direkt an den Kunden senden? Als nächstes wird das Lernen von Tastenkombinationen Ihnen helfen, schneller zu arbeiten. Wenn ich sie lerne, neige ich dazu, mich auf eine pro Woche zu konzentrieren, und ich schreibe es auf, damit ich schnell darauf verweisen kann. Jedes Mal, wenn ich den Befehl verwende, stoppe ich und benutze stattdessen die Verknüpfung. Bald kenne ich die Abkürzung gut genug, dass ich nicht mehr darauf verweisen muss. Versuchen Sie schließlich, Batch-Arbeit zusammen zu arbeiten, damit Sie sich auf die Gruppe als eine Sache konzentrieren können. Stapelverarbeitung hilft wahrscheinlich, die Teile zu identifizieren, die automatisiert werden können. Automatisierung geht es wirklich darum, die Anzahl der Dinge zu reduzieren, die Sie tun müssen, damit Sie sich auf aussagekräftigere Aufgaben konzentrieren können. Um die Automatisierung anwenden zu können, müssen wir zunächst Kandidaten identifizieren. Das sind, woran ich denke. Was mache ich, das mühsam ist? Kann ich die Anzahl der Schritte reduzieren? Ist etwas fehleranfällig? Was braucht viel Zeit? In der letzten Übung möchte ich, dass Sie die Reihenfolge der Ereignisse identifizieren, wenn jemand einen Kommentar auf einem Instagram-Foto postet. Was passiert mit dem Kommentar? Wer weiß von dem Kommentar? Sie können dies auf einem Kontrollflussdiagramm mit nur Rechtecken tun, aber wenn Sie sich ehrgeizig fühlen, denken Sie darüber nach, was in der Sequenz auch schief gehen kann. 8. Schlussbemerkung: Danke, dass du meinen Kurs genommen hast. Wenn Sie Fragen oder Klärungen zu irgendwas haben, wenden Sie sich bitte an mich in der Community. Bis zum nächsten Mal, wir sehen uns.