Zurück zur Community

Programmieren lernen, indem du die Geschichte eines Programms erzählst

Rebecca Mark arbeitet bei Unison Computing, wo es ihre Mission ist, das Lernen der Programmiersprache Unison so unterhaltsam und zugänglich wie möglich zu machen.

Auf Youtube ansehen
LÄNGE 39MIN

Jonathan: Rebecca, willkommen beim Exercism-Podcast. Es ist fantastisch, dich hier zu haben. Ich fühle mich sehr geehrt, mich mit dir unterhalten zu dürfen. Bei dir ist es 7:30 Uhr morgens, und bei mir ist es jetzt 16:30 Uhr. Willkommen. Wo genau auf der Welt bist du gerade?

Rebecca: Ich bin in Seattle, Washington, ich rufe dich also früh am Morgen an.

Jonathan: Sehr gut, und wie ich höre, ist der Kaffee schon aufgegossen, du hast den Nachschub in Bereitschaft und er ist warm und bereit für den Tag.

Rebecca: Oh ja, direkt neben mir. Ich habe noch eine extra Chemex, und mein Tag wird bestens versorgt sein.

Jonathan: Okay. Großartig. Also Rebecca, willkommen. Ich weiß ein bisschen über dich durch dein Engagement bei Exercism, insbesondere beim Unison-Track selbst, aber bevor wir darauf ein bisschen näher eingehen, würde ich gern ein wenig über dich erfahren und wie du nach Seattle gekommen bist. Ein wenig davon ist Seattle. Ich habe Seattle gesagt. Habe ich recht mit ...? Ja, habe ich. Ja. Ich dachte für einen Moment, ich hätte ein Gedächtnis wie ein Fisch und hätte vergessen, wo du wohnst, aber es ist Seattle. Ich würde gern ein wenig darüber erfahren, wie du dorthin gekommen bist. Ein bisschen über dich, ein bisschen deine Geschichte und dann, wie du in die Tech-Branche gekommen bist und was dich auf diesen Weg gebracht hat.

Rebecca: Ja, meine Familie ist tatsächlich vor sechs Generationen direkt nach Seattle eingewandert. Es ist also wirklich lange her. Eine Einwandererfamilie hier in Seattle. Und ich liebe es hier. Ich bin hier in der Gegend zur Schule gegangen, und das ist tatsächlich ein ziemlich wichtiger Teil davon, wie ich in die Tech-Branche gekommen bin, denn Seattle ist eine wirklich große Tech-Stadt. Aber ich habe an der Uni eigentlich nicht Programmieren studiert. Ich habe Englisch studiert, mit Schwerpunkt Lyrik, und das mag ... ja, es mag wie eine seltsame Kombination wirken, aber ich denke, in mancher Hinsicht passt es zusammen. Ich bin hier zur Schule gegangen, an der University of Washington. Für meine erste Karriere war ich in Portland und habe im Hochschulbereich gearbeitet. Also habe ich mit Studierenden gearbeitet, versucht, die Leistungslücke zu verringern und die Leute im Studium zu halten. Das war meine, meine, meine Aufgabe als ... Life Coach für Studierende. Und das war großartig. Aber ich habe mit vielen Online-Hochschulen gearbeitet und gesehen, wie sehr meine Studierenden mit den Technologieplattformen zu kämpfen hatten, und wie Technologie ihnen zugleich bessere Erfahrungen ermöglichte und half, ihr Leben zu verändern und generationenübergreifende Armuts- oder Unterdrückungskreisläufe zu durchbrechen. Und ich wollte auf praktische Weise daran beteiligt sein. Und, vielleicht egoistischerweise: Bildung ist aus vielen Gründen wirklich hart. Sie ist wirklich schön, aber auch wirklich herausfordernd, und in der Technologie hat man tatsächlich das Gefühl, jede Woche Fortschritte zu machen. Und es hat sozusagen einen Problemlöse-Aspekt für das geweckt, was ich mir für meine Karriere wollte. Also habe ich den Weg gewechselt und mich bei einer Schule namens ADA Developers Academy beworben, die wieder in Seattle ist. Das hat mich sozusagen im Kreis geführt, ich bin zurückgezogen und habe dort das einjährige Programm gemacht.

Jonathan: Moment mal. Du bist in Seattle aufgewachsen und dann weggezogen, um zu arbeiten und deine Karriere zu starten. Wohin bist du von Seattle aus gegangen? Was ...

Rebecca: Ich bin nach Portland gegangen. Also nur ein Stück südlich von Seattle. Ja.

Jonathan: Verstehe. Okay, cool. Und jetzt hast du also Sprachen, Lyrik, englische Literatur gemacht. Ich habe das auch gemacht, aber in der Highschool habe ich Englisch und all das geliebt, also dachte ich mir: Juhu. Noch jemand, der englische Literatur studiert hat. Erzähl mir von dem Feuer. Von dem Prozess, von ... du siehst all diese Probleme vor dir gelöst werden, was Technologie und all das angeht, und entscheidest dich, den Sprung zu wagen. Wie lief dieser Prozess ab, wie hast du dich entschieden: Okay, ich muss gehen und meinen Karriereweg abbrechen und in etwas völlig anderes wechseln. Wie war das?

