Donald Knuth citations célèbres

dernière mise à jour : 5 septembre 2024

other language: spanish | czech | german | french | italian | slovak | turkish | ukrainian | dutch | russian | portuguese

Donald Knuth
  • Un algorithme doit être vu pour être cru.

  • La science est ce que nous comprenons assez bien pour l'expliquer à un ordinateur. L'art est tout ce que nous faisons d'autre.

  • La vie de tous les jours, c'est comme la programmation, je suppose. Si vous aimez quelque chose, vous pouvez y mettre de la beauté.

  • Le processus de préparation de programmes pour un ordinateur numérique est particulièrement attrayant, non seulement parce qu'il peut être économiquement et scientifiquement gratifiant, mais aussi parce qu'il peut s'agir d'une expérience esthétique un peu comme la composition de poésie ou de musique.

  • La programmation informatique est un art, car elle applique les connaissances accumulées au monde, car elle nécessite des compétences et de l'ingéniosité, et surtout parce qu'elle produit des objets de beauté. Un programmeur qui se considère inconsciemment comme un artiste appréciera ce qu'il fait et le fera mieux.

  • Les gens pensent que l'informatique est l'art des génies, mais la réalité est le contraire, juste beaucoup de gens font des choses qui se construisent les unes sur les autres, comme un mur de mini pierres.

  • Les ordinateurs sont doués pour suivre les instructions, mais pas pour lire dans vos pensées.

  • En fait, ce que j'aimerais voir, ce sont des milliers d'informaticiens lâchés pour faire ce qu'ils veulent. C'est ce qui fait vraiment avancer le domaine.

  • Changeons notre attitude traditionnelle à l'égard de la construction des programmes. Au lieu d'imaginer que notre tâche principale est de dire à un ordinateur ce qu'il doit faire, concentrons-nous plutôt sur l'explication aux êtres humains de ce que nous voulons qu'un ordinateur fasse.

  • Méfiez-vous des bugs dans le code ci-dessus; je l'ai seulement prouvé correct, pas essayé.

  • Je ne peux pas aller au restaurant et commander de la nourriture parce que je regarde sans cesse les polices sur le menu.

  • L'optimisation prématurée est la racine de tous les maux.

  • Comment pouvez-vous posséder [...] des chiffres? Les nombres appartiennent au monde.

  • Les personnes qui s'intéressent plus que par hasard aux ordinateurs devraient avoir au moins une idée de ce à quoi ressemble le matériel sous-jacent. Sinon, les programmes qu'ils écrivent seront assez bizarres.

  • Les nombres aléatoires ne doivent pas être générés avec une méthode choisie au hasard

  • Le soleil se lève à peu près aussi souvent qu'il se couche, à long terme, mais cela ne rend pas son mouvement aléatoire.

  • Je pense que les gens qui écrivent des programmes ont au moins une lueur de perspicacité supplémentaire dans la nature de Dieu... parce que créer un programme signifie souvent qu'il faut créer un petit univers

  • Nous devrions continuellement nous efforcer de transformer chaque art en science: dans le processus, nous faisons progresser l'art.

  • Pour ses contributions majeures à l'analyse des algorithmes et à la conception des langages de programmation, et en particulier pour ses contributions à "l'art de la programmation informatique" à travers ses livres bien connus dans une série continue sous ce titre.

  • Une liste n'est aussi forte que son maillon le plus faible.

  • Il est beaucoup plus gratifiant de faire plus avec moins.

  • Je définis UNIX comme 30 définitions d'expressions régulières vivant sous un même toit.

  • Tout ce qui rend la vie d'un mathématicien valable, c'est qu'il suscite l'admiration réticente de trois ou quatre collègues.

  • Le plus difficile est d'aller dormir la nuit, alors qu'il y a tant de choses urgentes à faire. Il existe un énorme fossé entre ce que nous savons être possible avec les machines d'aujourd'hui et ce que nous avons pu terminer jusqu'à présent.

  • La chose la plus importante dans le langage de programmation est le nom. Une langue ne réussira pas sans un bon nom. J'ai récemment inventé un très bon nom et maintenant je cherche une langue appropriée.

  • J'utilise actuellement Ubuntu Linux, sur un ordinateur portable autonome - il n'a pas de connexion Internet. Je transporte occasionnellement des clés USB entre cette machine et les Mac que j'utilise pour surfer sur le réseau et les graphiques; mais je ne fais confiance à mes bijoux de famille qu'à Linux.

  • Les manuels que nous avons reçus d'IBM montraient des exemples de programmes et je savais que je pouvais faire beaucoup mieux que cela. Alors j'ai pensé que j'avais peut-être du talent.

  • Les meilleurs programmes sont écrits pour que les machines informatiques puissent les exécuter rapidement et pour que les êtres humains puissent les comprendre clairement. Un programmeur est idéalement un essayiste qui travaille avec des formes esthétiques et littéraires traditionnelles ainsi qu'avec des concepts mathématiques, pour communiquer le fonctionnement d'un algorithme et convaincre un lecteur que les résultats seront corrects.

  • J'ai l'intuition que les séquences inconnues d'ADN seront décodées en avis de droit d'auteur et en protections de brevets.

  • Si vous optimisez tout, vous serez toujours malheureux.

  • En comprenant un langage orienté machine, le programmeur aura tendance à utiliser une méthode beaucoup plus efficace; c'est beaucoup plus proche de la réalité.

  • Rappelez-vous toujours, cependant, qu'il y a généralement une façon plus simple et meilleure de faire quelque chose que la première façon qui vous vient à l'esprit.

  • L'important, une fois que vous avez assez à manger et une belle maison, c'est ce que vous pouvez faire pour les autres, ce que vous pouvez apporter à l'entreprise dans son ensemble.

  • Le profilage psychologique [d'un programmeur] est principalement la capacité de déplacer les niveaux d'abstraction, de bas niveau à haut niveau. Voir quelque chose dans le petit et voir quelque chose dans le grand.

  • La science est une connaissance que nous comprenons si bien que nous pouvons l'enseigner à un ordinateur; et si nous ne comprenons pas complètement quelque chose, c'est un art de s'en occuper.

  • Le livre Dynamic Programming de Richard Bellman est un ouvrage important et pionnier dans lequel un groupe de problèmes est rassemblé à la fin de certains chapitres sous le titre "Exercices et problèmes de recherche", avec des questions extrêmement triviales apparaissant au milieu de problèmes profonds et non résolus. La rumeur veut que quelqu'un ait un jour demandé au Dr Bellman comment distinguer les exercices des problèmes de recherche, et il a répondu: "Si vous pouvez le résoudre, c'est un exercice; sinon c'est un problème de recherche."

  • La programmation est l'art de dire à un autre être humain ce que l'on veut que l'ordinateur fasse.

  • Une formule mathématique ne devrait jamais être "possédée" par personne! Les mathématiques appartiennent à Dieu.

  • Les programmeurs perdent énormément de temps à réfléchir ou à s'inquiéter de la vitesse des parties non critiques de leurs programmes, et ces tentatives d'efficacité ont en fait un fort impact négatif lorsque le débogage et la maintenance sont envisagés. Nous devrions oublier les petites efficacités, disons environ 97% du temps: l'optimisation prématurée est la racine de tous les maux. Pourtant, nous ne devrions pas laisser passer nos opportunités dans ce 3% critique.

  • Je ne peux être aussi confiant en informatique qu'en biologie. La biologie a facilement 500 ans de problèmes passionnants sur lesquels travailler. C'est à ce niveau.

  • En fait, ma principale conclusion après avoir passé dix ans de ma vie à travailler sur le projet T E X est que le logiciel est difficile. C'est plus difficile que tout ce que j'ai jamais eu à faire.

  • Les arbres poussent à peu près partout en informatique...

  • Si vous constatez que vous consacrez presque tout votre temps à la théorie, commencez à vous concentrer sur des choses pratiques; cela améliorera vos théories. Si vous constatez que vous consacrez presque tout votre temps à la pratique, commencez à vous concentrer sur des choses théoriques; cela améliorera votre pratique.

  • ... le concepteur d'un nouveau système ne doit pas seulement être l'implémenteur et le premier utilisateur à grande échelle; le concepteur doit également rédiger le premier manuel d'utilisation. ... Si je n'avais pas participé pleinement à toutes ces activités, littéralement des centaines d'améliorations n'auraient jamais été apportées, car je n'y aurais jamais pensé ni compris pourquoi elles étaient importantes.

  • Le concepteur d'un nouveau type de système doit participer pleinement à la mise en œuvre.

  • Le courrier électronique est une chose merveilleuse pour les personnes dont le rôle dans la vie est d'être au top des choses. Mais pas pour moi; mon rôle est d'être au fond des choses. Ce que je fais demande de longues heures d'étude et une concentration ininterrompue.

  • Mon premier programme m'a beaucoup appris sur les erreurs que j'allais faire à l'avenir, et aussi sur la façon de trouver des erreurs. C'est en quelque sorte l'histoire de ma vie, faire des erreurs et essayer de m'en remettre. J'essaie de corriger les choses. Je suis probablement obsédé par le fait de ne pas faire trop d'erreurs.

  • Lorsque certains concepts de TeX sont introduits de manière informelle, des règles générales seront énoncées; par la suite, vous constaterez que les règles ne sont pas strictement vraies. En général, les derniers chapitres contiennent des informations plus fiables que les précédents. L'auteur estime que cette technique de mensonge délibéré vous facilitera en fait l'apprentissage des idées. Une fois que vous comprenez une règle simple mais fausse, il ne sera pas difficile de compléter cette règle avec ses exceptions.

  • ...L'une des leçons les plus importantes, peut-être, est le fait que LE LOGICIEL EST DIFFICILE. À partir de maintenant, j'aurai beaucoup plus de respect pour chaque outil logiciel réussi que je rencontrerai. Au cours de la dernière décennie, j'ai été surpris d'apprendre que l'écriture de programmes pour TeX et Metafont s'est avérée beaucoup plus difficile que toutes les autres choses que j'avais faites (comme prouver des théorèmes ou écrire des livres). La création de bons logiciels exige un niveau de précision nettement plus élevé que ces autres choses, et cela nécessite une durée d'attention plus longue que d'autres tâches intellectuelles.

  • ...les méthodes sont plus importantes que les faits. La valeur éducative d'un problème donné à un élève dépend principalement de la fréquence à laquelle les processus de réflexion qui sont invoqués pour le résoudre seront utiles dans des situations ultérieures. Cela a peu à voir avec l'utilité de la réponse au problème. D'autre part, un bon problème doit également motiver les étudiants; ils devraient être intéressés à voir la réponse. Puisque les étudiants diffèrent tellement, je ne peux pas m'attendre à ce que tout le monde aime les problèmes qui me plaisent.