Loading...

LICENCE

Original

Mars 2005

(Des parties de cet essai ont commencé comme des réponses à des étudiants qui m'ont écrit avec des questions.)

Récemment, j'ai reçu plusieurs courriels d'étudiants en informatique demandant quoi faire à l'université. Je ne suis peut-être pas la meilleure source de conseils, car j'étais un majeur en philosophie à l'université. Mais j'ai suivi tellement de cours d'informatique que la plupart des étudiants en informatique pensaient que j'en étais un. J'étais certainement un pirate, au moins.

Piratage

Que devriez-vous faire à l'université pour devenir un bon pirate ? Il y a deux choses principales que vous pouvez faire : devenir très bon en programmation, et apprendre beaucoup de choses sur des problèmes spécifiques et intéressants. Il s'avère que ces deux choses sont équivalentes, car chacune vous pousse à faire l'autre.

La façon d'être bon en programmation est de travailler (a) beaucoup (b) sur des problèmes difficiles. Et la façon de vous faire travailler sur des problèmes difficiles est de travailler sur un projet très engageant.

Il y a des chances que ce projet ne soit pas un devoir de classe. Mon ami Robert a beaucoup appris en écrivant des logiciels réseau lorsqu'il était étudiant. L'un de ses projets était de connecter Harvard à l' Arpanet ; il avait été l'un des nœuds originaux, mais en 1984 la connexion était morte. [1] Non seulement ce travail n'était pas pour un cours, mais parce qu'il y a passé tout son temps et a négligé ses études, il a été renvoyé de l'école pendant un an. [2] Tout s'est arrangé à la fin, et maintenant il est professeur au MIT. Mais vous serez probablement plus heureux si vous ne allez pas à cette extrémité ; cela lui a causé beaucoup d'inquiétudes à l'époque.

Une autre façon d'être bon en programmation est de trouver d'autres personnes qui sont douées pour cela, et d'apprendre ce qu'elles savent. Les programmeurs ont tendance à se classer en tribus selon le type de travail qu'ils font et les outils qu'ils utilisent, et certaines tribus sont plus intelligentes que d'autres. Regardez autour de vous et voyez sur quoi les gens intelligents semblent travailler ; il y a généralement une raison.

Certaines des personnes les plus intelligentes autour de vous sont des professeurs. Donc, une façon de trouver un travail intéressant est de faire du bénévolat comme assistant de recherche. Les professeurs sont particulièrement intéressés par les personnes qui peuvent résoudre des problèmes fastidieux de type administration système pour eux, ce qui est donc un moyen de mettre un pied dans la porte. Ce qu'ils craignent, ce sont les flocons et les bourreurs de CV. C'est trop commun pour un assistant de se traduire par une augmentation nette du travail. Donc vous devez faire comprendre que vous allez signifier une diminution nette.

Ne vous laissez pas décourager s'ils disent non. Le rejet est presque toujours moins personnel que ne l'imagine le rejeté. Passez simplement au suivant. (Cela s'applique aussi aux rencontres.)

Soyez prudent, car même si la plupart des professeurs sont intelligents, tous ne travaillent pas sur des choses intéressantes. Les professeurs doivent publier des résultats nouveaux pour faire avancer leur carrière, mais il y a plus de concurrence dans plus de domaines de recherche intéressants. Donc, ce que font les professeurs moins ambitieux est de produire une série d'articles dont les conclusions sont nouvelles parce que personne d'autre ne s'en soucie. Vous feriez mieux de les éviter.

Je n'ai jamais travaillé comme assistant de recherche, alors je me sens un peu malhonnête à recommander cette voie. J'ai appris à programmer en écrivant des choses de mon propre chef, en particulier en essayant de décompiler le SHRDLU de Winograd. J'étais aussi obsédé par ce programme qu'une mère par un nouveau-né.

Quels que soient les inconvénients de travailler seul, l'avantage est que le projet est entièrement le vôtre. Vous n'avez jamais à faire de compromis ou à demander la permission à qui que ce soit, et si vous avez une nouvelle idée, vous pouvez simplement vous asseoir et commencer à la mettre en œuvre.

Dans vos propres projets, vous n'avez pas à vous soucier de la nouveauté (comme les professeurs) ou de la rentabilité (comme les entreprises). Tout ce qui compte est la difficulté technique du projet, et cela n'a aucune corrélation avec la nature de l'application. Les applications "sérieuses" comme les bases de données sont souvent triviales et ennuyeuses techniquement (si vous souffrez un jour d'insomnie, essayez de lire la littérature technique sur les bases de données) tandis que les applications "futiles" comme les jeux sont souvent très sophistiquées. Je suis sûr qu'il existe des sociétés de jeux vidéo qui travaillent sur des produits avec plus de contenu intellectuel que la recherche dans les neuf dixièmes inférieurs des départements d'informatique universitaires.

Si j'étais à l'université maintenant, je travaillerais probablement sur les graphismes : un jeu en réseau, par exemple, ou un outil d'animation 3D. Quand j'étais étudiant, il n'y avait pas assez de cycles autour pour rendre les graphismes intéressants, mais il est difficile d'imaginer quelque chose de plus amusant à travailler dessus maintenant.

Mathématiques

Quand j'étais à l'université, beaucoup de professeurs croyaient (ou du moins souhaitaient) que l'informatique était une branche des mathématiques. Cette idée était la plus forte à Harvard, où il n'y avait même pas de majeure en informatique avant les années 1980 ; jusqu'alors, il fallait être majeur en mathématiques appliquées. Mais c'était presque aussi mauvais à Cornell. Quand j'ai dit au redoutable professeur Conway que j'étais intéressé par l'IA (un sujet brûlant à l'époque), il m'a dit que je devais être majeur en mathématiques. Je ne suis toujours pas sûr s'il pensait que l'IA nécessitait des mathématiques, ou s'il pensait que l'IA était un non-sens et qu'une majeure en quelque chose de rigoureux me guérirait de telles ambitions stupides.