Rebecca: Es war ein bisschen ... es war ein bisschen Glück, denn ich hatte das Gefühl: Wow, ich sehe meine Studierenden, die damit entweder richtig gut zurechtkommen oder richtig zu kämpfen haben, und ich möchte dabei sein. Ich war mir nicht sicher, wie, außer mit dem, was ich gerade mache, und ich wusste, dass es nicht den Teil von dem nährt, was ich in meinem Arbeitsalltag will. Also habe ich, halb aus Langeweile, mittags angefangen, HTML und CSS zu lernen. Und ich habe einfach so kleine Websites oder kleine Webformulare gebaut, zum Üben. Damals habe ich komplett kostenloses Lernmaterial verwendet. Es war reines Selbststudium, und ich dachte nur: Was ist das eigentlich, dieses ganze Internet-Ding?

Jonathan: Ja. Ja.

Rebecca: Eine Frage, die ich mir immer noch stelle. Aber ja, ich weiß auch nicht, ich habe mich einfach in das Programmieren verliebt. Es fühlte sich in gewisser Weise am ehesten wie Magie an, so eine kleine Schildkröte auf dem Bildschirm herumbewegen zu lassen oder ein Quadrat erscheinen zu lassen. Ja, und ich dachte mir einfach: Okay, ich mag das, und ich mag auch die Mission dahinter, wie bringe ich diese beiden Dinge ins Gespräch? Und daraus ist dann einfach eine Karriere entstanden, indem ich mir diese Frage immer und immer wieder gestellt habe.

Jonathan: Cool. Und der Prozess dann ... des Programmierens, von ... na ja, zu lernen, wie man das, was im Computer vor sich geht, gedanklich fasst und einrahmt, ein Denkmodell dafür zu haben. Eines der Dinge, die interessant sind, wenn ich mit vielen Leuten spreche, und das, würde ich sagen, trifft auch auf meine eigene Erfahrung mit der Entwicklung zu, weil ich mich Stück für Stück in diesen Bereich hineinarbeite: Ein Denkmodell dafür zu haben, was vor sich geht, und es im Kopf erzeugen zu können, ist ein riesiger Teil davon, Programmieren zu lernen. Also, wie hast du das gemacht? Was war ... wie hast du herausgefunden, wie du lernst, wenn das Sinn ergibt. Du schaust dir HTML und CSS an und denkst: Okay, cool. Wie hast du angefangen, diese Informationen in deinem Kopf zu ordnen? Wenn das irgendeinen Sinn ergibt.

Rebecca: Ja, nein, das ist eine tolle Frage. Wie habe ich das formalisiert? Ich denke, eines der Dinge, die mir meine literaturwissenschaftliche Ausbildung eingebläut hat, war: Du liest sorgfältig. Und du liest zwischen den Zeilen, und du achtest auf die Form der Dinge. Und ich denke, ein Programm hat eine Form. Ich habe mit typisierten Sprachen gearbeitet, und da gibt es ganz bestimmte ... es gibt Wege, auf denen man etwas schreiben kann, das wirklich nicht kompiliert. Ich ...

Jonathan: Ja, genau. Ja.

Rebecca: Wenn ich programmiere, denke ich gern darüber nach: Okay, wie ist die Struktur des Ziels, wie ist die Erzählung? Und ich weiß, das ist vielleicht untypisch, eine sehr untypische Art, sich vorzustellen, was ein Computer tut oder wie man A und B zusammenbringt. Aber ja, ich habe immer nur gedacht: Okay, was, wenn ich mir den Computer als meinen Protagonisten vorstelle, was tut er an den Punkten A, B und C? Und wie erreicht er das Ziel, das ich erreichen will? Und es ist vielleicht keine so interessante Geschichte wie Finnegans Wake, aber darüber kann man geteilter Meinung sein. Aber das ist das Modell, das ich habe.

