Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Qu’est-ce que ça fait d’être un développeur David Cornelius ?

dc hero image

Bonjour. Cet article fait partie d’une série où nous discutons avec des développeurs de logiciels professionnels, leur demandons ce que c’est que d’écrire du code pour gagner leur vie, et peut-être obtenons-nous quelques aperçus de l’industrie du développement de logiciels en cours de route.

Notre invité aujourd’hui est un MVP Delphi et auteur David Cornelius. David se décrit comme « un programmeur de bout en bout ». Il dirige une petite entreprise de développement de logiciels depuis son bureau à domicile et semble avoir raison de ses priorités lorsqu’il dit « J’aime la famille, la musique, les jeux de société de stratégie et les grands espaces ». Vivant, comme il le fait, à mi-chemin entre l’océan Pacifique et les montagnes Cascade, David dit que cela signifie qu’il se voit offrir une grande variété d’endroits à explorer, que ce soit à moto ou en randonnée à partir d’un terrain de camping.

Table of Contents

Salut David, merci de m’avoir parlé aujourd’hui

Eh bien, c’est très agréable de vous rencontrer, Ian !! 

David, dans sa pose d' »audition pour James Bond »

Quel(s) produit(s) Embarcadero utilisez-vous a) le plus b) régulièrement ?

a & b : Delphi XE, 10.4, 11. Tous les jours.

Comment et/ou pourquoi êtes-vous devenu développeur ?

Quand j’étais à l’école primaire, ma matière préférée était les mathématiques. J’avais une calculatrice TI (Texas Instruments) programmable et je rivalisais avec mon grand-père sur les calculs les plus complexes que nous puissions faire dans ses 32 étapes limitées.

Le petit lycée que j’ai fréquenté avait un TRS-80 avec un « lecteur » de cassette pour le stockage, mais j’étais impatient d’attendre qu’il soit chargé/enregistré et avec ses nombreuses tentatives et erreurs, j’ai donc perdu tout intérêt. Mais plus tard, lorsque l’école a installé son premier laboratoire informatique avec trois Apple II, j’ai passé tout le temps disponible à m’enseigner AppleSoft BASIC. Quand je suis arrivé à la fin du livre de didacticiel et que j’ai réalisé qu’un de mes amis écrivait des jeux qui n’auraient pas pu être réalisés en BASIC seul, je savais qu’il y avait tellement plus à apprendre – j’étais devenu accro à la programmation à ce moment-là ! La spécialisation en informatique à l’université était la prochaine étape évidente et le reste, comme on dit, appartient à l’histoire.

Pensez-vous que vous cesserez un jour d’être développeur ? Si oui, quelle serait la prochaine?

Non, j’ai trop d’idées pour m’arrêter un jour, même si je vends ma maison et parcoure le pays en camping-car, je programmerais quand même une partie du temps.

Qu’est-ce qui vous a poussé à utiliser Delphi/C++ Builder ?

Le collège m’a exposé à plusieurs langages de programmation différents. J’ai étudié l’assemblage sur trois processeurs différents, apprécié la structure de FORTRAN, je me suis ennuyé avec COBOL et j’ai abandonné le cours, j’ai étudié des langages de niche comme SNOBOL et j’ai appris le C en utilisant le Let’s C de Mark William . Mais le cours le plus utile était celui qui enseignait les concepts de programmation généraux à l’aide d’un outil peu coûteux qui nous permettait d’éditer, de compiler et de déboguer le tout dans un seul IDE, un nouveau concept du milieu des années 80. C’était Turbo Pascal.

Plus tard, lors de mon premier travail de programmation à long terme, j’ai eu l’opportunité de démarrer une toute nouvelle application et j’ai pu choisir l’outil de programmation que je voulais. Je suis allé avec Turbo Pascal, puis à la version 4, car je savais déjà comment l’utiliser, je pouvais passer à l’assemblage si j’en avais besoin (ce que je faisais en fait de temps en temps), et ça commençait à devenir populaire – c’était l’endroit logique commencer.