En fait, la quantité de mathématiques dont vous avez besoin en tant que pirate est beaucoup moins que ce que la plupart des départements universitaires aiment à admettre. Je ne pense pas que vous ayez besoin de beaucoup plus que des mathématiques du secondaire plus quelques concepts de la théorie de la calculabilité. (Vous devez savoir ce qu'est un algorithme n^2 si vous voulez éviter d'en écrire.) À moins que vous ne prévoyiez d'écrire des applications mathématiques, bien sûr. La robotique, par exemple, est entièrement mathématique.

Mais même si vous n'avez pas littéralement besoin de mathématiques pour la plupart des types de piratage, au sens de connaître 1001 astuces pour différencier les formules, les mathématiques valent vraiment la peine d'être étudiées pour elles-mêmes. C'est un source précieuse de métaphores pour presque tous les types de travail. [3] J'aurais aimé avoir étudié plus de mathématiques à l'université pour cette raison.

Comme beaucoup de gens, j'ai été maltraité mathématiquement dans mon enfance. J' ai appris à penser aux mathématiques comme à un ensemble de formules qui n'étaient ni belles ni n'avaient aucun rapport avec ma vie (malgré les tentatives de les traduire en "problèmes de mots"), mais qui devaient être mémorisées pour réussir les tests.

L'une des choses les plus précieuses que vous puissiez faire à l'université serait d'apprendre ce que sont vraiment les mathématiques. Ce n'est peut-être pas facile, car beaucoup de bons mathématiciens sont de mauvais professeurs. Et même s'il existe de nombreux livres populaires sur les mathématiques, peu semblent bons. Les meilleurs que je puisse penser sont ceux de W. W. Sawyer. Et bien sûr, Euclide. [4]

Tout

Thomas Huxley a dit "Essayez d'apprendre quelque chose sur tout et tout sur quelque chose". La plupart des universités visent cet idéal.

Mais qu'est-ce que tout ? Pour moi, cela signifie tout ce que les gens apprennent au cours de leur travail honnête sur des problèmes difficiles. Tout ce travail a tendance à être lié, en ce sens que les idées et les techniques d'un domaine peuvent souvent être transplantées avec succès dans d'autres. Même d'autres qui semblent assez éloignés. Par exemple, j'écris des essais de la même manière que j'écris des logiciels : je m'assois et je fais une version 1 nulle aussi vite que je peux taper, puis je passe plusieurs semaines à la réécrire.