Jonathan: Das ist faszinierend. Was du jetzt erzählst, damit kann ich bei einem Programm oder Code total etwas anfangen. Du hast deine Szenen, du hast deine Figuren, die man als Variablen bezeichnen könnte, und dann hast du die Handlung, was irgendwie lustig ist. Wir könnten jetzt in ein riesiges Kaninchenloch abtauchen, und vielleicht wirst du dem einen oder anderen Englisch-Literatur-Studierenden begegnen, der tatsächlich Entwickler geworden ist. Aber ich glaube, der Grund, warum ich frage, ist, dass ... Umdenken, und viele Leute, die Programmieren lernen, kommen tatsächlich aus einer neuen Karriere oder aus einer alten Karriere, entschuldige. Und sie müssen lernen, umzuschalten und Wege zu finden, sich mental neu zu engagieren. Und ich habe mit Bobby Towers gesprochen, einem unserer anderen Contributor. Du kennst ihn vielleicht, aber er kommt aus einem musikalischen Hintergrund, aus einem sehr musikalischen Hintergrund, und er hat seine eigene Ein-Hand-Tastatur entwickelt, um mit einer Hand tippen zu können, weil er einen Unfall mit seinem anderen Arm hatte. Und ich bin sicher, es macht ihm nichts aus, dass ich das erzähle, aber es war wirklich interessant, mit ihm darüber zu sprechen, wie er Musik versteht und die Muster und die Dinge, die für Musik sehr typisch sind, und wie sie sich in die Entwicklung übersetzen. Und ich glaube, das Spannende an diesen Gesprächen ist, dass ich merke, dass jeder seine eigene einzigartige Art hat, die Informationen, die da in der Dokumentation stehen, sehr pragmatische und wissenschaftliche Informationen, aufzunehmen und ihnen eine eigene Note zu geben. Das ist wirklich interessant. Also hast du angefangen, CSS und HTML zu programmieren, Dinge einzurahmen, sozusagen in deinem Kopf eine Erzählung aufzubauen. Wie hast du dann dieses Wissen vertieft, und was ist passiert, als du mental an eine Sackgasse geraten bist, wo es dir wirklich schwerfiel, dich durchzukämpfen und den Wald vor lauter Bäumen zu sehen? Wie hast du diese Hindernisse erlebt, und wie hast du sie überwunden?

Rebecca: Ja. Ja. Das ist eine tolle Frage. Ich glaube, ich bin ständig auf Hindernisse gestoßen. Ich renne definitiv immer wieder gegen die Wand. Und was mir in solchen Momenten wirklich geholfen hat, ist, auf ein Netzwerk von Menschen zurückzugreifen. Es waren wirklich Gemeinschaft, Freundschaft und Mentoring, die mir geholfen haben, wenn ich auf schwierige Herausforderungen gestoßen bin oder auch nur auf Dinge, die neu waren. Zum Beispiel hatte ich während meines Praktikums direkt nach meiner Programmier-Schule eine wirklich gute Freundin, die das ... die das mit mir durchgemacht hat. Und sie war da, um das zu normalisieren: Wenn ich jemals das Gefühl hatte, oh, das weiß ich nicht und vielleicht sollte ich es wissen, konnte ich zu meiner Freundin gehen und sagen: Weißt du das? Und sie sagte: Nein. Wie sollten wir das wissen? Die Fähigkeit ...

Jonathan: so nach dem Motto: Oh ja, mache ich. ...

Rebecca: Ja. Ich denke, Menschen um mich herum zu haben, hat dazu beigetragen zu normalisieren, wo ich auf meinem Weg stand, und die Leute waren wirklich großzügig mit ihrer Zeit und ihrer Unterstützung. Und meine Haltung ist immer, das weiterzugeben. Denn ja, es war die Community, die mich durch schwere Zeiten wirklich über Wasser gehalten hat.

Jonathan: Das ist wirklich cool. Du hast also ein Jahr so etwas wie ein Bootcamp gemacht. Würdest du sagen, kann man es ein Bootcamp nennen, oder war es eher eine bestimmte Schule? Nicht, dass es einen großen Unterschied gäbe, aber ...

Rebecca: Ja, ich denke, man könnte es als Bootcamp einordnen. Das Programm ADA ist meiner Meinung nach in gewisser Weise einzigartig, denn es ist nicht so, dass man nicht dafür zahlen müsste, es hat kein Studiengebühren-Modell. Man bewirbt sich als Studierende, und es gibt ein ziemlich strenges Bewerbungsverfahren. Und wenn man ausgewählt wird, dann sind es Unternehmen, die einen Praktikanten über diese Pipeline wollen, weil sie den Wert dieses Programms sehen. Diese haben tatsächlich die ganze Schule finanziert, ebenso wie Zuschüsse und andere gemeinnützige Quellen. Das ist ein wirklich unglaubliches Modell, denn als Studierende ist es schwer genug, ein Jahr ohne Einkommen zu lernen. Dass ich also keine zusätzlichen Studiengebühren zahlen musste, war dabei wirklich hilfreich.

Jonathan: Okay, du wurdest also im Grunde vorab gesponsert. Also, hat ein Unternehmen gesagt: Ja, wir sponsern dich und dann arbeitest du am Ende für uns? Lief es ungefähr so, oder war es so, dass du das Verfahren bestanden hast und am Ende eine Möglichkeit ... dir überlassen wurde, dich einzubringen? Ist das ...

Rebecca: Ja, es ist eher Letzteres. Damals war es so, dass Unternehmen eine bestimmte Anzahl von Leuten gesponsert haben. Und dann sagte die Schule: Okay, wir können so viele aufnehmen. Und dann, zur Mitte des Jahres, gab es dieses Durchmischen, bei dem sich alle bei verschiedenen Unternehmen beworben haben und ausgelotet wurde, was ein gutes Match sein könnte. Und dann lief ein Algorithmus, ein Algorithmus für optimale Zuordnung. Und am Ende landest du bei einem Unternehmen. Ja, das machen sie.

Jonathan: das haben sie tatsächlich gemacht, es war also ...