Au fur et à mesure que l’application grandissait au fil des ans, j’ai déplacé la base de code vers Borland Pascal, pris en charge des projets auxiliaires dans d’autres langages de programmation et même écrit des choses à l’aide de Borland Turbo C++. Mais j’étais plus productif avec le langage Object Pascal, c’est-à-dire jusqu’à ce que j’essaie de faire de la programmation Windows 3.1 avec la bibliothèque Object Windows (OWL). Lorsque Delphi est sorti, j’ai joyeusement abandonné OWL en faveur de cet incroyable nouvel outil de programmation basé sur des composants. Encore une fois, c’était le point de départ logique, cette fois pour créer des applications Windows.

David, l’air convenablement satisfait

Si vous pouviez donner un conseil à un étudiant qui envisage une carrière en tant que développeur de logiciels, quel serait-il ?

Posez-vous ces questions :

Si vous pouvez répondre oui à toutes (ou du moins à la plupart) d’entre elles, il y a de fortes chances que vous puissiez prospérer en tant que développeur. Il est très important de profiter du processus de création de logiciels pour une carrière durable, alors suivez des cours (soit des tutoriels en ligne gratuits, soit par le biais d’une éducation formelle) le plus tôt possible pour vous donner une idée de ce que c’est, puis évaluez cela par rapport à d’autres intérêts.

J’aime beaucoup jouer de la musique, mais je me suis rendu compte que ce ne serait pas quelque chose que je voulais étudier et passer 8 à 10 heures par jour à faire, sinon l’amour serait remplacé par de la corvée. Cela n’a pas été le cas avec le développement de logiciels pour moi. Tu dois te connaître toi-même !

Tabulations… ou espaces ?

Je suis avec Frank Lauter ! [Les espaces]

Quelle est la meilleure journée que vous ayez vécue en tant que développeur ?

Être capable de résoudre un problème ou d’ajouter une fonctionnalité qui rend un client vraiment heureux est le plus grand sentiment, mais une journée qui me vient à l’esprit comme particulièrement satisfaisante n’était quelque chose que pour moi. Au début des années 90, la plupart des PC sous DOS n’avaient pas de bouton de réinitialisation, ce qui obligeait l’utilisateur à s’éteindre, à attendre que le disque dur s’arrête de tourner, puis à se remettre sous tension si un programme plantait. Ils étaient également livrés avec un seul haut-parleur intégré qui restait parfois bloqué si un programme plantait au mauvais moment, ce qui nécessitait le douloureux processus d’arrêt / d’attente / de redémarrage pour mettre fin au cri aigu agaçant. Cela s’est produit une fois de trop pour moi, alors j’ai écrit un programme rapide Turbo Pascal qui a simplement éteint le haut-parleur. C’était un programme d’une ligne, qui fonctionnait parfaitement la première fois, et je l’ai appelé SHUTUP et l’ai mis sur le PATH afin que je puisse le taper à tout moment à partir de l’invite DOS.

Qu’est-ce qu’il y a de pire dans le fait d’être développeur ?

L’une des choses les plus frustrantes d’être un développeur est de rencontrer un problème que vous ne pouvez pas comprendre et où vous perdez des heures voire des jours à essayer de le contourner pour réaliser que c’est un problème très simple ou un bogue qui ne fait que soulever sa tête laide. pour votre disposition particulière de matériel.

Quelle est l’astuce de développement la plus cool que vous connaissiez ?

Juste un? Il y a tellement de choix! Je pense que le meilleur conseil que je donnerais serait d’aider ceux qui sont dans l’éditeur Delphi toute la journée et c’est d’ apprendre, d’utiliser et de personnaliser les modèles dynamiques . Cela peut prendre un peu de courbe d’apprentissage et de pratique pour devenir bon et rapide, mais taper et coder rapidement est un énorme gain de productivité.

Travailler à domicile, travailler depuis un bureau, travailler dans un espace ouvert/partagé ? Que préférez-vous et pourquoi ? Arrivez-vous à choisir ?

Si je travaillais pour une entreprise qui décidait de passer à un open space, je démissionnerais. Je ne peux pas imaginer qu’un développeur puisse se concentrer assez longtemps pour faire quoi que ce soit dans un environnement où il n’y a pas de murs et où tout le monde peut voir/entendre tout le monde.