Travailler sur des problèmes difficiles ne suffit pas en soi. Les alchimistes médiévaux travaillaient sur un problème difficile, mais leur approche était si fausse qu'il y avait peu à apprendre en l'étudiant, sauf peut-être sur la capacité des gens à se leurrer eux-mêmes. Malheureusement, le type d'IA que j'essayais d'apprendre à l'université avait le même défaut : un problème très difficile, abordé avec légèreté avec des techniques désespérément inadéquates. Audacieux ? Plus proche de la fraude.

Les sciences sociales sont également assez fausses, car elles sont tellement influencées par les modes intellectuelles. Si un physicien rencontrait un collègue d'il y a 100 ans, il pourrait lui apprendre de nouvelles choses ; si un psychologue rencontrait un collègue d'il y a 100 ans, ils se retrouveraient simplement dans un argument idéologique. Oui, bien sûr, vous apprendrez quelque chose en suivant un cours de psychologie. Le point est que vous apprendrez plus en suivant un cours dans un autre département.

Les départements qui valent la peine, à mon avis, sont les mathématiques, les sciences dures l'ingénierie, l'histoire (en particulier l'histoire économique et sociale, et l'histoire des sciences), l'architecture, et les classiques. Un cours d'introduction à l'histoire de l'art peut être intéressant. La littérature moderne est importante, mais la façon de l'apprendre est simplement de lire. Je n'en sais pas assez sur la musique pour le dire.

Vous pouvez sauter les sciences sociales, la philosophie, et les divers départements créés récemment en réponse à des pressions politiques. Beaucoup de ces domaines parlent de problèmes importants, c'est certain. Mais la façon dont ils en parlent est inutile. Par exemple, la philosophie parle, entre autres, de nos obligations les uns envers les autres ; mais vous pouvez en apprendre plus sur ce sujet auprès d'une grand-mère sage ou d'E. B. White que d'un philosophe universitaire.

Je parle ici d'expérience. J'aurais probablement dû être offensé quand les gens se sont moqués de Clinton pour avoir dit "Cela dépend de ce que signifie le mot 'est'". J'ai suivi environ cinq cours à l'université sur ce que signifie "est".

Une autre façon de déterminer quels domaines valent la peine d'être étudiés est de créer le graphe de décrochage. Par exemple, je connais beaucoup de gens qui sont passés des mathématiques à l'informatique parce qu'ils trouvaient les mathématiques trop difficiles, et personne n'a fait le contraire. Les gens ne font pas de choses difficiles gratuitement ; personne ne travaillera sur un problème plus difficile à moins qu'il ne soit proportionnellement (ou au moins log(n)) plus gratifiant. Donc les mathématiques valent probablement plus la peine d'être étudiées que l'informatique. Par des comparaisons similaires, vous pouvez faire un graphique de tous les départements dans une université. En bas, vous trouverez les sujets avec le moins de contenu intellectuel.

Si vous utilisez cette méthode, vous obtiendrez à peu près la même réponse que je viens de donner.

Les cours de langues sont une anomalie. Je pense qu'il vaut mieux les considérer comme des activités parascolaires, comme des cours de poterie. Ils seraient bien plus utiles s'ils étaient combinés à un séjour dans un pays où la langue est parlée. Sur un coup de tête, j'ai étudié l'arabe en première année. C'était beaucoup de travail, et les seuls avantages durables ont été une étrange capacité à identifier les racines sémitiques et quelques idées sur la façon dont les gens reconnaissent les mots.

Les cours d'art en studio et d'écriture créative sont des jokers. Habituellement, on ne vous apprend pas grand-chose : vous travaillez (ou ne travaillez pas) sur ce que vous voulez, puis vous vous asseyez et vous vous offrez des "crits" les uns sur les autres créations sous la supervision vague de l'enseignant. Mais l'écriture et l'art sont tous deux des problèmes très difficiles que (certaines) personnes travaillent honnêtement à, donc ils valent la peine d'être faits, surtout si vous pouvez trouver un bon enseignant.

Emplois

Bien sûr, les étudiants doivent penser à autre chose qu'à apprendre. Il y a aussi deux problèmes pratiques à prendre en compte : les emplois, et les études supérieures.