Rebecca: Ja. Es ist ein bisschen wie der Matching-Algorithmus für die medizinische Facharztausbildung.

Jonathan: Okay. Verstehe. Interessant. Und okay, was hast du in diesem Jahr gelernt? War es das traditionelle JavaScript? Ich werde jetzt viel Hass abbekommen, weil ich JavaScript eine traditionelle Programmiersprache nenne. Aber was war ... war das so, wie sah der Lehrplan aus und so.

Rebecca: Ja, damals war der Lehrplan ein Ruby-basierter Lehrplan, und man lernte HTML, CSS, und für die Entwicklung von Webanwendungen nutzte man Ruby on Rails und Sinatra für die Web-Framework-Geschichten. Und dann haben wir auch ... für mehr Frontend-Entwicklung genutzt. Denn das war auch ein Bestandteil. Und es ging viel darum, uns etwas über API-Integrationen beizubringen, darüber, wie man verschiedene Teile einer Anwendung zusammenfügt. Und es war auch ein wirklich kollaborativer Workflow, sie haben versucht, so genau wie möglich nachzubilden, wie es wäre, in einem Team zusammenzuarbeiten. Das war auch wirklich cool. Es war also eine sehr praktische, anwendungsnahe Ausbildung in Software.

Jonathan: Okay. Wow. Und, okay, das ist also ... ich gehe das durch. Ich liebe es, einfach die Geschichte zu hören, wie Leute dorthin gekommen sind, wo sie gelandet sind. Also, dann arbeitest du für Unison, was jetzt eine Sprache ist. Wie kam das zustande? Auf der Grundlage von all dem, und vielleicht kannst du ein bisschen über Unison erklären. Für alle da draußen, damit sie ein Verständnis dafür bekommen, wie das aussieht. Und wir packen sowieso alles in die Shownotes, damit die Leute nachschauen können. Aber ja, erklär, los.

Rebecca: Ja. Unison Computing ist das Unternehmen, für das ich arbeite, und wir schreiben eine neue Programmiersprache namens Unison. Und der sozusagen zentrale Unterschied bei dieser Programmiersprache ist, dass deine Codebasis kein veränderbarer Haufen Textdateien ist. All deine Funktionen werden zu einem AST gehasht und sind inhaltsadressiert. Und das ist ... technisches Zeug. Der Vorteil für dich als Programmierer, als berufstätiger Programmierer, ist, dass Dinge wie das programmatische Verteilen einer Berechnung wirklich einfach werden. Es gibt eine ganze Klasse von Problemen rund um Serialisierung und Deserialisierung von Daten, die sozusagen verschwindet, wenn dein Code programmatisch adressiert und abgerufen werden kann. Wir sind also sehr daran interessiert, den Arbeitsablauf von Programmierern mit unserer Programmiersprache zu verbessern und es Menschen zu ermöglichen, verteilte Systeme in vollem Umfang mit nur einer Programmiersprache zu schreiben, ohne einige der operativen und intellektuellen Kosten eines voll ausgereiften Produktionssystems berücksichtigen zu müssen. Ja.

Jonathan: Bezieht sich das auf Backend und Frontend? Und korrigier mich bitte, wenn ich falsch liege, aber würde das bedeuten, dass du eine vollständige Webanwendung in einer einzigen Sprache schreiben könntest, quer durch die Bank, Frontend, Backend, alles andere?

Rebecca: Wir sind wirklich ein Backend.

Jonathan: Okay.

Rebecca: Ja, wir sind wirklich eine Backend-Sprache. Der eigentliche Eingriff dort ist, dass es eine ganze Menge operativer Komplexität gibt, etwa beim Verwalten eines Kubernetes-Clusters oder eines ZooKeeper-Clusters oder auch nur einer Flotte von Microservices, die Unison programmatisch beschreiben und dann ein Programm dagegen laufen lassen kann, ohne dass du all diese Arbeit machen musst.

Jonathan: Und was machst du für Unison im Alltag? Worin besteht deine Beteiligung, und was sind die Vorteile und die Dinge, die dir wirklich Freude machen, und was sind die Dinge, bei denen du vielleicht denkst: Oh, ich wünschte, das wäre besser oder anders? Wie ist so ein Tag? Wie ist der ...

Rebecca: Ja.

Jonathan: heute? Ich weiß nicht.

Rebecca: Heute habe ich hoffentlich ein Website-Deployment, das ich wirklich fertigstellen will. Ich werde also einiges an unserer Dokumentation verbessern, zum Beispiel unsere Sprachdokumentation. Und das große Ziel diese Woche war ... unser verteiltes Ökosystem, von dem einiges auf Exercism auftauchen könnte. Also schau dir unseren Track an. Meine Rolle ...

Jonathan: Werbung einwerfen.

Rebecca: Ja.

Jonathan: Ja.