J’aime travailler à domicile et être mon propre patron. Les employeurs comprennent rarement les avantages en termes de productivité de fournir un bureau et une chaise confortables ou d’avoir un équipement décent. Il n’y a pas deux personnes exactement identiques, mais la plupart des entreprises essaient toujours d’intégrer tout le monde dans un bureau « standard ».

Je suis plus grand que la moyenne, j’ai donc une chaise plus haute que la moyenne, j’ai construit mon bureau très haut et j’utilise des rehausseurs d’écran pour que ma posture soit droite et que je n’aie pas à baisser les épaules ou à regarder mon écran vers le bas. ce qui causerait des tensions au cou et au dos.

Mais parfois, je travaille sur mon ordinateur portable dans un café ou un parc où je règle tout ce qui m’entoure et me concentre sur une seule tâche pendant une courte période de temps.

Dites-nous quelque chose d’intéressant que vous pensez que nous ne saurons peut-être pas.

J’ai pris 7 ans de cours de piano à l’école primaire et au lycée, et j’ai adoré ça, j’ai été assez bon pour gagner un petit concours au lycée un an. J’ai aussi joué de la trompette, du cor français, du baryton et du tuba au lycée à plusieurs reprises (et j’ai chanté dans la chorale). Je joue encore du tuba la plupart des années à Tuba Christmas à Portland , Oregon, et j’apprécie vraiment ma dernière acquisition, une guitare basse, que j’utilise pour accompagner des groupes de louanges dans une église locale.

Y a-t-il un site de l’industrie technologique que vous aimeriez visiter ?

Je pense que si j’avais eu la chance de visiter le siège social de Borland à l’époque, ça aurait été cool mais je n’ai pas un désir ardent de voir autre chose que peut-être de visiter des endroits sur lesquels j’ai lu pour le contexte historique .

Avez-vous déjà rencontré des personnalités technologiques célèbres/bien connues ? Qui était-ce? Comment c’était?

En tant que coordinateur d’ ODUG depuis 2000, j’ai eu le plaisir de rencontrer plusieurs personnes bien connues de la communauté de programmation Delphi faisant des visites de groupes d’utilisateurs faisant la promotion de nouvelles versions de Delphi ou de composants tiers. Ceux-ci incluent (sans ordre particulier), John Kaster, David « I » Intersimone, Anders Ohlsson, Sarina DuPont, Jim McKeeth et Ray Konopka. La plupart des présentations se sont déroulées sans accroc, mais la seule fois où David je suis venu à Portland, l’auditorium que nous utilisions avait changé ses politiques concernant l’utilisation de l’équipement audiovisuel à mon insu, ce qui nous empêchait d’utiliser le rétroprojecteur et le projecteur ; nous avons dû nous rassembler autour de son ordinateur portable pour voir ce qu’il partageait – cela ne s’est pas bien passé et je me suis senti mal pour tout le monde. Nous avons changé de lieu peu de temps après. [JEla première règle des présentations d’anB – ça ira mal, toujours, et plus vous planifiez, plus ça ira mal ]

David est un autre développeur avec des montagnes derrière lui – je pensais que nous, les développeurs, étions censés avoir peur de la lumière du jour ? 😉

Si vous pouviez convaincre quelqu’un d’envisager Delphi ou C++ Builder, quelle serait votre méthode, comment le feriez-vous ?

Je leur apprendrais des constructions de programmation générales en utilisant du pseudocode, puis je les surprendrais en leur faisant savoir qu’ils viennent d’apprendre Delphi !

Si vous pouviez agiter une baguette magique « réparer l’industrie technologique », que changeriez-vous ?

J’empêcherais les sociétés de médias sociaux d’utiliser des données personnelles à des fins lucratives et d’utiliser des algorithmes mystérieux pour contrôler les publications que vous voyez.

Quel produit technologique souhaiteriez-vous inventer/conçu et pourquoi ?

Facebook. Non pas parce que j’ai envie d’être un milliardaire, mais parce que je pense que la plate-forme est un excellent moyen de rester en contact avec ma famille et mes amis, mais je déteste le fait que l’entreprise profite d’en savoir autant sur moi et d’ajuster les messages que je publie. plus susceptibles de voir (référez-vous à ma réponse « baguette magique »).