En théorie, une éducation libérale n'est pas censée fournir une formation professionnelle. Mais tout le monde sait que c'est un peu un mensonge. Les pirates de chaque collège apprennent des compétences pratiques, et ce n'est pas par hasard.

Ce que vous devriez apprendre pour obtenir un emploi dépend du type d'emploi que vous voulez. Si vous voulez travailler dans une grande entreprise, apprenez à pirater Blub sur Windows. Si vous voulez travailler dans une petite entreprise cool ou un laboratoire de recherche, vous ferez mieux d'apprendre Ruby sur Linux. Et si vous voulez créer votre propre entreprise, ce qui, je pense, deviendra de plus en plus courant, maîtrisez les outils les plus puissants que vous puissiez trouver, car vous allez être dans une course contre vos concurrents, et ils seront votre cheval.

Il n'y a pas de corrélation directe entre les compétences que vous devriez apprendre à l'université et celles que vous utiliserez dans un emploi. Vous devriez viser légèrement plus haut à l'université.

Lors des entraînements, un joueur de football peut soulever 300 livres au développé couché, même s'il n'aura peut-être jamais à exercer une force aussi importante au cours d'un match. De même, si vos professeurs essaient de vous faire apprendre des choses plus avancées que ce dont vous aurez besoin dans un emploi, ce n'est peut-être pas juste parce qu'ils sont des universitaires, détachés du monde réel. Ils essaient peut-être de vous faire soulever des poids avec votre cerveau.

Les programmes que vous écrivez en classe diffèrent de trois manières essentielles de ceux que vous écrirez dans le monde réel : ils sont petits ; vous pouvez partir de zéro ; et le problème est généralement artificiel et prédéterminé. Dans le monde réel, les programmes sont plus grands, ont tendance à impliquer du code existant, et vous obligent souvent à déterminer ce que est le problème avant de pouvoir le résoudre.

Vous n'avez pas à attendre de quitter (ou même d'entrer) l'université pour apprendre ces compétences. Si vous voulez apprendre à gérer du code existant, par exemple, vous pouvez contribuer à des projets open source. Le type d'employeur pour lequel vous voulez travailler sera aussi impressionné par cela que par de bonnes notes aux devoirs de classe.

Dans les projets open source existants, vous n'avez pas beaucoup de pratique pour la troisième compétence, décider quels problèmes résoudre. Mais il n'y a rien qui vous empêche de démarrer de nouveaux projets de votre propre chef. Et les bons employeurs seront encore plus impressionnés par cela.

Quel type de problème devriez-vous essayer de résoudre ? Une façon de répondre à cette question est de se demander de quoi vous avez besoin en tant qu'utilisateur. Par exemple, j'ai trouvé un bon algorithme de filtrage du spam parce que je voulais arrêter de recevoir du spam. Maintenant, ce que j'aimerais avoir, c'est un lecteur de courrier qui, d'une manière ou d'une autre, empêche ma boîte de réception de se remplir. J'ai tendance à utiliser ma boîte de réception comme une liste de choses à faire. Mais c'est comme utiliser un tournevis pour ouvrir des bouteilles ; ce que l'on veut vraiment, c'est un ouvre-bouteille.

Études supérieures

Qu'en est-il des études supérieures ? Devriez-vous y aller ? Et comment entrez-vous dans une bonne école ?

En principe, les études supérieures sont une formation professionnelle à la recherche, et vous ne devriez pas y aller à moins que vous ne vouliez faire de la recherche comme carrière. Et pourtant, la moitié des personnes qui obtiennent un doctorat en informatique ne font pas de recherche. Je n'ai pas fait d'études supérieures pour devenir professeur. J'y suis allé parce que je voulais en apprendre plus.

Donc, si vous êtes principalement intéressé par le piratage et que vous allez en études supérieures, vous trouverez beaucoup d'autres personnes qui sont également en dehors de leur élément. Et si la moitié des gens autour de vous sont en dehors de leur élément de la même manière que vous, êtes-vous vraiment en dehors de votre élément ?

Il y a un problème fondamental en "informatique", et il se manifeste dans des situations comme celle-ci. Personne n'est sûr de ce que "la recherche" est censée être. Beaucoup de recherches sont des piratages qui ont dû être intégrés dans la forme d'un article académique pour produire un quantum de publication supplémentaire.