Rebecca: Meine Rolle ist es, Menschen zu helfen, Unison zu lernen, und ihnen das Gefühl zu geben, dass sie in die Sprache einsteigen, eine berufliche Fertigkeit erlangen und sich willkommen fühlen können. Dass sie die Informationen bekommen, die sie brauchen, um ihr jeweiliges Ziel zu erreichen. Also ja, und ... es läuft letztlich auf so einen bunten Strauß an Aktivitäten während der Woche hinaus, weil jemand vielleicht Hilfe bei der Fehlersuche braucht, oder eine andere Person sagt: Dieser Link auf der Website ist falsch. Es ist also unterschiedlich. Ich denke, das Schwierigste ist, im Kontext der Pandemie und remote zu arbeiten, es ist wirklich schwer, eine Community aufzubauen. Viele der Konferenzen oder Tech-Events, die in dieser Zeit stattgefunden hätten, sind verständlicherweise wirklich in den Hintergrund getreten. Ich glaube, das ist etwas, das ich vermisse: die Vorfreude, oh, ich werde diese Woche in Leon in Frankreich einen Vortrag halten, oder so etwas.

Jonathan: So ein Lifestyle der Tech-Branche. Na bitte. Kommen wir mal auf den Boden der Tatsachen zurück.

Rebecca: Ja. Ich vermisse es, neue Leute kennenzulernen, also denke ich, aber ich denke, das wird sich hoffentlich in der kommenden Zeit bessern.

Jonathan: Arbeitest du zu diesem Zeitpunkt remote, ist dein Team also überall verstreut? Überall in den Staaten. Überall auf der Welt. Wo ist dein Team gerade?

Rebecca: Ja, wir haben viele Leute an der Ostküste, so im Raum Boston, Rhode Island. Aber wir sind wirklich ein vollständig verteiltes Unternehmen, passenderweise. Und ja, ich bin an der Westküste. Einige Leute sind im mittleren Teil Amerikas. Und ja, wir haben derzeit kein Büro. Wir sind voll und ganz in unseren kleinen Ecken.

Jonathan: Okay, wie hast du im Moment überhaupt die Möglichkeit, rauszugehen und andere Leute in der Tech-Szene zu treffen? Oder ist es, wie du sagtest, alles zum Stillstand gekommen, und es ist ein bisschen gut, im Homeoffice aufzuwachen? Tür zu, geh raus, den Gang hinunter nach Hause. Weißt du, was ich meine? Wie empfindest du das insgesamt? Was sind einige deiner Herausforderungen, etwa in Bezug darauf, mit der Arbeit verbunden zu bleiben, oder wie gehst du mit der aktuellen Situation um? Und ja. Wie sieht die Zukunft für dich darin aus und für Unison als Team? Ist es langfristig remote, oder ist es das Ziel, zu etwas Persönlicherem überzugehen?

Rebecca: Ich, ich denke, das Ziel ist, remote zu bleiben. Es funktioniert für viele Leute, die Verpflichtungen außerhalb der Arbeit haben. Und im Grunde mag ich es aus einigen Gründen wirklich. Eines ist, wir hatten dieses Jahr eine Online-Konferenz. Und ich hoffe, das geht weiter; während wir die Community weiter ausbauen, haben wir nächstes Jahr vielleicht sogar eine Präsenz-Komponente. Und eine andere Sache, die wir tatsächlich im kommenden Monat machen, ist ein Präsenz-Retreat für das Unternehmen. Wir haben also dieses große ... ja, wir haben dieses große Anwesen in der Nähe von Boston gemietet, und wir werden alle dorthin strömen. Es hat all diese coolen Räume und einen Tennisplatz, und wir werden einfach zusammenarbeiten und mehr von den Planungsaktivitäten oder sozusagen Vision-Aktivitäten machen, die man wohl am besten persönlich erledigt. Wir bringen die Crew also ein bisschen mehr zusammen, jetzt, wo das eher eine Option geworden ist.

Jonathan: Ja, ich denke, diese ... wir hatten ein ähnliches Treffen im Septe ... im August bei Ex ... Exercism Anfang August, und fanden, dass das wirklich gut war, sowohl für den Teamzusammenhalt als besonders auch, um bei einigen dieser großen Projekte voranzukommen, die entweder fertiggestellt oder angeschoben werden mussten. Ich bin mir also sicher, das wird super lustig. Jetzt, Rebecca, du warst auch maßgeblich für den Ex ... für den Unison-Track bei Exercism verantwortlich und hast das alles aufgebaut. Erzähl uns ein wenig über diese Erfahrung, wie du auf Exercism gestoßen bist und was deine Hoffnung für diesen Track für die Zukunft ist.

Rebecca: Ja. Ja, nein, das war eine wirklich fantastische Erfahrung. Exercism wurde mir zunächst von meinen Kollegen ... St ... empfohlen, der ein großer Fan der Plattform ist und sie schon benutzt hat. Und bei Unison ... ich hatte nicht die Ressourcen, um eine vollständige Lerninhalts-Management-Plattform aufzubauen. Wir sind ein ziemlich kleines Team mit vielen anderen Zielen, und so dachte ich: Wie schaffe ich es ...

Jonathan: Jahre später ist Rebecca immer noch so ...

Rebecca: Ja. Ich baue immer noch ...

Jonathan: ... es.

