Hallo. Dieser Artikel ist Teil einer Reihe, in der wir mit professionellen Softwareentwicklern sprechen, sie fragen, wie es ist, ihren Lebensunterhalt mit dem Schreiben von Code zu verdienen, und dabei vielleicht ein paar Einblicke in die Softwareentwicklungsbranche gewinnen.
Heute reisen wir in das einfach wunderschöne Dänemark, um mit Embarcadero MVP Glenn Dufke zu sprechen . Glenn stellt oft fest, dass er die Vorurteile der Menschen von Delphi furchtlos hinterfragt, indem er die Vorteile der Sprache und die Art und Weise erläutert, wie sie alle Probleme lösen kann. Wenn ich nicht selbst Delphin-Champion wäre, könnte Glenn meine Meinung im Alleingang ändern und mich dazu bringen, damit zu programmieren! Sie werden Glenn bei verschiedenen Online-Events wie TCoffeeAndCode sowie in Infosec-Foren und einer beeindruckenden Reihe anderer Orte treffen.
Table of Contents
Glenn, danke für die Teilnahme an den Interviews 😊
Danke für die Einladung – ich war mit Arbeit überlastet, tut mir leid, dass es etwas gedauert hat!
Was wäre Ihre kurze Zusammenfassung der Abendnachrichten darüber, wer Sie sind und was Sie tun?
Ich betreibe mein eigenes Beratungsunternehmen GlennKonnekt, in dem ich Dienstleistungen in den Bereichen Softwareentwicklung, Elektronikdesign für Embedded-Lösungen und Industrieautomation anbiete.
Welche(s) Embarcadero-Produkt(e) verwenden Sie a) am häufigsten b) regelmäßig?
Delphi ist das, was ich tagsüber am häufigsten für die Dinge verwende, an denen ich arbeite.
Wie und/oder warum sind Sie Entwickler geworden?
Neben dem Schreiben von Software entwerfe ich auch Elektronik für Embedded- und Industrieautomatisierungs-Setups. Ich wollte wissen, wie man Dinge zum Laufen bringt, indem ich auch die Software schreiben kann.
Die Herausforderungen machen Spaß und es gibt viele Dinge, an die man denken sollte, und wenn man sowohl den Hardware- als auch den Softwareteil kennt, ist es einfacher, die Details zu berücksichtigen, die am Ende den Unterschied ausmachen.
Glauben Sie, dass Sie jemals aufhören werden, Entwickler zu sein? Wenn ja, was wäre als nächstes?
Nein, tue ich nicht. es ist ein sich ständig veränderndes Feld und es passiert ständig viel. Wenn ich jedoch zu etwas anderem wechseln würde, würde das wahrscheinlich einen kleinen Burgerladen eröffnen, der die besten hausgemachten Burger serviert, die man bekommen kann.
Was hat Sie dazu bewogen, Delphi/C++ Builder zu verwenden?
Es war irgendwie ein Zufall. Als ich anfangs ein wenig in die Programmierung einstieg, bevor ich ein viel klareres Verständnis davon hatte, worum es ging, passierte das auf dem Commodore 64 mit BASIC (eigentlich Microsoft BASIC 2.0, das von Commodore lizenziert wurde), als ich ungefähr 7 Jahre alt war. Gegen 9 habe ich HiSoft Pascal auf dem Amiga 500 ausprobiert, den ich von meinen Gramps geerbt habe. Trotzdem bin ich nicht ganz weit gekommen, da ich keine Handbücher oder ähnliches hatte, um mich zu führen.
Als ich etwas älter wurde, um 11 herum, war ich so fasziniert davon, was einen PC zum Laufen brachte und wie Software in die Maschine gelangte, um ihn zum Laufen zu bringen. Glücklicherweise hatte einer der Freunde meines Bruders gerade ein Informatikprogramm abgeschlossen, in dem ihnen Delphi beigebracht wurde (um 2001), und er besorgte mir eine Kopie der Testversion von Delphi 6, nicht lange nachdem ich eine Kopie von Delphi 7 Enterprise geschenkt bekam. Da wir zu dieser Zeit zu Hause kein Internet hatten (56k waren üblich, ISDN für die, die es sich leisten konnten und ADSL kam gerade auf den Markt, aber teuer), blieb ich bei der Hilfedatei hängen, die mich am meisten lehrte. Ich habe auch ein paar Bücher gefunden, darunter Mastering Delphi 7 von Marco Cantú .
Zwischendurch habe ich mir auch C/C++ angeschaut, weil mir gesagt wurde „das ist, was echte Programmierer benutzen“, aber es rechnete nicht in meinem Gehirn. Heute fällt es mir nicht schwer, andere Sprachen zu verwenden, aber Object Pascal ist die sauberste und ausdrucksstärkste von allen und die, die ich, wann immer ich kann, standardmäßig verwende. Glücklicherweise erleichtert C++ Builder das Schreiben oder Verwenden von C++-Bibliotheken im Vergleich zu anderen Umgebungen und Plattformen.
Wenn Sie einem Studenten, der über eine Karriere als Softwareentwickler nachdenkt, einen Rat geben könnten, welcher wäre das?
Holen Sie sich eine Kopie der neuesten Delphi-Version und eines der aktuellen Bücher über Delphi . Delphi ist ein unschätzbares Werkzeug, das gute Programmiergewohnheiten lehrt.
Tabulatoren… oder Leerzeichen?
Wenn wir über die Zähmung von Schlangen sprechen , sind es Tabs. Bei Object Pascal verwende ich auch Tabulatoren, allerdings eher aus Gründen der Formatierung und Konsistenz, da es dem Compiler egal ist. Das heißt, es ist mir wichtig, wie mein Code aussieht und sich präsentiert. Code ist für mich Kunst an sich und spiegelt bis zu einem gewissen Grad die Denkweise eines Entwicklers wider.
Was war Ihr schönster Tag als Entwickler?
Wenn Sie sehen, dass der Code, an dem Sie monatelang gearbeitet haben, gut zusammenkommt und wie beabsichtigt funktioniert. Natürlich ist es nicht fehlerfrei, aber sie sind schnell genug, um sie auszubügeln.
Was ist das Schlimmste daran, Entwickler zu sein?
Wenn Dinge nicht funktionieren oder es Rückschläge gibt, weil Informationen zu einer bestimmten Aufgabe fehlen.
Was ist der coolste Entwicklungstipp, den Sie kennen?
Verwenden Sie virtuelle Maschinen für alles und überladen Sie Ihr Gehirn nicht mit den neuesten [Code]-Bibliotheken, Sprachen und Tech-Stacks. Bleiben Sie bei einigen, wie Delphi, und werden Sie hervorragend darin – lehren und teilen Sie Wissen, dort wachsen Sie. Verfügen Sie über eine gute NAS-Sicherungslösung, die automatische Snapshots durchführen kann, wie TrueNAS mit dem ZFS-Dateisystem
Von zu Hause aus arbeiten, von einem Büro aus arbeiten, in einem offenen / geteilten Raum arbeiten? Was bevorzugen Sie und warum? Können Sie wählen?
Ich habe mein eigenes kleines Büro für mich. Ich bevorzuge diesen Stil, aber manchmal arbeite ich auch gerne in einem gemeinsamen Büro mit einem kleinen Team.
Erzählen Sie uns etwas Interessantes, von dem Sie glauben, dass wir es nicht kennen.
Ich bin ein großer Katzenmensch und mein Büroinspektor Caesar kommt oft zum Schmusen vorbei. Er ist eine Rettung aus dem örtlichen Tierheim. Ich habe viele, viele Nächte als Teenager damit verbracht, meine kompilierten Anwendungen, die ich geschrieben habe, zurückzuentwickeln [in Assemblersprache], um besser zu verstehen, was vor sich geht. Das hat mich auch dafür interessiert, wie Compiler funktionieren, und ich arbeite derzeit an meinem eigenen Forschungscompiler.
Wenn Sie mit dem Zauberstab „Reparieren der Tech-Industrie“ schwenken könnten, was würden Sie ändern?
Sicherzustellen, dass ElectronJS und alles, was JavaScript, nodejs und Rust betrifft, nur eine Fußnote in der Geschichte war. So krass es klingen mag, diese Technologien tragen in alarmierendem Tempo zu Sicherheitsproblemen bei und stapeln sich auf der Tech-Deponie, anstatt die Qualität der Software zu erhöhen, nimmt sie ab.
Waren Sie schon einmal im Silicon Valley? Wenn ja, wie war es? Wenn nicht, wollten Sie das schon immer?
Habe ich leider nicht. Der Flughafen, der dem Silicon Valley am nächsten war, ist der Flughafen San Francisco. Natürlich wäre es interessant, ihn wenigstens einmal zu besuchen, aber ich bin nicht mehr so begeistert vom Silicon Valley wie früher. Ich glaube, es gibt andere Bereiche in den USA, die technisch viel interessanter sind.
Haben Sie jemals berühmte/bekannte Tech-Figuren getroffen? Wer war es? Wie ist es gelaufen?
Ich habe verschiedene Persönlichkeiten aus der Delphi/C++ Builder-Community getroffen, Unternehmer mit mehreren Exits und Millionen auf dem Buckel. Am Ende des Tages sind sie menschlich und ich gehe so mit Freundlichkeit und Respekt auf sie zu. Zu den Leuten, die ich gerne treffen würde, ist natürlich Elon Musk und als Däne eines Tages Anders Hejlsberg.
Wenn Sie jemanden davon überzeugen könnten, Delphi oder C++ Builder in Betracht zu ziehen, welche Methode wäre Ihre Vorgehensweise?
Möchten Sie guten Code schreiben, der leicht zu lesen ist und gleichzeitig Code plattformübergreifend wiederverwenden kann? Dann ist Delphi das [tool to] goto.
Welches technische Produkt möchten Sie erfunden/entworfen haben und warum?
JavaScript – Aber ich hätte es wahrscheinlich anders genannt und wenn ich es entworfen hätte, hätte die Entwicklerwelt nicht so gelitten, wie sie es jetzt tut. Es ist derzeit eine der am häufigsten verwendeten (und missbrauchten) Skriptsprachen, um fortschrittliche Dinge im Browser zu entwickeln, und einige denken, dass es in Form von „nativen“ Anwendungen auf den Desktop und das Handy gehört – etwas, das meiner Meinung nach völlig falsch ist.
Das schlechte Sprachdesign wäre überhaupt nicht vorhanden gewesen, wenn die Syntax auf einer Teilmenge von Object Pascal basiert und das Schreiben von Anwendungen für den Browser viel einfacher gemacht hätte.
Das Web und die Browser können sich nicht viel weiterentwickeln, bevor wir JavaScript loswerden, das so stark und widersinnig klingt, wie es sich anhört. Google hat es mit der Dart-Sprache versucht, aber sie leidet auch unter schlechten Designentscheidungen und einer überwältigenden Syntax (Warum erkennen sie nicht, dass Sprachen mit geschweiften Klammern und Groß-/Kleinschreibung schlecht sind?). TypeScript ist eine vorübergehende Lösung für etwas, das bereits defekt ist, dasselbe gilt für WebAssembly, obwohl wir zumindest einen wasm-Compiler schreiben und Object Pascal als Sprache unserer Wahl verwenden können, um besseren Code zu schreiben und ihn trotzdem im Browser auszuführen. Allerdings ist WebAssembly noch relativ jung.
Wenn Sie Ihr Leben noch einmal leben könnten, würden Sie trotzdem Entwickler werden? Wieso den?
Es ist immer schwierig, diese Art von Fragen zu beantworten, da sie immer eine Reflexion des Jetzt enthalten. Ich würde wahrscheinlich, ja. Ich habe zu viele Ideen im Kopf.
Wie viele Kaffees trinken Sie am Tag und ist das genug?
Viel zu viel. Es ist nicht ungewöhnlich, dass ich mindestens einen Topf trinke, vielleicht auch zwei. Ich bin ein Kaffeekenner, ich schätze eine gute Tasse Kaffee und es ist mein Treibstoff, der zu Code wird.
Bist du ein Nachtschwärmer, der bis spät abends codiert, ein Morgenmensch, der früh aufsteht, oder hast du eine Art regulärer Sprechstunde?
Am liebsten arbeite ich abends und nachts. Es gibt Ruhe und ich kann über gute Lösungen nachdenken. Ich versuche tagsüber, einen regelmäßigen Zeitplan einzuhalten.
Haben Sie in Ihrer Karriere schon einmal eine „All-Nighter“ gemacht, um sich mit etwas auseinanderzusetzen, das unbedingt getan werden musste?
Ich habe, ein paar Mal. Manchmal müssen zeitkritische Fixes geliefert oder ein Zustrom von Ideen aufgekratzt werden. Ich versuche jedoch, nächtelange Nächte zu vermeiden.
Was ist die dümmste Frage, die Ihnen gestellt wird (keine davon zählt!)
Kennen Sie X oder Y – und die Person hat sich meinen Lebenslauf vorhin angesehen, wo er aufgeführt war.
Bieten Sie für die Arbeit mit Kunden an? Wenn ja, ohne etwas preiszugeben, was Ihnen unangenehm wäre, welche Art von Verfahren verwenden Sie?
Ich arbeite lieber stundenweise. Es kommt manchmal vor, dass Kunden nach Angeboten fragen, aber in diesem Fall versuche ich, meinen Arbeitsumfang sehr detailliert zu beschreiben.
Wie verhindern Sie, dass Kunden/Programmmanager/Manager „Feature Creep“ haben?
Ich sage, wir brauchen diese Version, bevor wir mit der Arbeit an weiteren Funktionen beginnen können. Was ist das Wesentliche, um es herauszuholen und spezifisch zu sein?
Hören Sie beim Programmieren Musik? Wenn ja, kannst du uns ein paar Tracks/Künstler/Performances nennen?
Ich habe eine breite Liste kuratierter Tracks, die ich beim Codieren höre. Von Chiptunes aus meiner eigenen Sammlung über moderne Tracks von Lukhash bis hin zu Liquid Drum and Bass von Metrik, London Elektricity, Wilkinson, Grafix, Seba, Netsky, Logistics, High Contrast, Degs, Pendulum, State of Mind, Apex.. Bitte stoppen Sie mich , ich kann ewig weitermachen! Die Schönheit der Musik im Allgemeinen, sie aktiviert bestimmte Bereiche in Ihrem Gehirn, je nachdem, was Sie erreichen möchten.
Verwenden Sie Methoden oder Techniken wie Agile, Scrum, Kanban, TDD? Wenn ja warum? Wenn nicht, warum?
Ein bisschen Kanban und mehr TDD, wie es Jens Fudge gelehrt hat
Verfolgen Sie Fehler? Wenn ja, was empfehlen Sie?
Ja auf jeden Fall! Und ich ermutige jeden dazu!
Ich verwende verschiedene Systeme, von Jira, Github Issue Tracker, Gitlab Issue Tracker, Bitbucket Issue Tracker. Ich denke, es ist wichtig, besonders wenn Bugs manchmal wieder eingeführt werden.
Es ist mehr als einmal in einigen der kleinen Teams passiert, in denen ich gearbeitet habe. Quellcodeverwaltungssysteme wie Git, Mercurial oder Subversion sind zusammen mit einem Problemverfolgungssystem der Schlüssel.
Hatten Sie schon einmal ein technisches Vorstellungsgespräch, das super glatt verlief – wenn ja, was raten Sie anderen? Wenn Sie ein katastrophales Vorstellungsgespräch hatten, was ist schief gelaufen und brauchen Sie eine Umarmung?
Sei einfach du selbst.
Ein guter Softwareentwickler:
Teilt ihr Wissen – Lehren ist der Schlüssel zum Wachsen und zur Pflege einer Gemeinschaft
Ein schlechter Softwareentwickler:
Neigt dazu, alles selbst zu machen und gibt sein Wissen nicht weiter
iPhone, Android, Sonstiges – und warum?
Ich habe beides, obwohl ich Android bevorzuge. Nun, das stimmt technisch nicht, da ich mich mit postmarketOS, einer ausgewachsenen Linux-Distribution für mobile Geräte, herumtreibe.
Für einen Entwickler: PC vs. Mac? Wieso den?
PC; Ich brauche etwas, das ich selbst erweitern und warten kann – Macs sind einfach überteuerte PCs in einer anderen Hülle.
Was ist das Einzige, wofür Sie gerne in Erinnerung bleiben möchten?
Delphi wieder in die Top 3 der angesehenen Sprachen und Entwicklungsumgebungen bringen 😊
Was ist der beste Entwickler-/Hacker-/Technik-/Geek-Film?
Ich habe mehrere Favoriten in dieser Kategorie: Hackers from 1995, Operation Takedown, Antitrust, The Matrix, The Lawnmower Man, Wargames, Tron Legacy, Johnny Mnemonic.
Kein Entwickler sollte gesehen werden ohne:
Eine Kopie von Delphi
Wenn ein Film über Ihr Leben gedreht würde, wen würden Sie gerne spielen?
Jonny Lee Miller
Haben Sie eine Website, die Besucher besuchen können, wenn ja, welche?
Blog: https://code-kungfu.com
Unternehmensseite: https://gkon.dk
Wenn Sie Twitter verwenden, wie lautet Ihr Twitter-Handle?
@B1tSchlumpf
Was ist Ihre bevorzugte Kontaktmethode von potenziellen Kunden?
Senden Sie eine E-Mail und vereinbaren Sie dann entweder ein Online- oder ein persönliches Treffen. Ich bevorzuge es, wenn Leute sich zuerst über irgendeine Form von Text erreichen.