Si vous pouviez revivre votre vie, deviendriez-vous quand même développeur ? Pourquoi?

Probablement, j’aime vraiment ça. Mais j’ai sérieusement pensé à l’architecture – je pense que cela aurait été tout aussi amusant, stimulant et suffisamment varié pour garder mon intérêt pendant longtemps.

Combien de cafés buvez-vous par jour et est-ce suffisant ?

S’il y a un pot de café frais dans la maison, j’en boirai une ou deux tasses. Sinon, je vais généralement très bien. Je fais rarement tout mon possible pour chercher de la caféine. De temps en temps, cependant, il y a ces petits matins après une nuit tardive où l’équation change !

Êtes-vous un faucon de nuit qui code jusque tard dans la soirée, une personne du matin qui se lève tôt et juste avant ou respectez-vous une sorte d’heures de bureau régulières ?

J’avais l’habitude de coder tout le temps jusqu’aux petites heures de la nuit, mais plus tellement. Non seulement le sommeil m’est plus précieux maintenant, mais je n’ai pas le luxe de dormir très souvent ; par conséquent, j’ai modifié mon emploi du temps plus tôt. Mais je suis toujours un lève-lent – il faut un certain temps pour se réveiller suffisamment pour être productif au clavier.

Dans votre carrière, avez-vous déjà « fait une nuit blanche » pour faire face à quelque chose qui devait absolument être fait ?

Oui, parfois à cause d’une échéance qui se profile mais le plus souvent parce que je crois au mensonge je me dis que cette dernière chose ne prendra que quelques minutes de plus. La plupart du temps, si je laisse le problème pour le lendemain matin, je pourrais le finir en un quart du temps !

Décrivez d’autres choses que vous avez faites dans votre carrière et qui pourraient donner aux lecteurs une idée de ce qui fait un développeur.

La plupart de ce que j’ai écrit est utilisé par des personnes qui n’ont aucune compréhension de la technologie sous-jacente. Cela nécessite la capacité de comprendre les demandes vagues et de les transformer en exigences, de traduire les plaintes en rapports de bogues et de prédire les actions des utilisateurs qui pourraient endommager votre application et les empêcher de manière proactive. Travailler sur un système de gestion des enseignants qui a lancé un logiciel éducatif pour les étudiants m’a tout de suite appris à quel point un logiciel robuste et convivial est important, en particulier lorsque j’ai été mis dans la pièce avec eux et que j’ai ressenti leur douleur lorsqu’ils ont rencontré des problèmes. Il n’y a pas de plus grande motivation que de demander à vos utilisateurs de se retourner sur leur chaise, de vous regarder et de vous demander ce qu’ils sont censés faire avec ce gros et long message d’erreur à l’écran !

David n’est pas dans ce sac à dos.

Quelle a été votre journée de programmation la plus stressante ?

En 2002, j’ai construit un prototype d’application web de day-trading en PHP pour un entrepreneur. Il voulait filmer une vidéo promotionnelle pour la télévision de fin de soirée pour intéresser les gens et s’inscrire pour continuer à financer le projet, mais il ajoutait des demandes de fonctionnalités plus rapidement que nous ne pouvions les faire, laissant plusieurs aspects du site à moitié cuits ou temporairement difficiles -codé. Il a emmené un groupe d’entre nous qui travaillaient sur le projet à Las Vegas, puis a embauché quelques modèles pour pointer l’écran pendant qu’il parlait de ce programme incroyable qu’il essayait de vendre. À la dernière minute, et sans consulter son équipe technique, il est sorti et a acheté un téléviseur gigantesque pour la démo – pas un moniteur ou un projecteur et un écran, mais un téléviseur ! Mon ordinateur portable n’avait pas la bonne carte vidéo ou les bons pilotes graphiques pour détecter correctement l’écran (deux d’entre nous se sont battus avec pendant 30 minutes), nous nous sommes donc retrouvés coincés avec une résolution moche de 640 × 480 sur ce grand écran. J’ai dû faire plusieurs changements de dernière minute, déplacer certaines choses sur l’écran et en cacher d’autres pendant que l’équipe de tournage et les modèles attendaient. J’effectuais ces changements alors que j’étais assis par terre contre le mur d’une salle de conférence avec une fille légèrement vêtue assise juste en face de moi attendant son tour de se lever et de caracoler devant l’écran !