Rebecca: ... die Plattform. Ja. Wir wussten also, dass wir uns mit einer anderen Organisation zusammentun mussten, um die Unison-Sprache dahin zu bringen, wo Leute sie ausprobieren können, und hoffentlich, wenn es eine Browser-Komponente gäbe, wäre das wirklich großartig, weil die Leute dann auf ganz unkomplizierte Weise mit der Sprache arbeiten könnten. Und als wir sahen, was Exercism anbietet, dachten wir: Okay, das ist eine großartige Community. Sie wächst, sie ist kostenlos. Das ist wirklich cool. Unsere Nutzer würden das mögen. Also haben wir einfach entschieden: Okay, so sollen die Leute üben können. Der Prozess des Aufbaus des Tracks ist selbst ein wenig interessant, denn Unison ist keine dateibasierte Sprache, nicht wahr? Deine Codebasis wird gehasht und in einer Codebasis gespeichert, während die meisten anderen Sprachen mit Dateien in einem Dateisystem arbeiten. Da gab es also einige interessante technische Herausforderungen.

Jonathan: Geh da mal ein bisschen mehr ins Detail. Also, was genau? Ich würde gerne ... ich sage das als nicht-technische Person, Jeremy würde mich an dieser Stelle sicher auslachen, weil ich eine sehr technische Frage stelle, aber geh einfach ein bisschen auf einige der Herausforderungen ein, und ich bin sicher, die Leute können ein wenig von dem aufschnappen, worüber du sprichst, wenn sie zuhören.

Rebecca: Ja. In Unison arbeitet man mit sogenannten Scratch-Dateien, und Scratch-Dateien, also alles mit der Endung .u, sind wirklich Wegwerf-Dateien. Man schreibt sein kleines Programm, führt es vielleicht aus, in einer REPL-artigen Umgebung oder wie in einem Notizbuch, aber dann löscht man die Funktion aus der Datei, weil man sie in die Unison-Codebasis selbst gespeichert hat. Die Unison-Codebasis ist also die Quelle der Wahrheit, nicht das Dateisystem. Und interessant wird das bei der Integration mit Exercism natürlich dadurch, dass Exercism auf die Datei schaut, eine Datei übergeben bekommt, eine Reihe von Tests dagegen laufen lässt und dann sagt: Okay, der Lernende hat den Test bestanden, oder hier sind einige Probleme. Und es hat am Ende ganz gut funktioniert, denn jedes Mal, wenn man den Test ausführt, bekommt man im Grunde einen neuen Docker-Container zugeteilt. Im Backend passiert da einiges an technischem Zeug, das wirklich clever ist.

Jonathan: Magische Zauberei.

Rebecca: Ja, es gibt etwas magische Zauberei. Eric gebührt viel Anerkennung für das, was die Plattform leistet. Ja, es hat am Ende ganz gut funktioniert. Aber das grundlegende Modell von Unison als Sprache ist, dass es keine dateibasierte, persistente Codebasis ist. Wenn Lernende also ihre Arbeit speichern wollen, Durchlauf für Durchlauf ...

Jonathan: Was machst du ...

Rebecca: Ja.

Jonathan: Du, wo ...

Rebecca: Wo ...

Jonathan: Also, bedeutet das, dass ein Lernender anfangen muss ... technisch gesehen jedes Mal am Anfang des Lehrplans anfangen müsste? So ziemlich jedes Mal. Denn dahin ging mein Kopf: Oh, kein Speichern. Aber vielleicht ist das nur die alberne Art, wie mein Gehirn das verarbeitet. Aber ich dachte: Oh, wow, ich muss wieder von vorn anfangen. Bei ...

Rebecca: Das Glückliche ist, dass die Weboberfläche den letzten Lauf speichert. Während wir also nicht unbedingt das Dateisystem oder den Dateizustand speichern, speichert die Exercism-Plattform selbst die Arbeit des Lernenden. Das ist wirklich cool. Das ist wirklich großartig. Und wenn ein Lernender die Kommandozeile benutzt, hat er Zugang zum vollen Umfang der ganzen Unison-Erfahrung, nicht wahr? Denn dann lädt er tatsächlich den Unison-Codebasis-Manager herunter und arbeitet direkt damit. Ja, es gibt viel Flexibilität zwischen der webbasierten Oberfläche und der Arbeit auf der Kommandozeile.

Jonathan: Okay. Das ist wirklich interessant. Es ist so cool, denn jedes Mal, wenn ich mit einem anderen Maintainer oder Contributor auf der Exercism-Plattform spreche, allein die Nuancen jeder Sprache und die kleinen Feinheiten und solche Dinge, es haut mich um, wie viele verschiedene Wege es gibt, Dinge zu machen, quer durch die Bank. Okay. Jetzt bist du also bei Unison. Ich denke, jetzt ist ein guter Moment, dir die Frage zu stellen, auf die ich dich hoffentlich vorher genug vorbereitet habe, nämlich zu diesem ganzen Konzept des Hügels, auf dem du sterben würdest, in der Tech-Branche. Letztlich, welche eine Sache ist für dich ... das ist meine, meine Ansicht, und ich halte sie für absolut essenziell, und ich würde davon nicht abrücken. Ich würde kämpfen, auch wenn wir das Wort „kämpfen" bei Exercism nicht unbedingt verwenden. Es geht eher darum: Wofür würdest du dich von ganzem Herzen einsetzen und sagen: Das ist etwas, hinter dem ich wirklich stehen will. Welcher Gedanke? Oder es könnte so etwas sein wie: Setz deine Funktionen vor dein CSS. Ich weiß nicht. Ich denke mir gerade irgendwas aus, aber ich weiß nicht, was es sein könnte.

