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.
In unserem Interviewstuhl haben wir heute die einfach wundervolle Dalija Prasnikar. Dalija hat seinen Sitz in der wunderbar historischen und malerischen Stadt Zageb in Kroatien. Sie werden gleich mehr über Dalijas Entwicklungshintergrund erfahren, aber sie ist auch eine versierte Fotografin sowie eine angesehene Autorin einiger großartiger Programmierbücher. Sie können sehen, dass sie eine richtige Programmiererin ist – sie ist die einzige, die ihre Antworten bisher mit MarkDown zurückgegeben hat !
Table of Contents
Dalija, vielen Dank, dass Sie sich bereit erklärt haben, an den Interviews teilzunehmen!
Dankeschön 🙂
Was wäre Ihre kurze Zusammenfassung der Abendnachrichten darüber, wer Sie sind und was Sie tun?
Softwareentwickler, Berater, Buchautor, Embarcadero MVP. Absturz der Software anderer Leute und Schreiben meiner eigenen seit ’85.
Welche(s) Embarcadero-Produkt(e) verwenden Sie a) am häufigsten b) regelmäßig?
Delphi natürlich.
Wie und/oder warum sind Sie Entwickler geworden?
Als Kind wollte ich Astronaut werden. Ich interessierte mich wirklich für Weltraum, Astronomie, Wissenschaft… und alles, was damit zu tun hat. Als ich ungefähr neun war, war die erste Sci-Fi-Serie, an die ich mich erinnere, Blakes 7 . Und mein Lieblingscharakter dort war Kerr Avon. Ein hochintelligentes, sarkastisches Computergenie. Ganz am Anfang der Serie sagte er: „Wer den Computer steuert, steuert das Schiff“, und dies war der entscheidende Moment, als sich aus „Ich möchte Astronaut werden“ zu „Ich möchte die Computer steuern“ entwickelte.
Natürlich ist die Kontrolle der Computer und des Schiffes im wirklichen Leben als Entwickler und mit dem Wissen, was ich jetzt weiß, eine Illusion. Häufiger ist es umgekehrt. Das ist auch der Grund, warum ich nie voll und ganz auf Technik vertraue.
Glauben Sie, dass Sie jemals aufhören werden, Entwickler zu sein? Wenn ja, was wäre als nächstes?
Ich könnte wahrscheinlich ein Bauer sein … aber ich wäre ein Bauer, der als Hobby Code schreibt. [ Ich auch! Wir sollten beide mit dem Entwicklerkollegen Alister Christie sprechen – er lebt in einem Lifestyle-Block – IanB]
Was hat Sie dazu bewogen, Delphi/C++ Builder zu verwenden?
Ich habe Turbo Pascal in der High School gelernt und es wurde schnell zu meiner Lieblingssprache. Es konnte alles, was C tun konnte, und es war viel schneller – nicht nur beim Schreiben von Code, sondern auch beim Kompilieren.
Ich begann meine Karriere als IT-Journalist bei BYTE Kroatien (einem McGraw-Hill-Lizenznehmer) und als Redakteur der Zeitschrift MIPS Computer. Mit dem Aufkommen des Internets und des Online-Publishing in den 90er Jahren wechselte ich zur Webentwicklung. Ich habe Java und JavaScript verwendet, bevor ich anfing, Delphi zu verwenden. Ausgehend von Turbo Pascal, das ich die ganze Zeit auch zum Schreiben verschiedener Dienstprogramme und Webseitengeneratoren verwendet hatte, war Delphi eine natürliche Wahl für die Entwicklung von Windows-Anwendungen.
Woran arbeitest du gerade?
Wie Sie wissen, habe ich bereits zwei Delphi-Bücher geschrieben: Delphi Memory Management und Delphi Event-based and Asynchronous Programming.
Ich schreibe gerne Bücher. Es ist eine Gelegenheit, Wissen zu teilen, aber auch eine Gelegenheit zu lernen. Egal wie viel Sie über ein Thema wissen, es gibt immer einige dunkle Ecken, die Sie beleuchten müssen, um es anderen richtig zu erklären.
Nachdem ich den zweiten geschrieben hatte, war es ziemlich einfach, in den fünften Gang zu schalten, also schreibe ich weitere Delphi-Bücher. Ich habe noch keine weiteren Details zu teilen.
Aber ja, es gibt neue Delphi-Bücher am Horizont.
Welche Programmiersprache würden Sie empfehlen, zuerst zu lernen?
Englisch 🙂
Wenn Sie einem Studenten, der über eine Karriere als Softwareentwickler nachdenkt, einen Rat geben könnten, welcher wäre das?
Beginnen Sie mit dem Lernen, indem Sie Bücher lesen. Informieren Sie sich zuerst über Konzepte und Algorithmen. Sprachen sind zweitrangig. Sie sind alle durch ihre Umsetzung begrenzt, und das Erlernen von Konzepten durch eine Sprache führt häufig zu Missverständnissen. Da verschiedene Sprachen dieselben Konzepte auf unterschiedliche Weise implementieren, funktionieren die Codierungsmuster, die normalerweise in einer Sprache verwendet werden, in einer anderen nicht unbedingt gut.
Lass dich nicht von den Regeln regieren. Gute Praktiken und Regeln sind eher Richtlinien als fest codierte Regeln. Sie sollen Entwicklern bei allgemeinen Aufgaben helfen. Sobald eine Regel zur Last wird, sollten Sie aufhören, sie anzuwenden. Dies ist jedoch ein zweischneidiges Schwert, und die Leute interpretieren dies ziemlich häufig als Erlaubnis, überall Regeln zu brechen, weil sie die Gründe für eine bestimmte Regel nicht vollständig verstehen. Außerdem entwickeln sich mit der Zeit Regeln und Praktiken aus dem einen oder anderen Grund, und was einst eine gute Praxis war, ist möglicherweise nicht mehr so gut.
Einfacher Code ist besser als cleverer Code. Wenn Sie mit einfachem Code nichts erreichen können, können Sie – und nur dann – clevere Tricks anwenden. Es ist wichtig aufzuschreiben, was cleverer Code macht und warum, denn das vergisst man schnell. Und natürlich ermöglicht das Erklären anderen Personen, Ihren Code leichter zu verstehen.
Erfahrung wird Sie nicht davon abhalten, idiotischen Code zu schreiben und dumme Fehler zu machen. Erfahrung hilft Ihnen, solche Fehler eher früher als später zu erkennen und anzuerkennen, und das ist der erste Schritt, um sie zu beheben.
Höre nie auf zu lernen.
Entwicklermotto
Entwickler sind keine Jedi-Meister. „Tun. Oder nicht. Es gibt keinen Versuch“, funktioniert nicht. Es lautet: „Wenn Sie zuerst keinen Erfolg haben, versuchen Sie es, versuchen Sie es, versuchen Sie es … versuchen Sie es, versuchen Sie es erneut.“
Tabulatoren… oder Leerzeichen?
Räume.
Einrückungsstil
Allman für geschweifte Sprachen, GNU für Pascal. Der Unterschied besteht in der Blockeinrückung, wobei begin..end eine zusätzliche Einrückung für eine sauberere Trennung benötigt.
Was war Ihr schönster Tag als Entwickler?
Es gab viele… es ist schwer, einen auszuwählen.
Was ist das Schlimmste daran, Entwickler zu sein?
Sie hören nie auf, in Ihrem Kopf zu programmieren.
Was ist der coolste Entwicklungstipp, den Sie kennen?
Wenn Sie nicht weiterkommen, nehmen Sie ein Bad, gehen Sie spazieren, schlafen Sie… tun Sie alles , was Sie entspannt.
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?
Von zuhause aus arbeiten. Komfortablere Einrichtung. Es verschwendet keine Zeit beim Pendeln. Ihre eigene Toilette. Sie können die Pandemie überleben, ohne Ihre Gewohnheiten zu ändern.
Erzählen Sie uns etwas Interessantes, von dem Sie glauben, dass wir es nicht kennen.
Die erste Turbo Pascal-Version, die ich in der High School verwendet habe, lief auf CP/M. Ich war auch in der ersten Generation von High-School-Schülern, die COBOL nicht in ihrem Lehrplan hatten.
Wenn Sie einen „Reparatur der Tech-Industrie“-Zauberstab schwenken könnten, was würden Sie ändern?
Ich würde eine größere Byte-Fledermaus erstellen! (Für diejenigen, die nicht wissen, wovon ich rede, es gab in den 80er Jahren eine Art Gummi-Baseballschläger, mit dem man seinen blöden Computer schlagen konnte, ohne etwas zu zerbrechen.)
Wenn Sie jemanden davon überzeugen könnten, Delphi oder C++ Builder in Betracht zu ziehen, welche Methode wäre Ihre Vorgehensweise?
Was mir an Turbo Pascal und später Delphi schon immer gefallen hat, ist die Tatsache, dass es sich um eine ziemlich universelle Sprache handelt – nicht nur in Bezug auf die Entwicklung unterschiedlichster Anwendungen, sondern auch in Bezug auf die Möglichkeit, auf sehr unterschiedlichen Abstraktionsebenen zu programmieren .
Sie können es als RAD-Tool für schnelles Prototyping und Entwicklung verwenden. Sie können Frameworks mit hoher Abstraktion schreiben und verwenden, in denen Sie mit nur wenigen Codezeilen Dinge erreichen können. Und dennoch können Sie bis zur Betriebssystemebene vordringen und direkt mit den Betriebssystem-APIs interagieren. Auf der Windows-Plattform können Sie sogar noch tiefer gehen und direkt Assemblercode schreiben.
Das Montageteil gefällt mir sehr gut. Heutzutage benutze ich es nicht so oft, aber für die seltenen Gelegenheiten, die ich tue, bin ich sehr froh, dass es da ist.
Ich bin mir nicht sicher, ob dies ein sehr überzeugendes Argument wäre. Vielleicht ist dies ein Relikt der Vergangenheit, als die Fähigkeit, auf die Montageebene zu gehen, ein extremer Vorteil war, aber ich liebe diese Flexibilität einfach.
Welches technische Produkt möchten Sie erfunden/entworfen haben und warum?
Als ich ein Kind war, dachte ich, nachdem ich Blakes 7 gesehen hatte , es wäre cool, ihren Computer, Zen, in der Uhr zu haben, also hatte ich zahlreiche Zeichnungen, die zeigten, wie diese Uhr aussehen würde. Zählt das? [ DEFINITIV! – IanB, ich bin auch ein Fan von Blakes 7!!! ]
Wenn du dein Leben noch einmal leben könntest, würdest du immer noch Entwickler werden? Wieso den?
Jawohl. Steuerung des Schiffes…
Wie viele Kaffees trinken Sie am Tag und ist das genug?
Eine Menge. Es ist nie genug.
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?
Immer wenn die Inspiration zuschlägt!
Haben Sie in Ihrer Karriere schon einmal eine „All-Nighter“ gemacht, um sich mit etwas auseinanderzusetzen, das unbedingt getan werden musste?
Jawohl. Aber nicht annähernd so oft wie zu meiner Zeit im Verlagswesen. Mein längster Lauf dort war rund 30 Stunden.
Beschreiben Sie einige andere Dinge, die Sie in Ihrer Karriere gemacht haben und die den Lesern einen Hintergrund dazu geben könnten, was einen Entwickler ausmacht.
Ich bin auch Fotograf. Ich denke…🙂
Was ist die dümmste Frage, die Ihnen gestellt wird (keine davon zählt!)
Wie lange wird es dauern?
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?
Stundenhonorar. Feste Gebühren funktionieren nur für die Anpassung von „Vorlagen“, wenn Sie ein Produkt haben, das angepasst werden kann und wo die Anpassung aus sehr spezifischen, bekannten und vorhersehbaren Schritten besteht.
Wie verhindern Sie, dass Kunden/Programmmanager/Manager „Feature Creep“ haben?
Indem du sagst, wie lange es dauern würde, bis es fertig ist.
Beschreiben Sie eine typische Programmiersitzung für Sie. Wie fängt es an? Machst du Pausen? Hast du irgendwelche Rituale/Gewohnheiten, die es begleiten?
Hängt davon ab, was ich tue – ob ich neuen Code schreibe, Fehlersuche oder ein Buch schreibe. Das häufigste Thema ist, dass ich viel googele und viel Dokumentation lese.
Beim Schreiben mache ich Pausen, weil man oft innehalten und nachdenken muss, bevor man etwas schreibt. Eine kurze Pause gibt Ihnen die Möglichkeit, umzudenken und sicherzustellen, dass Sie nicht in die falsche Richtung gehen.
Auf der anderen Seite mag das Debuggen keine Pausen, besonders wenn Sie einen schwer fassbaren Heisenbug verfolgen. Sie müssen oft riesige Mengen an Codelogik in Ihrem Kopf im Auge behalten, und jede Ablenkung oder Unterbrechung wird all das leicht löschen und Sie müssen von vorne beginnen.
Hören Sie beim Programmieren Musik? Wenn ja, kannst du uns ein paar Tracks/Künstler/Performances nennen?
Manchmal. Filmthemen, 80er Pop und Rock… Als meine Kinder klein waren und ich gleichzeitig gearbeitet und gebabysittet habe, gehörte das dazu, den ganzen Tag Musik von Age of Empires oder Settlers IV zu hören.
Verwenden Sie Methoden oder Techniken wie Agile, Scrum, Kanban, TDD? Wenn ja warum? Wenn nicht, warum?
Kurze Antwort: Ja. Es hängt vom Projekt ab.
Lange Antwort: Das ist eine abwegige Frage. [ Nun, gesichtet! 😈– IanB ]
Jede der genannten Techniken hat viele Varianten (oder zumindest wenden die Leute sie freistilig an). Wenn Sie zu einem der oben genannten Punkte Ja sagen, bedeutet dies nicht, dass Sie einem bestimmten Prozess buchstabengetreu folgen. Und es bedeutet nicht, dass die Verwendung eines über dem anderen besser ist. So wie gute Codierungspraktiken nicht ohne Weiteres existieren und ihr Hauptzweck darin besteht, Ihnen zu helfen, das Endziel zu erreichen, sind auch Projekt- und Qualitätsmanagementpraktiken nur ein Teil desselben Prozesses. Wenn der Prozess zu seinem eigenen Zweck wird, haben Sie die Fähigkeit verloren, Ihr endgültiges Ziel zu erreichen: funktionale, wartbare und qualitativ hochwertige Software fertigzustellen.
Deshalb hasse ich es, die Teile des Prozesses zu benennen, weil er nie in Stein gemeißelt ist und sich den Projekt- und Teamanforderungen anpasst.
Verfolgen Sie Fehler? Wenn ja, was empfehlen Sie?
Nein, ich töte sie auf der Stelle. Manchmal werden sie dadurch zu Zombie-Bugs.
Ein guter Softwareentwickler:
Ein stumpfer Entwickler, sonst machen sie eine verdammte Sauerei.
Ein schlechter Softwareentwickler:
Ich, gestern 🙂
iPhone, Android, Sonstiges – und warum?
Keine Telefone. Zu viel Ablenkung.
Für einen Entwickler: PC vs. Mac? Wieso den?
PC, weil Turbo Pascal und Delphi auf PCs laufen. Heutzutage verwende ich Mac für die iOS- und macOS-Entwicklung, aber es ist mir nie wirklich gewachsen. Ich sage nicht, dass Windows perfekt ist – ganz im Gegenteil –, aber ich bin mehr an seine Macken gewöhnt. Ich kann mich nicht an die unter macOS gewöhnen.
Was ist das Einzige, wofür Sie gerne in Erinnerung bleiben möchten?
Mein Hut! 😛
Was ist der beste Entwickler-/Hacker-/Technik-/Geek-Film?
Wie wäre es mit dem besten Entwicklerbuch? Per Anhalter durch die Galaxis .
Wenn es um Filme geht, würde ich wahrscheinlich Zurück in die Zukunft und Star Wars: Eine neue Hoffnung sagen , aber Sci-Fi-Serien sind die besten. Es ist schwer, sie zu bewerten, denn jeder, den ich mag, ist ziemlich einzigartig: Blake’s 7 , Battlestar Galactica , Star Trek , Stargate …
Kein Entwickler sollte gesehen werden ohne: _____________________________
Ein Computer!
Wenn ein Film über Ihr Leben gedreht würde, wen würden Sie gerne spielen?
Angelina Jolie aus dem Jahr 1995. 😛
Haben Sie eine Website, die Besucher besuchen können, wenn ja, welche?
https://dalija.prasnikar.info/
Wenn Sie Twitter verwenden, wie lautet Ihr Twitter-Handle?
@ dalijap