Faites-vous des devis pour travailler avec des clients? Si vous le faites, sans rien révéler qui puisse vous mettre mal à l’aise, quel type de processus utilisez-vous ?

Parfois, lorsque les clients le demandent. Mais ensuite, je le prix beaucoup plus cher que je ne le pense. Ma préférence est de fournir un devis et une facturation à l’heure ; puis communiquez et facturez fréquemment afin que le client comprenne l’avancement et le coût.

Comment empêchez-vous les clients/gestionnaires de programme/gestionnaires de « rechercher des fonctionnalités » ?

Chargez-les pour cela. Sérieusement, c’est aussi simple que cela. Je leur explique comment les fonctionnalités qu’ils demandent vont au-delà de la portée initialement demandée et pourquoi cela coûtera plus cher. Chaque chose que je fais figure sur une ligne de la facture afin qu’ils voient le coût de chaque demande.

Décrivez une session de codage typique pour vous. Comment ça commence ? Faites-vous des pauses ? Avez-vous des rituels/habitudes pour l’accompagner ?

Je choisis un projet et une tâche, et j’y creuse. Parfois, pour de nouveaux projets ou problèmes, je dois m’arrêter et dessiner un organigramme ou des listes de chiffres ; utiliser un stylo/du papier est bon pour cela car il active une autre partie du cerveau. Souvent, je vais d’abord créer l’interface utilisateur, ce qui me donne une vision plus claire de l’apparence et de l’action de la version finale, ce qui peut révéler des considérations supplémentaires qui devraient être codées. D’autres fois, comme pour les corrections de bogues, je commencerai d’abord par ajouter du code de journalisation supplémentaire afin de pouvoir identifier plus rapidement la zone à problème.

Je n’ai pas de règles établies pour les horaires ou les rituels – parfois je suis sur une lancée et je code directement pendant quelques heures, d’autres fois, le problème est plus complexe et nécessite des pauses fréquentes pour simplement s’arrêter et réfléchir au problème. Cela varie autant que mes projets.

Écoutez-vous de la musique pendant que vous codez ? Si oui, pouvez-vous nous citer quelques morceaux/artistes/performances ?

J’utilise Pandora pour diffuser de la musique depuis longtemps et j’ai quelques canaux personnalisés différents qui varient en fonction de mon humeur, de l’électronique/trance au chill en passant par la techno/dubstep et le celtique. Certains de mes artistes préférés incluent Autograf, Jes, Blackmill, Amethystium, Nordlight, Trifonic, Lindsey Stirling, Celtic Woman, The Glitch Mob, Krewella et Celldweller.

Utilisez-vous des méthodes ou des techniques telles que Agile, Scrum, Kanban, TDD ? Si oui, pourquoi? Si non, pourquoi ?

Je n’ai pas choisi de méthode pour ensuite chercher un outil pour l’implémenter, j’ai trouvé Trello et je l’ai aimé pour la gestion de projet, puis j’ai découvert que Trello est un outil Kanban de premier plan. Donc, je suppose que j’utilise Kanban—de manière lâche, pas à dessein.

Suivez-vous les bugs ? Si vous le faites, que recommandez-vous?

J’ai essayé quelques outils de suivi des bogues open source et basés sur le Web et je n’ai vraiment aimé aucun d’entre eux. Après avoir commencé à utiliser Trello, j’ai implémenté sa fonctionnalité « étiquette » pour marquer les « cartes » en tant que « demandes de fonctionnalités » ou « corrections de bogues », et ainsi de suite.

La plupart des projets sur lesquels je travaille sont petits – si j’avais une grande équipe travaillant sur un projet gigantesque, je ferais probablement les choses tout à fait différemment.

David et la charmante Mme Cornelius, à Pacific City Oregon

Que fait un bon développeur de logiciels ?