Il est donc un peu trompeur de se demander si vous vous sentirez à l'aise en études supérieures, car très peu de gens sont vraiment à l'aise en informatique. Tout le domaine est mal à l'aise dans sa propre peau. Donc le fait que vous soyez principalement intéressé par le piratage ne devrait pas vous dissuader d'aller en études supérieures. Sachez simplement que vous devrez faire beaucoup de choses que vous n'aimez pas.

Le numéro un sera votre thèse. Presque tout le monde déteste sa thèse au moment où il en a fini avec elle. Le processus a tendance à produire un résultat désagréable, comme un gâteau fait de farine complète et cuit pendant douze heures. Peu de thèses sont lues avec plaisir, surtout par leurs auteurs.

Mais des milliers de personnes avant vous ont souffert en écrivant une thèse. Et à part ça, les études supérieures sont proches du paradis. Beaucoup de gens s'en souviennent comme du moment le plus heureux de leur vie. Et presque tous les autres, y compris moi, s'en souviennent comme d'une période qui aurait été, s'ils n'avaient pas eu à écrire une thèse. [5]

Le danger des études supérieures est que vous ne voyez pas la partie effrayante d'avance. Les programmes de doctorat commencent comme le collège partie 2, avec plusieurs années de cours. Donc, au moment où vous êtes confronté à l'horreur d'écrire une thèse, vous êtes déjà là depuis plusieurs années. Si vous quittez maintenant, vous serez un abandonniste des études supérieures, et vous n'aimerez probablement pas cette idée. Quand Robert a été renvoyé des études supérieures pour avoir écrit le ver Internet de 1988, je l'ai énormément envié d'avoir trouvé un moyen de s'en sortir sans le stigmate de l'échec.

Dans l'ensemble, les études supérieures sont probablement meilleures que la plupart des alternatives. Vous rencontrez beaucoup de gens intelligents, et votre morne procrastination sera au moins un puissant lien commun. Et bien sûr, vous avez un doctorat à la fin. J'avais oublié ça. Je suppose que ça vaut quelque chose.

Le plus grand avantage d'un doctorat (à part le fait d'être la carte syndicale de l'université, bien sûr) est peut-être qu'il vous donne une certaine confiance de base. Par exemple, les thermostats Honeywell de ma maison ont l'interface utilisateur la plus atroce. Ma mère, qui a le même modèle, a passé une journée entière à lire le manuel d'utilisation pour apprendre à faire fonctionner le sien. Elle a supposé que le problème était avec elle. Mais je peux me dire "Si quelqu'un avec un doctorat en informatique ne peut pas comprendre ce thermostat, il doit être mal conçu."

Si vous voulez toujours aller en études supérieures après cette recommandation équivoque, je peux vous donner des conseils solides sur la façon d'y entrer. Beaucoup de mes amis sont maintenant professeurs d'informatique, donc j'ai l'histoire de l'intérieur sur les admissions. C'est assez différent du collège. À la plupart des collèges, les responsables des admissions décident qui est admis. Pour les programmes de doctorat, ce sont les professeurs qui le font. Et ils essaient de le faire bien, car les personnes qu'ils admettent vont travailler pour eux.

Apparemment, seules les recommandations comptent vraiment dans les meilleures écoles. Les tests standardisés ne comptent pour rien, et les notes pour peu. Le essai est surtout une occasion de se disqualifier en disant quelque chose de stupide. La seule chose à laquelle les professeurs font confiance, ce sont les recommandations, de préférence de personnes qu'ils connaissent. [6]

Donc, si vous voulez entrer dans un programme de doctorat, la clé est d'impressionner vos professeurs. Et de mes amis qui sont professeurs, je sais ce qui les impressionne : pas seulement essayer de les impressionner. Ils ne sont pas impressionnés par les étudiants qui obtiennent de bonnes notes ou qui veulent être leurs assistants de recherche pour pouvoir entrer en études supérieures. Ils sont impressionnés par les étudiants qui obtiennent de bonnes notes et qui veulent être leurs assistants de recherche parce qu'ils sont vraiment intéressés par le sujet.