Rebecca: Ja. Mein, mein Hügel, auf dem ich sterben werde, ist, dass ich denke, ha, ich denke, die Tech-Branche hat zu lange toxische Persönlichkeiten akzeptiert, auf Kosten von ... weil sie technisch brillant sind. Und ich denke, das sollte umgekehrt werden. Ich würde viel lieber ...

Jonathan: ... es. Ich liebe es. Ja.

Rebecca: ... würde viel lieber mit 50 wirklich kompetenten, hart arbeitenden Menschen zusammenarbeiten als mit einem genialen Idioten. Ich, ich ... ich habe nie wirklich verstanden, die Akzeptanz von wirklich toxischem Verhalten. Nur weil jemand super schlau ist, das hat mich schon immer ...

Jonathan: Ich habe das Gefühl, dass sich das langsam ändert, in der Tech-Branche insgesamt. Und ich glaube, der Grund, und du kannst mir sagen, wenn ich falsch liege, denn ich bin ein Teil der Exercism-Kultur. Ich liebe sie. Ich liebe sie absolut, und ich weiß, wovon du sprichst. Aber in dem Sinne, dass je mehr Menschen aus ganz unterschiedlichen Hintergründen, Kulturen und Erfahrungen lernen, je mehr Technik zu einer Sache wird, desto mehr wird diese Umkehrung, glaube ich, stattfinden. Und ich glaube, das begeistert mich sehr. Und wenn ich als Außenstehender über die Tech-Branche nachdenke, ist sie zu diesem Zeitpunkt eigentlich eine Art Vermögensübertragung, denn es gibt eine ziemlich kleine Gruppe von Menschen, die das Wissen haben. Weil dieses Wissen, selbst das Verständnis der Kommandozeile oder was zum Teufel in deinen Bash-Skripten und all dem Zeug passiert, ich habe keinen Schimmer, was unter der Haube vor sich geht, aber das Wissen sorgt dafür, dass viel Geld und Energie und Finanzmittel in diesen Bereich fließen, weil das die Leute sind, die die Fähigkeiten und das Wissen haben. Und um das zu ändern, denke und hoffe ich, dass ich damit richtig liege, im Laufe der Zeit, in den nächsten paar Jahren, wenn Menschen lernen und in der Lage sind, zurückzudrängen und zu kontern und mit anderen Arten des Verstehens zu kommen, dass wir dann diese Verschiebung sehen werden. Ich bin zuversichtlich und hoffnungsvoll. Aber ich glaube, ich stimme dir da zu. Ich denke, es war wirklich interessant. Letztlich habe ich die Erfahrung gemacht, dass man das Genie haben kann, aber die Menge an Energie, die nötig ist, um das auf emotionaler Ebene zu bewältigen, plus die Auswirkungen auf andere Menschen, plus der Stress, den andere aushalten müssen, mit Klienten zum Beispiel oder im Team, das gleicht sich tatsächlich aus, und ich habe keine wirklich durch und durch positive Erfahrung damit gemacht. Irgendjemand muss zahlen. Im System zahlt jemand dafür. Ich bin also ganz bei dir, was das angeht, und ich denke, das kann man auch auf technische Lösungen für Dinge anwenden. Es ist ... das ist der eine Weg, es zu machen. Und dann heißt es: Nein, es gibt tatsächlich 20 Wege, und alle haben ihre Abwägungen. Und die eigentliche Reife besteht darin zu sagen: Welche Abwägung bist du bereit zu akzeptieren? Statt zu sagen: Nein, so muss es gemacht werden. Denn es wurde immer so gemacht. Wie auch immer, das ist mein Senf dazu. Aber ja,

Rebecca: Ja.

Jonathan: Ich glaube, ich stimme da zu. Okay, cool. Ich denke, wir sind beide derselben Meinung, was diesen ganzen Hügel angeht. Mir wird klar, dass ich mich inzwischen auf eine Menge Hügel einlasse.

Rebecca: Ja, jedes Mal ...

Jonathan: Bei jedem, mit dem ich spreche, denke ich: Ja, genau. Ich denke: wow. Ich sterbe momentan auf sieben Hügeln gleichzeitig. Mindestens. Aber nein, das gefällt mir wirklich. Rebecca, was ist für dich in den nächsten paar Jahren? Was erhoffst du dir zu lernen oder zu sehen in deinem Leben? In der Tech-Branche insgesamt? Was ist so dein Traum? Wie ist deine Perspektive darauf?

