Was ist ein „Polyglot“, höre ich dich fragen ... nun, laut Wörterbuch ist es die Fähigkeit, mehrere Sprachen zu kennen! Und wie wirst du ein „Polyglot“? Du sprichst mit Erik Schierboom und bekommst den Insider-Tipp!
Jonathan: Also, hallo zusammen und willkommen zum Exercism-Podcast bzw. Livestream. Mein Name ist Jonathan und ich habe heute das Privileg, euer Host zu sein. Und an meiner Seite ist Eric, der Teil des Exercism-Teams ist und seit einigen Jahren dabei ist. Wenn du in den letzten paar Jahren irgendwann im Exercism-Ökosystem unterwegs warst, bist du Eric mit großer Wahrscheinlichkeit irgendwo über den Weg gelaufen. Aber Eric, es ist großartig, dich heute in der Sendung zu haben. Ich bin gespannt, mehr über deine Geschichte zu erfahren, darüber, wie du in die Tech-Welt gekommen bist, und über deine Sicht auf verschiedene Dinge in der Tech-Szene. Aber bevor wir zu tief in diese Dinge eintauchen, würde ich mich freuen, wenn du dich vorstellst und uns ein bisschen Hintergrund gibst, ein bisschen erzählst, wie du dahin gekommen bist, wo du jetzt bist.
Erik: Klar. Ja, ich freue mich, hier zu sein. Also ich bin Eric, wie du wahrscheinlich schon erwähnt hast. Ich lebe in den Niederlanden. Ich bin dort geboren, also habe ich mein ganzes Leben hier verbracht. Ich habe angefangen, darüber nachzudenken, wann ich zum ersten Mal wirklich etwas mit Computern gemacht habe. Und ich glaube, es muss ein NES gewesen sein. Also Mario spielen. Und das hat mich gepackt. Ja, es war großartig. Und auch sehr frustrierend, weil Spiele damals gnadenlos waren.
Jonathan: Du hattest keine Speicherpunkte und so, du hast es einfach wieder und wieder von vorn versucht.
Erik: Nun, das hängt davon ab, ob man in den USA oder im Rest der Welt gelebt hat, denn es gab tatsächlich zwei verschiedene Versionen. Aber ja, ich glaube, du öffnest den Schacht vorne und legst dann die Disketten oder was auch immer hinein, die Cartridges. Und ich liebe das wirklich sehr. Wir hatten kein NES, aber ich hatte ein paar Freunde, die eines hatten. Also bin ich regelmäßig dorthin gegangen, um zu spielen, und es gab so viele großartige Spiele, die ich gespielt habe, und frustrierende Spiele. Aber es war so eine tolle Sache. Und das hat mich dann gepackt. Ich denke, so kommen viele Programmierer auf den Geschmack, Programmierer werden zu wollen, einfach weil sie ein Spiel bauen wollen. Ich habe darüber nachgedacht. Was ich, Spoiler-Alarm, nie gemacht habe. Ich bin kein Spieleentwickler. Okay. Nein, nein, nein. Aber das war der Grund, warum ich anfing, Computer zu mögen. Und dann hatte mein Vater einen Unfall, bevor ich geboren wurde. Er war also unterhalb der Schultern gelähmt. Er saß im Rollstuhl. Aber er war immer zu Hause. Das war großartig. Ich hatte also einen Vater, der rund um die Uhr zu Hause war. Es war immer schön, nach Hause zu kommen. Und er mochte auch Computer. Irgendwann, ich war vielleicht 10 Jahre alt oder so, hat er diesen wirklich nicht besonders schicken Computer bekommen. Ich glaube, es war ein X286. Er war schwarz-weiß und hatte MS-DOS installiert. Und man konnte Spiele spielen. Es gab so viele Spiele, und ich habe von Freunden Spiele bekommen, und sie mussten all die Blätter mit den Passwörtern ausdrucken, um die Spiele überhaupt starten zu können, weil es einen Passwortschutz gab. Es war wie das Handbuch. Damit kommst du heute nicht mehr durch. Aber damals ging das. Und ich liebte es, diese Spiele zu spielen, aber ich liebte es auch, herauszufinden, wie sie funktionierten. Und ich habe meinen Computer kaputt gemacht. Ich weiß nicht mehr, wie oft. Ich hatte also diesen Helpdesk, den Vater eines Freundes, der wirklich gut mit Computern war. Und immer wenn ich mein System zerstört hatte, rief ich ihn an, und er war sehr gütig, kam vorbei und half mir, mein System zu reparieren. Aber ich erinnere mich noch daran, wie ich in Panik war, als ich merkte, dass ich aus diesem Problem nicht mehr herauskam. Aber ich habe viel daraus gelernt.
Jonathan: Diese Sache. Aber ich habe viel daraus gelernt. Auf einer Diskette, und ich erinnere mich, ich habe jahrelang auf dieses Ding gespart und es dann eingelegt, und dann hat es einfach nie, nie geladen, mit diesen kleinen Disketten. Das war eine meiner riesigen Frustrationen. Ich glaube, ich kam nie über den Punkt hinaus, an dem ich versuchte herauszufinden, wie ich das reparieren kann. Aber waren Spiele damals auf Disketten, und man musste so eine kleine Cartridge haben, in die man sie steckte und hochlud und all diese Sachen?
Erik: Niemals.
Jonathan: Ja.
Erik: Ja, manchmal hatte man mehrere Disketten. Ja, es war tatsächlich eine großartige Zeit. Und ich liebte MS-DOS und ich liebte es, herauszufinden, was ich tun konnte. Und dann fand ich heraus, was ich nicht tun konnte. Ja, es war wirklich cool.
Jonathan: Ja, es war wirklich cool. Hat sie dann Vollzeit gearbeitet? Und dein Vater war zu Hause?
Erik: Nein, meine Mutter kümmerte sich Vollzeit um meinen Vater. Er brauchte viel Pflege. Er konnte sich anfangs mit seinen Händen bewegen, später konnte er sein Kinn benutzen, weil seine Hände nachließen und er weniger Kontrolle hatte. Aber sie kümmerte sich Vollzeit um ihn. Meine Eltern waren also immer zu Hause. Für mich war es wirklich seltsam, zu anderen Leuten zu gehen, wo die Eltern arbeiteten. Es war also Ende des Tages und die Eltern waren immer noch nicht zu Hause. Für mich war das wirklich seltsam. Aber ja, es ist einfach eine andere Situation.
Jonathan: Für mich war das wirklich seltsam. Es war einfach nur du.
Erik: Doch, ich habe eine Schwester. Sie ist drei Jahre jünger als ich. Niemand würde je sagen, dass wir Geschwister sind. Wir sind so verschieden. Aber früher habe ich viel mit ihr gestritten, heute kommen wir total gut klar. Es ist also gut ausgegangen. Okay. Und sie mochte Computer nicht, also hat sie meine Computerzeit nicht groß gestört.
Jonathan: Aber wir haben uns oft um den Computer gestritten. Sie wollte Sims spielen, und ich wollte SimCity spielen oder was auch immer. Aus der Perspektive waren wir uns also immer uneinig.
Erik: Tschüss. Auf jeden Fall mag ich die SimCity-Wahl viel lieber. Aber nein, sie war nie wirklich an Computern interessiert. Das Einzige, womit ich sie interessieren konnte, war, als ich ein SNES hatte, also das Super Nintendo, und wir Mario Kart hatten. Und sie mochte Mario Kart, also haben wir viel Mario Kart zusammen gespielt. Natürlich habe ich immer gewonnen, weil ich viel mehr Übung hatte, aber sie mochte es trotzdem.
Jonathan: Du bastelst also immer noch gerne herum? Ja, MS-DOS, wenn ich mich nicht irre, ist das eine ziemlich low level Sache. Ja. Das war also wahrscheinlich ziemlich low level. Ja, absolut. Und wie alt warst du, als du mit diesem System herumgespielt hast?
Erik: Okay. Ziemlich low level, ja. Absolut low level. Ja, das war ungefähr, ich glaube, 10. Und dann hatte ich einen Freund, der in meinem Fußballteam war, im Grunde. Aber er war schon ein guter Programmierer und konnte tatsächlich Spiele programmieren. Und das machte er in Visual Basic. Und ich war völlig verblüfft. Er kam also zu meinem Computer und zeigte, dass er etwas tippte, und ich verstand nichts davon. Aber nach einer halben Stunde hatte er etwas, das auf dem Bildschirm herumlief, und das war für mich völlig magisch. Ich war einfach sprachlos. Aber ich habe damals nie wirklich versucht zu programmieren. Ich fand immer noch, es sei zu schwer, um es überhaupt zu versuchen. Also habe ich es nicht getan. Ich habe nur ein bisschen herumgebastelt und Spiele gespielt.
Jonathan: Also ich ... ich springe einfach kurz rein.
Erik: Und dann, als ich etwas älter war.
Jonathan: Wie kam die Verbindung zustande zwischen: Oh, ich kann das Spiel programmieren, und ich kann das richtig ernsthaft machen, wenn das Sinn ergibt, oder ich kann das auf eine ernsthaftere Art verfolgen.
Erik: Ja, das kam später. Als ich ungefähr 17 war, musste ich im Grunde wählen, welchen Weg ich einschlage. Ich hatte zwei Optionen im Kopf. Eine war, Geschichte zu studieren, und die andere war, IT zu machen. Am Ende war es eine ziemlich einfache Wahl, weil ich das Gefühl hatte, IT sei etwas, das ich lieber machen würde als nur Geschichte. In der Geschichte gibt es vielleicht sehr langweilige Teile, und ich dachte nicht, dass es in der Informatik langweilige Teile gibt, aber die gibt es natürlich. Da lag ich also falsch. Ja, ja. Nein, nun, darauf können wir ein andermal eingehen. Aber ja, es gibt langweilige Teile. Aber damals habe ich die Wahl getroffen. Und es war in einer Zeit, in der alles boomte. Es war der Dotcom-Boom. Als wir meine weiterführende Schule besuchten, also die Schule, auf die ich gehen wollte, eine Fachhochschule. Ich konnte zwischen Fachhochschule und Universität wählen. Aber ich mochte die Fachhochschule, weil ich Dinge bauen will. Ich bin kein großer Theoretiker. Ich weiß nicht, wie man das sagt, aber ich bin nicht gut in Theorie. Also baue ich gerne Dinge. Ich bin sehr praktisch. Ich habe mit dem praktischen Teil angefangen. Und das gefiel mir sehr. Und es war eine Zeit, in der all diese Firmen Unmengen an Geld machten. Und sie sagten: Hey, sobald du fertig bist, bekommst du ein Auto, bekommst du dies, bekommst du das. Und als ich meinen Abschluss machte, platzte die Dotcom-Blase. Alles lag in Trümmern und es war tatsächlich ziemlich schwer, einen Job zu finden. Und an dem Punkt dachte ich, vielleicht sollte ich es einfach an der Universität versuchen, weil die Fachhochschule viel Spaß gemacht hat. Und dort habe ich tatsächlich programmieren gelernt. Aber ich dachte, na ja, vielleicht verschiebe ich meine Berufslaufbahn ein bisschen und schaue, ob ich die Universität schaffe. Es war also schön.
Jonathan: Im europäischen Bildungssystem bekommt man meines Wissens ziemlich schnell eine Einordnung, praktisch, kompetenzbasiert versus Universität, vielleicht eher akademisch. Stimmt das in den Niederlanden? Sind sie ziemlich gut darin zu sagen: Hey, du passt wirklich gut hierhin? Ich weiß, in der Schweiz, das ist so mein Bezugspunkt, kannst du, wenn du sehr gut bist, in den Niederlanden sagen: Okay, cool, mach eine Lehre und werde auf diesem Weg qualifiziert. Und das gilt tatsächlich als genauso ..., es wird nicht als geringer oder höher angesehen als ein Universitätsstudium oder so. Es passt einfach besser zu deinen Vorlieben. Stimmt das in den Niederlanden auch? Und gab es diesen Prozess beim Aufwachsen?
Erik: Ich würde nicht sagen, dass es als gleichwertig angesehen wird. Es gibt immer noch diese Vorstellung, dass ein Universitätsstudium besser oder schwieriger oder zumindest prestigeträchtiger ist als die Fachhochschule. Man bekommt auch einen anderen Titel. Aber mich sprach das nicht wirklich an. Es war einfach viel zu theoretisch. Ich wollte programmieren lernen, weil ich es immer noch nicht gelernt hatte. Ich wusste, dass es mir wahrscheinlich gefallen würde. Ich hatte Bruchstücke von HTML gesehen, aber ich hatte noch nie eine Zeile Code geschrieben. Aber ich war ziemlich sicher, dass es mir sehr gefallen würde. Als ich anfing, habe ich im ersten Jahr praktisch keine einzige Zeile Code geschrieben. Ich habe mich nur mit einigen meiner Kommilitonen in einer Gruppe durchgeschleppt, weil einer von ihnen ein fantastischer Programmierer war, der alles wusste. Er machte alles, also bekam ich nicht einmal die Chance, viel zu tun. Aber im zweiten Jahr traf ich eine bewusste Entscheidung: So läuft das nicht. So werde ich nie programmieren lernen. Also bin ich voll eingestiegen und habe mir den Hintern abprogrammiert. Das war ein tiefer Einstieg. Ich habe mit C angefangen, einer schrecklichen Sprache für den Anfang. Ich gehe nicht darauf ein, was ich von C als Sprache halte, aber für den Anfang ist es eine sehr schwierige Sprache. Eine verkettete Liste in vielleicht Lektion zwei oder drei zu machen, ist definitiv nichts, was man als Student schätzt, wenn man keinen Hintergrund hat. Aber ich schaffte es zu programmieren, und es gefiel mir so gut, dass ich in meiner Freizeit viel programmierte. Wie ich mir das Programmieren fast selbst beigebracht habe, weil die Art, wie sie es beibrachten, wirklich, wirklich schlecht war: Ich suchte mir etwas, das ich selbst gerne benutzen würde, und baute es dann, oder versuchte es zumindest zu bauen, denn am Anfang strampelst du nur herum und bekommst nicht viel Nützliches hin. Aber am Ende ist es einfach: üben, üben, üben. Ich habe festgestellt, dass Programmieren eine Fähigkeit ist, die man einfach durchs Tun erwirbt. Man kann sich all die Theorie aneignen und, ich weiß nicht, 10 Millionen Videos anschauen. Aber wenn man nicht wirklich Zeit investiert, wird man, glaube ich, nie ein guter Programmierer. Man muss es einfach tun. Und das ist ein großer Schritt. Ich erinnere mich noch, dass ich Code lesen konnte, und war ziemlich stolz darauf. Aber dann Code schreiben zu müssen, das war so ein großer Schritt.
Jonathan: ... war ich zufrieden damit, und Code schreiben zu müssen, das war so ein großer Schritt. In den letzten paar Sendungen habe ich gefragt, wann das Programmieren für die Leute Klick gemacht hat, und ob es für dich einen Moment gab, in dem der Groschen gefallen ist und du dachtest: Oh mein Gott, das ergibt alles Sinn? Hast du herumgestrampelt und versucht, die Theorie zu begreifen, oder gab es einen Moment, in dem du dachtest: Okay, nein, das ist geradlinig?
Erik: Ich glaube nicht, dass ich einen einzigen Aha-Moment hatte. Ich glaube, ich hatte mehrere. Es kommt in Etappen. Ich glaube, das erste echte Programm, das ich geschrieben habe, war eines, bei dem man ein Wort erraten musste. Wie heißt dieses Spiel, das gerade sehr beliebt ist, bei dem man die ... Na, es ist wie Hangman, aber sagen wir, es ist Hangman. Aber es war in C, und ich bekam es tatsächlich zum Laufen, sodass ich mein eigenes Spiel spielen konnte. Ich verstand also einigermaßen, was passierte, und dann machst du Fortschritte. Ich hatte etwas, das mit, glaube ich, Mutexen zu tun hatte. Es gab Züge, und die durften nicht zusammenstoßen. Man konnte also einen Mutex verwenden, wenn sie sich kreuzen. Und ein Mutex ist im Grunde wie ein Schild, auf dem Stopp oder Los steht. Das war eine Menge Spaß. Ich war ziemlich zufrieden damit. Also gab ich es meinem Professor. Und er sagte mir: Aber was, wenn ich vier Züge haben will? Und ich dachte: Oh, oh, oh, wow. Daran hatte ich nicht gedacht. Das war wie eine Offenbarung, und es war nur ein einfacher Satz. Und ich dachte: Oh, ich hätte berücksichtigen sollen, dass er so etwas fragen könnte. Also verbrachte ich das Wochenende damit, meinen Code zu parametrisieren, sodass man mehrere Züge haben konnte, und ich schaffte es. Ich habe es reingehackt. Es war nicht schön, aber es funktionierte. Das war ein weiterer Moment, in dem ich dachte: Oh, das ist wirklich, wirklich cool. Und ich kann solche Dinge tun.
Jonathan: Cool. Ich kann sehen, dass du solche Dinge machst. Also, von dir kenne ich das. Und auch vom Programmierenlernen her gibt es diesen Prozess, bei dem man einfach irgendwas runterschreibt, es zum Laufen bringt und es dann verfeinert. War das auch deine Erfahrung? Es war so: Einfach runterschreiben, zum Laufen bringen. Wen kümmert alles andere? Und dann verfeinern.
Erik: Ja, ja, ich glaube, das erste Jahr oder so ist einfach: Wenn es läuft, war ich sehr, sehr glücklich. Es gab so etwas wie Ästhetik nicht. Es ist einfach: Wenn es läuft, ist es gut. Und ich habe es mit dem Kommentieren meines Codes völlig übertrieben, weil mein Professor mir sagte, ich müsse meinen Code kommentieren. Und das Verhältnis von Code zu Kommentaren war vielleicht eins zu zehn oder so, das war riesig. Und ja, mein ältestes Projekt ist noch online, das war mein erstes Open-Source-Projekt. Erinnerst du dich an MSN Messenger, wo man Nachrichten schicken konnte?
Jonathan: Okay, es klingelt, aber ...
Erik: Erinnerst du dich an Winamp?
Jonathan: Ja.
Erik: Ja, Winamp war ein Mediaplayer. Das war in der Napster-Ära. Man lud MP3s herunter und spielte sie dann über Winamp ab. Was ich machen wollte: Wenn ich ein Lied spielte, sollte es automatisch an meinen Namen im MSN Messenger angehängt werden. Ich war damals ziemlich begeistert von Windows-Programmierung. Das war Win32. Sehr altmodisch, nicht das, was wir heute haben, aber sehr low level und auch sehr cool. Ich baute also ein Plugin in C++, das damals meine Lieblingssprache war, aber ich kannte auch nur drei Sprachen, also sagte das nicht viel. Aber ich baute ein Plugin. Wenn Winamp spielte, holte es den Namen über ausgefallene Win32-APIs und aktualisierte dann den Namen, den man im MSN-Fenster hatte. So konnte jeder sehen, welche Nummer ich gerade spielte. Und ich stellte das tatsächlich online, weil ich dachte, vielleicht gefällt es anderen. Ich glaube, es war auf SourceForge, das heute von niemandem mehr benutzt wird, weil sie, glaube ich, Probleme mit dem Datenschutz hatten oder so. Aber tatsächlich benutzten es andere Leute auf der Welt, und ich war so erstaunt. Ich konnte die Downloads sehen, ich weiß nicht, ein paar Hundert Downloads, und Leute benutzten meine Software, die ich geschrieben hatte. Das war das beste Gefühl überhaupt. Und das war mein erstes Open-Source-Programm. Ich hatte nie wirklich Impostor-Syndrom. Ich dachte, das ist mein Code. Wenn jemand ihn schlecht findet, ist das in Ordnung. Er funktioniert, also war ich zufrieden. Und ich kann aus den Kommentaren anderer lernen. Ich war nie jemand für das Impostor-Syndrom, was Leute, die mich kennen, nicht überraschen würde.
Jonathan: Das würde mich nicht überraschen. Zu deiner Erfahrung mit Professoren und Dozenten an der Universität: Gab es bestimmte Lehrer, die herausstachen, und die Art, wie sie unterrichteten, die dein Lernen beschleunigt hat oder dein Verständnis von Programmieren und Code massiv beeinflusst hat? Und was haben sie konkret getan, damit du die Lücke von der Theorie zur praktischen Umsetzung schließen konntest? Das ist eine ziemlich große Frage. Du kannst sie in so viele Teile aufteilen, wie du willst. Ja, ja.
Erik: Ja, ja, ja. Ich muss zwischen der Fachhochschule und der Universität unterscheiden. Sprechen wir zuerst von der Universität: Ich glaube, das allgemeine Niveau der Fähigkeiten, die jemand zum Unterrichten hatte, war sehr, sehr niedrig. Die Latte lag sehr tief. Und mein Gefühl war, dass viele der Leute, die an der Universität unterrichteten, das taten, weil sie mussten, nicht weil sie wollten. An der Universität will man forschen, aber es gibt eine Anzahl von Stunden, die man mit Lehre verbringen muss. Sonst, na ja, es gehört zum Job, aber es gefiel ihnen nicht wirklich. Ich wollte nach dem Programmierenlernen mehr programmieren lernen. Also nahm ich dort die Programmier-Spezialisierung, aber sie war so schlecht. Ich war fast wütend, dass das das Niveau an Programmierwissen war, das sie mir vermitteln wollten, es war so schlecht, dass ich tatsächlich zu Security wechselte. Und ich bin nicht wirklich in Security, aber das Programmierzeug war so schlecht. Ich sage immer: In meiner Universitätszeit war das Einzige, was ich wirklich gelernt habe, wie man gute Artikel schreibt, wie man richtige Quellenrecherche betreibt, sodass man seine Quellen kennt und nicht einfach jede Quelle akzeptiert. Und das habe ich in diesen Jahren gelernt, aber über das Programmieren habe ich überhaupt nichts gelernt.
Jonathan: Das klingt sehr nach Geschichte, wie du eine Quelle hinterfragst, wie du sicherstellst, dass dein Argument stimmig ist, all das. Wie haben sich die Fähigkeiten und die Freude an der Geschichte ...
Erik: ... viel herum.
Jonathan: Wie haben sie sich in deinem Programmieren und beim Programmierenlernen gezeigt, wenn überhaupt? Wo gab es Überschneidungen?
Erik: Das ist eine schwere Frage. Nun, beides beinhaltet viel Lesen. Geschichte dreht sich ums Lesen. Aber auch Programmieren dreht sich ums Lesen von Code. Die Anzahl der Male, in denen man Code schreibt, ist viel geringer als die Anzahl der Male, in denen man Code liest. Es ist also auch sehr leseintensiv. Es kann ein bisschen wie Archäologie sein: Wenn man einen neuen Job hat und mit diesem uralten Legacy-System anfängt, muss man sich zurechtfinden. Es fühlt sich an, als würde man in Ecken und Nischen spähen und schauen, was dort versteckt ist. Und manchmal kommen Leichen aus Schränken usw. Es fühlt sich ein bisschen wie eine Erkundung an. Ich meine, was hat dir daran gefallen? Ich weiß nicht, ob es noch etwas anderes gab, was war überhaupt die Freude?
Jonathan: Danke. Wo lag für dich die Freude in der Branche?
Erik: ... eigentlich die Geschichten, die meine Lehrer erzählten. Also Piraten, sie erzählten davon, wie man an einem Seil unter dem Schiff hergezogen wurde, und das war sehr anschaulich, usw. Ich mag so etwas. Das gefällt mir wirklich. Und ich liebe die Römer und ihre Kultur und wie sie sich ausgebreitet haben, und dann auch die Politik. Also die Intrigen, usw. Das liebe ich. Ich hatte in der Schule auch Latein. Latein interessierte mich überhaupt nicht, aber ich liebe die Geschichten, die sie ... Also ich mochte nicht, dass ich Latein machen musste, aber die Geschichten, die wir übersetzen mussten, die mochte ich. Aber ich habe es nach zwei Jahren abgewählt.
Jonathan: Die mochte ich auch. Nein, der Grund, warum ich das gefragt habe, nur wegen der Geschichte, war ...
Erik: Ja, ich kenne die Geschichte.
Jonathan: Ich habe eine Reihe von Leuten gesehen, die eher künstlerisch oder sozial ... wie sagen wir? Vielleicht Kunst im englischen Rahmen, also Kunst und Geschichte, fallen in diese Kategorie. Aber ich sehe zunehmend Leute, die diese Art von Bereich mochten, zum Programmierenlernen wechseln. Und der Grund, warum mich das interessiert, ist, dass es offensichtlich ... Überschneidungen gibt, und das ein wenig zu kartieren, war ein enorm interessanter Teil der Gespräche, die ich mit verschiedenen Leuten geführt habe. Und es fühlt sich so an: Wenn du ein großes Bild hast und einen multidisziplinären Ansatz über die verschiedenen Dinge hinweg, die du studierst, dann ist es enorm vorteilhaft, das ins Programmieren einzubringen, weil du verschiedene Fähigkeiten in den Programmierbereich einbringen kannst. Und ich denke, ja, das ist einfach ... Dazu wollte ich nur etwas sagen. Es ist also interessant, dass du Geschichte geliebt hast und jetzt Erfahrung in über 30 verschiedenen Programmiersprachen hast und viele davon pflegst. Na ja, nicht unbedingt pflegst, aber du bist stark daran beteiligt, sie alle auf Exercism zu verwalten, was sozusagen dein ... Na ja, ja, ja. Ja, leg los.
Erik: Wie viel ist deins? Kann ich kurz auf das zurückkommen, was du gerade gesagt hast? Du hast erwähnt, dass es viele verschiedene Arten von Menschen gibt, verschiedene Interessen, die programmieren. Aber einer der Gründe, warum das so ist, ist meiner Meinung nach, dass Programmieren sowohl sehr technisch denkende Menschen anspricht, weil es strenge Regeln gibt, Sprachen sind sehr festgelegt. Es gibt eine Grammatik, es gibt eine Syntax. Es sind viele Dinge, die Leute ansprechen, die Dinge auf eine bestimmte Weise mögen. Wenn du zum Beispiel Physiker bist, magst du Regeln, magst du Gesetze usw. Und solche Dinge gibt es auch beim Programmieren, aber es ist auch wie eine Kunst. Manchmal vergleichen Leute es mit dem Schreiben eines Buches, und ich denke immer noch ... Das ist wahrscheinlich eines der besseren Beispiele. Ich mag den Hausbau-Vergleich nicht, weil niemand, kein Haus würde gebaut werden, wenn wir unsere Software so bauen würden, wie wir ein Haus bauen. Aber es ist wirklich sowohl eine Wissenschaft als auch eine Kunst, finde ich. Jeremy hat das neulich in den tiefer gehenden Sachen erwähnt: Bei einer sehr einfachen Übung können Leute Hunderte verschiedener Lösungen finden, obwohl man denkt: Hey, es sollte nur einen Weg geben, das zu lösen. Aber es gibt immer mehr als einen Weg. Und das ist es, was ich am Programmieren liebe: Man kann etwas haben, das funktioniert, aber dann kann man, ich weiß nicht, 20 andere Optionen erkunden, und man schreibt, und man sieht: Hey, das funktioniert auch. Diese Kombination aus Kunst und Wissenschaft mag ich sehr, weil ich glaube, dass es auch der einzige Weg ist, auf dem ich wirklich kreativ sein kann. Ich bin überhaupt kein kreativer Mensch. Ich habe eine linke und eine rechte Hand, aber man würde es merken, wenn ich etwas rund ums Haus mache, Hausarbeiten oder Tischlern oder so. Darin bin ich nicht gut, was auch daran liegt, dass mein Vater mir das nicht wirklich beibringen konnte. Das ist wirklich interessant.
Jonathan: Aber ich war auch wirklich nicht daran interessiert. Ich habe in der Schule Kunst gemacht. Ich habe Musik gemacht, ich habe Gitarre gespielt oder so. Für mich lag der Rahmen, den ich für Kreativität hatte, immer im Zeichnen oder in der Musik und so. Und ich hatte den kreativen Aspekt von Code nie wirklich in Betracht gezogen. Und wo du es jetzt erwähnst, wie sieht das bei dir aus? Spielst du ein Instrument oder ...? Du genießt Musik, ich weiß, dass du Musik genießt, aber ich versuche nur, diese beiden Dinge zu verbinden.
Erik: Nun, ähm ... Ja, das tue ich. Ich habe versucht, Gitarre zu lernen. Es war sehr hart für meine Frau, weil wir in ihrer Studentenwohnung lebten und die war vielleicht 20 Quadratmeter groß. Ich versuchte also, Gitarre zu lernen, und wir waren uns so nah. Ich bin immer noch erstaunt, dass sie das mitgemacht hat. Aber ich habe ...
Jonathan: Es ist nur ...
Erik: Ich habe kein angeborenes Talent für ein Instrument. Ich musste wirklich, wirklich, wirklich hart arbeiten, um ein bestimmtes Niveau zu erreichen, das immer noch sehr niedrig war. Tempi und so konnte ich, das konnte ich gut. Aber irgendwann bat mich mein Gitarrenlehrer, zu improvisieren und dann ein Solo zu spielen, und ich war völlig verloren. Ich konnte es ums Verrecken nicht. Es gibt einfach keine musikalische Kreativität in mir.
Jonathan: Es gibt einfach keine musikalische Kreativität in mir. Programmieren? Anders als bei dir. Wenn du ans Programmieren kommst, sagen wir, du bekommst ein Briefing von Jeremy oder eine Feature-Anfrage bei Exercism, und es heißt, wir machen X, Y oder Z. Begeistert dich das wirklich mental, und fühlst du so: Wow, okay, cool, lass uns das wirklich erkunden und genießen? Genießt du diesen Prozess? Ist das wirklich das, worin du in gewissem Sinne aufblühst?
Erik: ... anders als bei dir. Okay. Ja, ja. Also, es ist die Vorstellung, eine Idee zu haben und daraus etwas zu machen. Man ist fast wie ein kleiner Gott, ja, wo man mit nichts angefangen hat, man hat eine Idee, und dann gibt es etwas. Und es ist einfach so magisch. Und ich werde immer noch ganz kribbelig, wenn ich ein Skript habe. Da ist all dieser Text, Zeile für Zeile, und dann sieht man, wie er einfach Dinge tut. Und es ist so schön zu sehen, wie der Computer für dich arbeitet, basierend darauf, was du gesagt hast, dass er tun soll. Es gefällt mir immer noch. Und der kreative Aspekt liegt definitiv auch darin, zu erkunden, auf welchem Weg du etwas bauen willst. Und wenn du es gebaut hast, hast du wahrscheinlich vom Refactoring-Zyklus gehört, wo man etwas hat, das funktioniert, und dann anfängt zu iterieren und zu sehen, ob man es besser machen kann. Und ich liebe Refactoring absolut. Eines der Bücher dort ist, wo ist es? Oh, ich kann es nicht sehen, weil es außerhalb der Kamera ist. Aber es ist Refactoring von Martin Fowler. Und es war eine meiner besseren Erfahrungen beim Lesen über Software. Ich liebe Refactoring so sehr. Es ist einfach der Prozess, dass du etwas hast, das funktioniert, aber du kannst es noch besser oder schöner oder schneller machen, was auch immer deine Kriterien sind. Und deshalb liebe ich Exercism sehr, weil es dafür gebaut ist: Du löst Tests, und dann hast du eine Testumgebung und kannst mit deinem Code machen, was du willst. Und solange es grün ist, funktioniert es immer noch. Also ...
Jonathan: Das gefällt mir sehr. Ich gehe noch mal auf verschiedene Zeitlinien zurück. Du hast jetzt dein Studium abgeschlossen, du hast programmieren gelernt, du hast wirklich gesagt: Okay, ich verpflichte mich diesem Lernprozess, ich tauche tief ein. Was passierte dann von diesem Punkt der echten Hingabe an, als du wahrscheinlich anfingst, über eine Karriere nachzudenken, was immer ein großer Teil des Studiums ist: Was mache ich für den Rest meines Lebens? Wie hat sich das entwickelt? Was waren deine Gedanken dazu? Was hat sich vor dir aufgetan?
Erik: Klar. Ich habe meine Karriere eigentlich nie in Betracht gezogen. Ich glaube nicht, dass ich das je in meinem Leben getan habe. Das Einzige, was mir wirklich wichtig ist, ist, etwas zu tun, das ich gerne mache. Und das in meiner Nähe ist, damit ich nicht viel fahren muss. Ich fahre nicht gern viel. Aber nein, ich habe meine Karriere nie wirklich in Betracht gezogen. Und ich hatte auch unglaubliches Glück. Ich musste mich praktisch nie um einen Job bewerben, außer vielleicht ein- oder zweimal. Ich hatte immer Freunde oder Leute, die mich kannten. Genauso bei Exercism. Jeremy kannte mich, und ich musste mich nicht bewerben, nicht durch, ich weiß nicht, vier oder fünf verschiedene Interviewphasen gehen wie du. Vielleicht sogar mehr bei dir, übrigens. Aber ich ... Nein, nein, ich weiß. Aber ich hatte keine. So war es auch, als ich einen Job suchte. Ich habe immer nebenher gearbeitet, während ich zur Schule ging, sogar in der Highschool, ich habe immer versucht, ein bisschen Geld zu verdienen, weil meine Eltern nicht viel Geld hatten. Ich musste also meinen eigenen Anteil verdienen. Aber ich liebe es zu arbeiten. Und ich glaube, ich habe ungefähr 20 Stunden in einem Programmierjob gearbeitet, während ich studierte, weil wir so wenig tatsächliche Zeit in der Universität verbringen mussten, dass ich ziemlich viel Geld verdienen konnte, und ich habe mir von dem Geld diese riesige DVD-Sammlung gekauft.
Jonathan: Darauf gehen wir nicht ein.
Erik: Darauf gehen wir nicht ein. Ja, sorry, ich habe das meiste tatsächlich weggegeben und die behalten, mit denen ich sehr, sehr schöne Erinnerungen verbinde, aber das meiste habe ich weggegeben. Ich hatte irgendwann 400 oder 500 DVDs.
Jonathan: 400 bis 500 DVDs irgendwann. Oh, das ist lustig.
Erik: Es war nah dran. Es war nah dran. Ja. Aber während ich an der Universität war, fragte mich ein Freund von mir, derselbe, der damals der Programmierer war, als ich 10 war oder so. Er studierte mit mir an der Universität. Und er hatte einen Job und fragte mich: Hey, willst du in dieses Unternehmen kommen, um ein bisschen extra Geld zu verdienen? Also tat ich das. Und dann blieb ich im Grunde dort. Als ich mit meiner Universität fertig war, fragten sie mich, ob ich promovieren wollte. Aber ich las das so: Ihr habt etwas Interessantes für die Promotion gefunden, was übrigens pures Glück war, ich habe die Arbeit gemacht, aber es war Glück. Aber ich verstand das als: Wir wollen unsere Namen auf etwas stehen haben, das du schreiben wirst, damit wir eine Veröffentlichung bekommen. Dazu war ich nicht bereit. Und ich wollte nicht vier Jahre lang theoretisches Zeug machen. Und die ganze akademische Welt sprach mich nicht wirklich an. Ich fühlte mich viel wohler damit, einfach praktische Dinge in einem Unternehmen zu machen. Also blieb ich dort, wo ich arbeitete. Ich machte PHP und wir hatten ein großartiges Team. Ich glaube, außer vielleicht unserem aktuellen Team, habe ich nie in einem so vielfältigen und sehr fähigen Team gearbeitet. Aber wir wurden vom Management geführt und das war so schlecht. Es herrschte dort ein so unzufriedenes Tech-Umfeld. Es war einfach nicht gut, aber ich hatte trotzdem viel Spaß. Aber PHP ist nicht meine Lieblingssprache. Ich war also scharf auf C#. Ich bin ein C#-Fan, seit es noch C# 1.0 war. Es war damals ziemlich rau. Ich bestellte Bücher aus Amerika und musste zusätzliche Steuern zahlen, und am Ende war es ziemlich teuer, aber ich habe dieses Buch immer noch sehr, sehr oft benutzt. Und dann sagte ich, ich will C# beruflich machen. Also nicht nur nebenbei, und ich bewarb mich. Eigentlich auch für die Universität, aber es war keine Forschung oder so. Es war eher Support für die verschiedenen Teile der Universität. Und ich machte ungefähr sieben Jahre lang C#.
Jonathan: Und ich habe ungefähr sieben Jahre lang C# gemacht. Erzähl mir die Geschichte dort. Denn du hast als Freiwilliger oder als Contributor angefangen, richtig? Und von dort hast du dich dann hochgearbeitet.
Erik: Ja. Ja, als ich an der Universität arbeitete, waren sie sehr liberal darin, einem zu erlauben, Dinge zu studieren oder auf Konferenzen zu gehen usw. Irgendwann hörte ich von etwas namens funktionale Programmierung. Und ich dachte: Hey, ich weiß nicht, was das ist. Ich wusste, sie unterrichteten eine optionale Lektion an der Universität, aber ich hatte nichts damit gemacht. Und ich dachte, vielleicht sollte ich funktionale Programmierung lernen, vielleicht macht es Spaß. Und ich fand einen Kollegen, der mitmachen wollte. Also machten wir einen kostenlosen Kurs, einen Scala-Kurs auf Coursera; heute muss man dafür zahlen, aber damals nicht. Und er wurde von Martin Odersky unterrichtet, dem Autor von Scala, einer funktionalen Sprache, die wir auch auf Exercism haben. Und ich hatte viel Spaß beim Lernen der funktionalen Programmierung, es war zeitweise auch ein ziemlicher geistiger Kampf, weil es eine wirklich andere Art ist, über Dinge nachzudenken. Aber ich habe durchgehalten und es gefiel mir sehr. Und es gab dieses Forum, in dem man sich mit anderen Studierenden austauschen konnte, zum Beispiel über Übungen, die man nicht lösen konnte. Aber einige Leute fragten: Welche Ressourcen kann ich nutzen, wenn ich mehr über Scala lernen will? Und jemand erwähnte: Hey, probier Exercism aus, die haben diese großartige Sache, bei der du viele verschiedene Übungen machen kannst, wie kleine Rätsel. Und ich dachte: Hey, das klingt gut. Also trat ich bei und machte den Scala-Track. Und ich habe wirklich viel gelernt. Und das war mein Eintauchen in die Welt der funktionalen Programmierung. Also dachte ich, ich tauche vielleicht tief ein. Und ich ging zu Haskell. Und das war damals ein wirklich tiefer Einstieg für mich. Aber vieles davon war Exercism V1. Leute kommentierten einfach deinen Code, es gab kein formales Mentoring-System oder so. Aber die Haskell-Leute waren absolut fantastisch. Ich habe Haskell im Grunde von ihnen gelernt. Ich habe viel gegoogelt und einige wirklich seltsame Lösungen gefunden, ich habe seltsame Lösungen geschrieben, aber sie versuchten immer, mich zu etwas zu führen, das idiomatisches und schönes Haskell war. Und es war so eine großartige Erfahrung, dass ich dachte: Hey, das sollte ich wohl auch für andere tun. Vielleicht kann ich auch helfen. Ich habe immer gerne geholfen. Also dachte ich, ich mache C# und kommentiere einfach den C#-Code anderer Leute. Das gefiel mir. Und dann sah ich: Hey, der C#-Track hat, ich weiß nicht, 40 Übungen, und Haskell hat mehr. Warum ist das so? Also versuchte ich herauszufinden, warum das so ist. Und hey, man konnte Pull Requests an Exercism einreichen und neue Übungen hinzufügen. Und das war die Sache, die mich gepackt hat. Danach habe ich einfach jedes Wochenende Übungen gemacht und welche hinzugefügt. Und als ich mit C# fertig war, dachte ich: Hey, F#, lass uns F# machen. F# ist funktional. Und es gehört zum Microsoft-Ökosystem. Also mag ich beides. Lass uns meine Lieblingsdinge kombinieren. Und ich machte F# und machte dasselbe. Ich war F#-Maintainer, baute Übungen und ich liebte es sehr, sehr.
Jonathan: Ich liebte es sehr, sehr. Du hast eine Sprache, du sagst: Okay, ich probiere Scala. Ich habe mich da reingekniet, und dann hast du den tiefen Einstieg gemacht. Hat die Zeit, die du für jede Sprache gebraucht hast, um sie zu verstehen, mit der Zeit abgenommen? Denn jetzt hast du einige davon. Ich meine, wie hat sich das entwickelt?
Erik: Ja, ja. Nun, das funktioniert genauso wie bei natürlichen Sprachen. Wenn du Französisch lernst und Französisch gut kannst, dann ist Spanisch viel einfacher zu lernen, weil so viel gemeinsames Wissen da ist, etwa gemeinsamer Wortschatz, fast Dialekte. Genauso ist es beim Programmieren. Wenn du C kennst und zu C++ wechselst, gibt es viele neue Konzepte, aber es gibt auch viel, das genau gleich ist. Die ganze C-ähnliche Familie, was auch eines der Dinge ist, die ich am Programmieren mag: Es gibt so etwas wie Stammbäume. Es gibt einen Lisp-Zweig, einen ML-Zweig, einen C-ähnlichen Zweig. Und es ist fast wie in der Geschichte, wo man diese Genealogie in einem Stammbaum hat oder so. Ich habe das zu laut gesagt. Ja, das ist Haskell oder Prolog. Aber ich liebe auch diese Außenseiter, weil sie einzigartige Ideen haben. Das ist es, was ich meistens ausprobieren will. Also eine Sprache finden, die etwas anders macht, obwohl alle Programmiersprachen viel gemeinsames Wissen teilen. Sie haben alle boolesche Logik, und boolesche Logik ist einfach festgelegt, sie ist gegeben. Sie funktioniert überall gleich. Vielleicht musst du zwei Ampersands schreiben, oder du schreibst „and“ als Wort oder so, aber die Grundlagen sind gleich. Wenn du diese Grundlagen einmal hast und sie gut kennst, kannst du sie leichter auf andere Sprachen anwenden.
Jonathan: Es ist fast wie in der Geschichte, wo man diese Genealogie in einem Stammbaum hat oder so. Sprachen leichter. Du lernst programmieren und du beziehst deine eigene Erfahrung mit ein. Was sind einige der Verhaltensweisen und Dinge, die Leute tun, um programmieren zu lernen? Und ich bin sicher, es gibt Überschneidungen in vielen verschiedenen Disziplinen. Du hast erwähnt, dass du dich einfach verpflichtet und tief eingetaucht bist und dich mit der Sache gerungen hast, bis du sie verstanden hast. Gibt es andere Verhaltensweisen oder Dinge, die Leute tun, bei denen du gesehen hast, ja, die bringen sich in eine Position zum Lernen? Ja, wirklich gut.
Erik: Ähm, ich habe immer versucht, Leute zu ermutigen, etwas zu bauen, das sie gerne bauen würden. Als ich PHP lernte, baute ich etwas, das die IMDb-Top-250-Filme verfolgte, die ich gesehen hatte. Ich schaute viele Filme, also wollte ich jeden einzelnen davon überprüfen, und ich habe dabei viel PHP und MySQL gelernt, einfach weil ich etwas gebaut habe, das ich bauen wollte. Denn dann beißt du dich durch, du, wenn du auf ein Hindernis stößt, willst du nicht aufhören, sondern weitermachen, du willst es reparieren, du willst, dass es funktioniert. Und ich habe diesen Tipp mehreren Leuten gegeben, die angefangen haben zu programmieren, und er hat für sie gut funktioniert. Und heutzutage ist es so anders als zu der Zeit, als ich mit Stack Overflow usw. programmieren lernte. Und es gibt so viel Wissen, das man online finden kann. Es ist auch schwer, die richtigen Ressourcen zu finden. Und da finde ich, dass Exercism wirklich glänzen kann, weil wir fast wie Torwächter sein können, wir haben Leute in unserer Community, die wissen, was die richtigen Ressourcen sind. Und das ist eine Sache, bei der ich sehe, dass neue Leute kämpfen. Und auch, dass es dieses ... Es ist so, dass man fast nie Ressourcen bekommt, bei denen man wirklich von null anfängt. In der Regel ist das Exercism-Publikum so, dass man mindestens eine Sprache kennt. Und dann geht man zu weiteren Sprachen über oder gräbt tiefer in diese Sprache. Aber es ist nicht für Leute, die ... keinen Programmierhintergrund haben. Du weißt nicht, was eine for-Schleife ist. Du weißt nicht, was Variablen sind. Strings sind etwas völlig anderes in deinem Kopf. Ja, ich bekomme immer seltsame Blicke, wenn meine Frau sieht, dass ich über Strings rede. Hier in den Niederlanden ist das eine andere Sache.
Jonathan: Ja. Ich mache hier mal ein paar Verallgemeinerungen. In den letzten Jahren ist es wohl so, dass immer mehr Leute sich mit Coding und Programmieren auskennen. Früher gab es vermutlich eine kleinere Zahl von Leuten, die sich in diesem Bereich auskannten. Offensichtlich, da diese Branche wächst und wächst und das ziemlich schnell, gibt es natürlich viele Meinungen und Leute, die sich noch hineinarbeiten und herausfinden, wo sie bei bestimmten Dingen und Themen stehen. Dieses ganze Konzept von dem Hügel, auf dem man sterben würde, ist im Grunde: Welche Meinung vertrittst du, für die du wirklich kämpfen oder die du auf gesunde Weise verteidigen würdest? Aber was ist die eine Sache, die du verteidigen würdest, und du würdest sie festnageln und sagen: Von diesem Punkt gehe ich nicht weg, und du musst sie verteidigen. Was wäre das? Okay.
Erik: Ich habe viele dieser Meinungen, aber ich denke, die, die ich hier erklären möchte, ist: Du solltest mehr Sprachen lernen, als du bereits kennst. Probier also neue Sprachen aus, die du nicht kennst, und probiere Sprachen aus, die sehr anders sind als das, was du schon kennst. Es ist sehr einfach. Wenn du zum Beispiel C# kennst, bleib einfach bei C#, das ist in Ordnung. Aber wenn du die Zeit und den Willen findest, etwas anderes auszuprobieren, zum Beispiel F# oder, ich weiß nicht, probier Kotlin, mach einfach etwas anderes und schau, was die Unterschiede sind. Du wirst ein viel besserer Programmierer. Ich bin mir absolut zu 100 % sicher, dass das Erlernen von F# mich zu einem besseren C#-Programmierer gemacht hat, obwohl es unterschiedliche Sprachen mit unterschiedlichen Philosophien sind. Aber es gibt heutzutage so viel Überlappung zwischen Sprachen. Als Sprachen noch ziemlich jung waren, sah Lisp zum Beispiel überhaupt nicht aus wie C. Funktionale Sprachen waren also sehr anders als imperative Sprachen. Aber moderne Sprachen wie C#, wie Java, wie Kotlin, wie Rust zum Beispiel. Sie lassen sich auch von anderen Sprachen inspirieren, aber auch von funktionalen Sprachen. Als ich an der Universität war, ging der Running Gag immer so: Funktionale Programmierung ist großartig, aber niemand macht es. Aber das stimmt nicht mehr. Auch wenn du vielleicht nicht in einer funktionalen Sprache arbeitest, funktionale Sprachen sind überall. JavaScript hat viele funktionale Konzepte. C# hat fortgeschrittenes Pattern Matching, es gibt LINQ, es gibt so viel Funktionale. Und was du siehst, ist, dass Sprachen überall Konzepte aufgreifen. Es ist also nicht mehr so klar, welche Sprache eine funktionale Sprache ist und welche nur eine imperative Sprache. Es ist jetzt eher ein Mischmasch. Aber ich denke trotzdem, dass es viel zu gewinnen gibt, wenn du anfängst, eine neue Sprache zu lernen. Manche sagten: Lerne jedes Jahr eine neue Sprache. Ich versuche das. Ich kann mir vorstellen, dass das für Leute nervig ist und sie überfordert. Aber probiere mindestens eine andere Sprache aus und versuche, dass sie etwas außerhalb deiner Komfortzone liegt. Und ich verspreche dir, du lernst Dinge, du wirst viel lernen und insgesamt ein besserer Programmierer werden. Und auch für die Sprache, mit der du bereits arbeitest.
Jonathan: Und auch du arbeitest bereits mit ... Offensichtlich entwickeln Leute neue Sprachen, um einen bestimmten Bedarf zu decken. Und du sagst, das Imperative und das Funktionale verschmelzen ein wenig. Siehst du jemals eine Situation, in der Sprachen wegfallen und wir nur noch ein paar Kernsprachen übrig haben? Oder ist das naiv?
Erik: Nein, nein, ich glaube, die Leute haben dafür viel zu starke Meinungen. Es wird also immer neue Sprachen geben. Es wird jeden Tag neue Sprachen geben, was in Ordnung ist. Aber es wird Erschütterungen geben. Die beliebten werden sich am Ende wahrscheinlich durchsetzen. Ich sehe also nicht, dass Java oder C# so bald verschwinden. Aber zum Beispiel C oder C++ waren schon immer riesige Sprachen. Jetzt sehen wir Rust, das ein neuer Versuch ist, dieselben Probleme anzugehen, aber mit mehr Sicherheit. Also eingebaute Sicherheit. Und es ist eine fantastische Sprache, über die ich eigentlich mehr lernen sollte. Aber es ist interessant zu sehen, dass Rust sich jetzt langsam in denselben Bereich hineinarbeitet, dass Leute anfangen, es statt C oder C++ zu benutzen, was meiner persönlichen Meinung nach eine sehr gute Sache ist. Aber zum Beispiel in Linux kannst du jetzt deine Treiber in Rust schreiben. Also ... es wird immer C++ sein. Aber sie unterstützen jetzt das Schreiben von Treibern in Rust. Das war ein ziemlich großer Schritt. Ich denke also, es wird weiterhin Sprachen geben, denn man kann keine Sprache machen, die jedem einzelnen Zweck dient. Das ist auch einer der Gründe, warum ich denke, dass du mehrere Sprachen lernen solltest, weil unterschiedliche Situationen unterschiedliche Sprachen verlangen. Man kann versuchen ... es ist wie beim Behandeln von ... wie heißt es? Den Hammer wie eine Säge behandeln. Ich weiß nicht, wie der Ausdruck lautet.
Jonathan: Der Ausdruck? Es ist wie: Okay, du brauchst eine Säge, aber du hast nur einen Hammer. Was machst du? Okay.
Erik: Ja, ja, so etwas in der Art. Es ist ein neues, ich glaube, es geht um einen Nagel und einen Hammer, so was, aber ich bin nicht gut in englischen Sprichwörtern, aber ich verschone dich mit der niederländischen Version. Aber im Grunde: Wenn du nur C# kennst, gibt es vielleicht die Versuchung, C# für alles zu benutzen. Aber es gibt vielleicht bessere Sprachen für Systemprogrammierung oder, ich weiß nicht, KI als C#, auch wenn du es in C# machen kannst, heißt das nicht, dass du es solltest. Wenn du also mehr Sprachen kennst, bist du wahrscheinlich besser in der Lage, eine gute Wahl zu treffen, die besser zu der Domäne passt, in der du arbeitest.
Jonathan: Okay, es macht Spaß und es ist schön. Was die Exercism-Community betrifft: Welche Empfehlung würdest du der Exercism-Community diese Woche geben, von der du stark empfehlen würdest, dass sie sie ausprobiert, und es kann alles Mögliche sein, weißt du, geh spazieren. Probier einen Handstand. Ich weiß nicht. Siehst du, du kannst, und du kannst mehr als eine haben, wenn du willst, du kannst, du kannst schon ... Ich weiß schon, was ich sagen werde. Du kannst also drei Empfehlungen haben.
Erik: Es macht Spaß und es ist nützlich. Ich weiß schon, was ich sagen werde. Okay. Okay, das Erste, was mir einfällt, ist, den Tab „Dig Deeper“ auszuprobieren, den wir jetzt haben. Wir haben also angefangen, das neue Feature „Dig Deeper“ hinzuzufügen, wo man, sobald man eine Übung gelöst hat oder zumindest einmal daran iteriert hat, Ansätze sehen kann, also die verschiedenen Arten, wie eine Übung gelöst werden kann. Und so hat im Grunde jeder bei Exercism V1 gelernt, verglichen mit den hinzugefügten Kommentaren, indem man sich den Code anderer Leute ansah und schaute, wie sie es gelöst haben. So habe ich viel Haskell gelernt, abgesehen von meinen eigenen Kommentaren. Einfach zu sehen: Oh, so kann man es machen. Und dann probierst du es selbst aus und sagst: Hey, oh, das ist wirklich elegant, und ich kann mehr damit machen, und dann wendest du es auf andere Übungen an. Diese verschiedenen Wege zu finden, etwas zu tun, das erinnert fast an die Kunst des Programmierens, daran, wie man Dinge auf unterschiedliche Weise lösen kann. Es gibt also diese verschiedenen Ansätze. Ich habe Artikel und Ansätze zum Umkehren eines Strings geschrieben. Das ist eine der grundlegenden Interviewfragen, die man in IT-Interviews bekommt. Wie kehrt man einen String um? In C# gibt es ein paar verschiedene idiomatische Wege, aber sie sind unterschiedlich und haben unterschiedliche Performance-Eigenschaften, und einer davon ist sehr auf Performance ausgerichtet, aber weniger lesbar. Ich mag es, dass man auf der Website, sobald man es auf eine bestimmte Weise gelöst hat, sagen kann: Hey, es gibt auch andere Wege. Und das sind die Vorteile, es so zu machen. Und das sind die Kompromisse. Und es ist nicht nur, dass man den anderen Ansatz sehen kann, sondern wir versuchen auch, ein Einführungsdokument zu schreiben, das dir bei der Wahl hilft. Es gibt in der IT immer Kompromisse. Es gibt fast nie eine Lösung, die einfach die beste ist. Man kann Dinge immer anders schreiben. Also ist die lesbarste Lösung oft nicht die mit der besten Performance. Dir bei den Kompromissen zu helfen, die Kompromisse zu verstehen und eine Wahl zwischen verschiedenen Ansätzen zu treffen, das ist auch etwas, das wir mit dem Dig-Deeper-Tab versuchen. Und ich habe sie jetzt in meiner Freizeit geschrieben. Ich habe so viel Spaß daran, diese Informationen aufzuschreiben und sie mit Leuten zu teilen. Ich würde Leute wirklich ermutigen, sie entweder zu schreiben oder einfach Ansätze zu lesen. Ich weiß, nicht jede einzelne Übung hat welche. Wir haben mit diesem Feature erst vor einer Woche angefangen. Es wird sich also auf ein paar C#-Übungen beschränken, aber wir werden das stark ausbauen. Und wir nehmen Community-PRs für solche Dinge an. Und ich helfe dir gerne, sie zu schreiben und über die Ziellinie zu bringen, und du kannst dein Wissen über deine Sprache teilen. Ich denke, das ist eine Sache, die Leute immer mögen. Wenn sie eine Sprache mögen, möchten sie, dass andere sie auch mögen. Ansätze sind also eine sehr schöne Möglichkeit, zu zeigen, was deine Sprache kann. Schau es dir an. Ja.
Jonathan: Schau es dir an. Hast du noch andere für diese Woche?
Erik: Ähm, nun, auf die Gefahr hin, wie ein sehr Exercism-lastiger Mensch zu klingen: Ich mag das Exercism-Forum sehr. Eine Sache, die ich in meiner Karriere festgestellt habe, ist, dass es wirklich schwer ist, eine technisch denkende Gemeinschaft von Leuten zu finden, die fast ein sicherer Ort ist, an dem man Dinge diskutieren kann, ohne dass einem andere das Gefühl geben, dumm zu sein, oder dass man in Streit gerät oder angegriffen wird. Deshalb mag ich es, wie wir mit dem Forum versuchen, das zu einem sehr sicheren und freundlichen Ort für Leute zu machen, aber auch zu einem Ort, an dem man sehr gute Programmierer treffen kann. Leute, die sehr erfahren sind und großartige Einblicke in ihre Sprachen oder in die Programmierwelt haben. Und ich genieße es wirklich, einfach zu lesen, was andere geschrieben haben. Es gibt einen Thread darüber, was die Lieblings-Programmierbücher sind. Und ich habe schon ein paar Bücher auf meine Leseliste gesetzt, weil es einfach ... Ja, man stößt nicht auf jedes einzelne Buch. Aber andere haben sie gelesen. Man kann die Weisheit der Vielen nutzen, im Grunde.
Jonathan: ... die Leute haben ... dann können wir die Weisheit der Vielen nutzen, im Grunde. Dieser Thread, und ich bin sicher, es wird echtes Gold geben, das wir daraus ziehen können. Aber ich meine, weißt du, das ist wirklich cool, Eric. Ich denke, wenn du noch eine Empfehlung geben willst, bist du willkommen, aber sonst fangen wir einfach an, die Dinge ein bisschen zusammenzufassen. Aber irgendwelche weiteren Gedanken oder Kommentare? Ja, lass uns weiter teilen.
Erik: mhm Ja, das kommt in das Video. Nein, nicht wirklich. Ich habe versucht, eine dritte zu finden.
Jonathan: Und ich bin wirklich, ich versuche immer, eine dritte zu finden. In dem Fall zu viel. Aber Eric, vielen Dank für diese Zeit. Es war wirklich cool, deine Geschichte zu hören, zu hören, wie sie sich in die Tech-Welt übertragen hat. Ich habe besonders genossen, ein wenig über Geschichte zu hören, und vielleicht ist das etwas, worüber du nachdenken und mehr teilen könntest, wie Geschichte und Coding und all das sich irgendwann überschneiden. Aber vielen Dank. Es ist großartig, dich im Team zu haben, und ich habe definitiv eine Menge von dir gelernt und werde es weiter tun. Ein großes Dankeschön an dich, denn du hast 100.000 Reputationspunkte auf der Exercism-Website überschritten. Ich weiß, du wirst sagen, der Grund dafür ist, dass du geschummelt hast, aber das ist trotzdem, wir nehmen es einfach als bemerkenswerte Leistung. Also vielen Dank. Und ja, wenn du das hier hörst und Exercism noch nicht kennst, schau dir Exercism an, und ich bin sicher, du findest Eric irgendwo in diesem Bereich. Aber Eric, danke. Ich schätze es sehr. Und ich pausiere diese Aufnahme, und wir können danach noch mal sprechen, aber danke für deine Zeit. Und ich hoffe, du hattest genauso viel Freude wie ich. Das war großartig.
Erik: Gerne doch. Großartig. Ich hatte. Ich hatte. Vielen Dank.
Hör zu, lerne und lass dich von unseren Community-Mitgliedern inspirieren.