Utilise le contrôle de source ! Il y a tellement de programmeurs qui font des copies de leur code dans un autre répertoire ou compressent périodiquement les fichiers source. J’ai commencé avec JediVCS il y a quelques décennies et j’ai très vite réalisé les grands avantages de revenir sur l’historique de mes changements. Je suis passé à des systèmes de contrôle de source plus récents et j’utilise maintenant Git pour CHAQUE projet sur lequel je travaille.

Que fait un mauvais développeur de logiciels ?

Ne formate ni ne commente leur code. Le code désordonné et non commenté est non seulement difficile à maintenir, mais il rend presque impossible la prise en charge par un autre développeur, à moins que l’outil de développement ne dispose d’un formateur de code comme Delphi !

iPhone, Android, Autre – et pourquoi ?

J’aime la liberté de choix en matière de configuration et d’applications qu’offrent les téléphones Android. Je préfère donc cette plate-forme pour mon usage personnel. Le seul iPhone que j’ai est un portable désactivé que j’utilise pour les tests. Cependant, j’ai un iPad et je l’aime beaucoup comme tablette.

Pour un développeur : PC vs Mac ? Pourquoi?

Pour la même raison que j’ai choisi les téléphones Android, j’utilise des PC depuis le premier jour : la liberté de choisir des outils matériels et logiciels et de les configurer comme je le souhaite. Je connais Windows et la ligne de commande avec tous ses raccourcis et j’ai collecté de nombreux programmes utilitaires au fil des ans. Ils coûtent également beaucoup moins cher et il est assez simple d’ajouter ou de remplacer un disque dur ou une carte graphique.

Cependant, j’ai ajouté un Mac Mini à ma collection de matériel il y a quelques années afin de pouvoir développer pour la plate-forme iOS et cela a commencé à se développer sur moi. Au fur et à mesure que les capacités matérielles ont augmenté et normalisées et que le besoin de personnalisation a diminué, la ligne devient floue, d’autant plus que je peux exécuter Windows sur Mac (mais pas l’inverse).

Quelle est la seule chose pour laquelle vous voudriez qu’on se souvienne?

Que je suis un honnête homme qui préfère subir une baisse de taux que de tromper un client.

Quel est le meilleur film développeur/hacker/tech/geek ?

J’ai beaucoup aimé la trilogie Matrix. Il y a eu beaucoup d’autres bons films produits depuis, mais celui-là me reste à l’esprit.

Avez-vous un livre, un produit ou un service que vous aimeriez mentionner?

Je cherche toujours à élargir mes compétences et l’une des choses les plus difficiles à surmonter est de savoir si vous avez mis en place un bon produit solide ou construit une excellente bibliothèque de code uniquement pour réaliser que les clients et les concurrents sont passés à de nouvelles interfaces – ou pire encore, d’autres plateformes ! Le livre que j’ai récemment terminé d’écrire, Fearless Cross-Platform Development with Delphi , aborde ce problème en montrant à ces développeurs les nuances des appareils mobiles, comment démarrer avec le développement Web et comment adopter les services REST. Les applications du monde réel sont construites étape par étape et j’espère qu’elles élimineront les obstacles qui freinent les développeurs qui se sentent coincés avec une solution Windows uniquement. Si vous devez prendre en charge plusieurs plates-formes, ce livre est un excellent point de départ !

 

Je dois souligner ici que j’ai en fait acheté la version imprimée du livre de David en pré-commande même si on m’a offert des exemplaires gratuits pour la critique. C’est un excellent livre et nous le reverrons bientôt avec David. – IanB ]

Avez-vous un site Web que les gens peuvent visiter, si oui, quel est-il ?

Oui, corneliusconcepts.com pour les entreprises et corneliusconcepts.tech pour mon blog.

Si vous utilisez Twitter, quel est votre pseudo Twitter ?

@delphidave

Quelle est votre méthode préférée de contact avec des clients potentiels?

La page contact de mon site : https://corneliusconcepts.com/contact_us


Merci d’avoir participé David, je l’apprécie vraiment.

Je reparlerai bientôt avec David dans une interview où nous discutons de son livre et de ses motivations pour l’avoir écrit.

Quitter la version mobile