Donc, la meilleure chose que vous puissiez faire à l'université, que vous vouliez entrer en études supérieures ou simplement être bon en piratage, est de déterminer ce que vous aimez vraiment. Il est difficile de tromper les professeurs pour qu'ils vous laissent entrer en études supérieures, et impossible de tromper les problèmes pour qu'ils vous laissent les résoudre. L'université est l'endroit où le faux cesse de fonctionner. À partir de ce moment, à moins que vous ne vouliez aller travailler pour une grande entreprise, ce qui revient à revenir au lycée, la seule voie à suivre est de faire ce que vous aimez.

Notes

[1] Personne ne semble s'en être soucié, ce qui montre à quel point l'Arpanet (qui est devenu Internet) était peu important jusqu'en 1984.

[2] C'est pourquoi, lorsque je suis devenu employeur, je ne me suis pas soucié des moyennes. En fait, nous avons activement recherché des personnes qui avaient échoué à l'école. Nous avons une fois affiché des affiches autour de Harvard en disant "Avez-vous été renvoyé pour avoir mal réussi vos cours parce que vous avez passé tout votre temps à travailler sur un projet personnel ? Venez travailler pour nous !" Nous avons réussi à trouver un enfant qui l'avait été, et c'était un excellent pirate.

Lorsque Harvard renvoie des étudiants pour un an, ils doivent trouver un emploi. L'idée est de leur montrer à quel point le monde réel est horrible, afin qu'ils comprennent à quel point ils ont de la chance d'être à l'université. Ce plan a échoué avec le type qui est venu travailler pour nous, car il s'est plus amusé qu' à l'école, et a gagné plus cette année-là en options d'achat d'actions que n'importe lequel de ses professeurs en salaire. Donc, au lieu de ramper repentant à la fin de l'année, il a pris une autre année de congé et est allé en Europe. Il a fini par obtenir son diplôme vers l'âge de 26 ans.

[3] Eric Raymond dit que les meilleures métaphores pour les pirates se trouvent dans la théorie des ensembles, la combinatoire et la théorie des graphes.

Trevor Blackwell vous rappelle de suivre des cours de mathématiques destinés aux étudiants en mathématiques. "'Les cours de mathématiques pour les ingénieurs étaient vraiment nuls. En fait, tout 'x pour les ingénieurs' est nul, où x comprend les mathématiques, le droit, l'écriture et le design visuel."

[4] Autres livres fortement recommandés : Qu'est-ce que les mathématiques ?, par Courant et Robbins ; Géométrie et l'imagination par Hilbert et Cohn-Vossen. Et pour ceux qui s'intéressent au graphisme, Euclide de Byrne.

[5] Si vous vouliez avoir la vie parfaite, la chose à faire serait d'aller en études supérieures, d'écrire secrètement votre thèse dans la première ou deuxième année, puis de simplement profiter des trois années suivantes, en faisant tomber un chapitre à la fois. Cette perspective fera saliver les étudiants en études supérieures, mais je ne connais personne qui ait eu la discipline pour y parvenir.

[6] Un ami professeur dit que 15 à 20 % des étudiants en études supérieures qu'ils admettent chaque année sont des "longs coups". Mais ce qu'il entend par longs coups sont des personnes dont les candidatures sont parfaites à tous égards, sauf que personne au comité d'admission ne connaît les professeurs qui ont écrit les recommandations.

Donc, si vous voulez entrer dans les études supérieures en sciences, vous devez aller à l'université dans un endroit où il y a de vrais professeurs de recherche. Sinon, vous aurez l'air d'un pari risqué pour les comités d'admission, aussi bon que vous soyez.

Ce qui implique une conséquence surprenante mais apparemment inévitable : les petits collèges d'arts libéraux sont condamnés. La plupart des élèves intelligents du secondaire envisagent au moins de faire des sciences, même s'ils finissent par choisir de ne pas le faire. Pourquoi aller dans un collège qui limite leurs options ?

Merci à Trevor Blackwell, Alex Lewin, Jessica Livingston, Robert Morris, Eric Raymond, et plusieurs professeurs d'informatique anonymes pour avoir lu des brouillons de ceci, et aux étudiants dont les questions ont commencé tout cela.