Rebecca: Ich würde sehr gern sehen, dass die Unison-Community auf eine wirklich nachhaltige Weise wächst. Dass sie Menschen aus unterschiedlichen Hintergründen wirklich willkommen heißt. Das ist von ganzem Herzen ... das ist der Grund, warum ich zu Unison gekommen bin, die Möglichkeit, eine Community voranzubringen. Aber langfristig würde ich auch gern wieder mit Menschen ganz am Anfang ihrer Tech-Reise in Kontakt treten. Menschen, die wie ich vor 10 Jahren waren, die einfach nur ... was ist, wie bringen wir das Internet zum Laufen? Sie sind neugierig, haben aber nicht unbedingt den Hintergrund und denken anders über Technik. Und ich würde sehr gern Programmieren für Dichter machen, ...

Jonathan: Das wäre großartig. Songwriter und Dichter. Etwas Code. Ja.

Rebecca: Ja, hoffentlich schaffe ich es, mit Leuten am Anfang ihrer Reise in die Tech-Welt in Kontakt zu kommen. Ich denke, das wäre wirklich großartig.

Jonathan: Also, wenn jetzt zehn Leute in einen Raum kämen, die alle überhaupt keine Ahnung von Programmieren und Entwicklung und der Welt, die darin steckt, hätten, was wären deine drei besten Tipps, damit sie loslegen? Und sie hätten keine Wahl. Sie müssten lernen. Es wäre so: Cool, ihr seid hier. Es gibt kein Entkommen. Ihr müsst euch einfach damit befassen. Was wäre so ... wo würdest du mit ihnen anfangen, und wie würdest du es angehen?

Rebecca: Ich würde ihnen sagen, dass ... sie sollten sich im Raum umsehen und den Erfolg aller anderen als ihren eigenen betrachten. Und dann würde ich ihnen wahrscheinlich sagen, ... ich würde ihnen wahrscheinlich sagen, sie sollen in das Lernen investieren, wie man ein System testet und seine Arbeit überprüft. Ich würde ihnen sagen, oh je ... ich würde ihnen wahrscheinlich vom Einsatz eines Debuggers für praktische Dinge erzählen. Aber ich denke, der erste Punkt ist wirklich der, den ich ihnen sagen würde: den Erfolg aller anderen als den eigenen zu sehen. Denn ...

Jonathan: Du denkst, ich liebe dich? Ja. Nein, denn ich ... das ist ein wirklich interessanter Punkt. Wir haben vor Kurzem diese Kohorten durchgeführt. Ich weiß nicht, ob du weißt, dass wir zwei 30-tägige Lernerfahrungen im Alexa-Track und im Go-Track gemacht haben. Wir haben also ... und wir hatten 300, nein, mehr als drei ... 700 Leute, die sich für den Go-Track angemeldet haben. Und wir hatten etwa hundert im Alexa-Track. Und es war so interessant, weil wir wirklich einige Experimente dazu machen wollten, wie Menschen gemeinsam lernen. Denn uns wurde klar, dass gemeinsames Lernen einer der entscheidenden Aspekte ist, wenn es darum geht, das Lernen von Menschen zu beschleunigen und ein Ziel zu erreichen. Dass du also sagtest ... das gefällt mir wirklich, und ich glaube, ich muss irgendwann mehr mit dir darüber sprechen, dass man sich gegenseitig zum Erfolg verhilft, denn ich denke, wenn ich ehrlich bin, ist das ein so starkes Werkzeug in Bezug auf das Lernen. Wir agieren oft als isolierte Einzelne. Und eines der Dinge, die wir wirklich spüren, ist, dass die Beschleunigung aus der Community kommt, aus der Perspektive einer anderen Person. Und ich glaube, ich muss diesen Satz stehlen und dich vielleicht generell bitten, andere zum Erfolg zu machen.

Rebecca: Bitte ...

Jonathan: ... als Priorität. Vielleicht könnten wir etwas in dieser Richtung machen. Aber das ist wirklich cool. Das gefällt mir sehr. Danke. Danke, dass du das geteilt hast, Rebecca, danke für deine Zeit. Ich denke, es war wirklich cool, einfach zu plaudern und eine gute Zeit damit zu verbringen, über Coding und Technik und all das Zeug zu reden. Also danke, dass du früh aufgestanden bist, den Kaffee gekocht hast und dir Zeit für mich genommen hast. Heute Morgen oder in deinem Morgen, und ja. Ich weiß es zu schätzen. Und an alle, die zuhören: Schaut euch die Sprache Unison an. Ich werde die Shownotes zusammenstellen und in den Klappentext und die Beschreibung für diesen Podcast packen. Aber es war großartig, dich hier zu haben. Vielen Dank, und ich werde die Aufnahme stoppen, und dann quatschen wir danach noch ein bisschen. Also bleib bei mir, Rebecca, aber alle anderen: Wir sehen uns später. Ja.

Weitere Geschichten aus unserer Community

Hör zu, lerne und lass dich von unseren Community-Mitgliedern inspirieren.