Carrière de programmation. Chapitre 2. École ou auto-éducation

Suite de l'histoire "Carrière de programmeur".

C'était en 2001. L'année de sortie du système d'exploitation le plus cool - Windows XP. Quand rsdn.ru est-il apparu ? Année de naissance de C# et .NET Framework. Première année du millénaire. Et une année de croissance exponentielle de la puissance du nouveau matériel : Pentium IV, 256 Mo de RAM.

Après avoir terminé la 9e année et vu mon enthousiasme inépuisable pour la programmation, mes parents ont décidé de me transférer à l'université pour me spécialiser en programmation. Ils croyaient que ce serait mieux ainsi et qu’ils m’apprendraient là-bas. Le mot collège ne convenait d’ailleurs pas à cette institution située à la périphérie d’une ville industrielle. C'était une école technique ordinaire, pas différente des autres écoles techniques qui n'accrochaient pas d'étiquette avec le mot à la mode « collège » sur leur façade.
Bien. Je n'ai pas contredit mes parents et je n'ai pas contesté leur décision. En tout cas, j'étais engagé dans une auto-éducation et je pensais que dans ce nouvel endroit, ils me donneraient des connaissances supplémentaires.


Cet été-là, avant d'aller à l'université, j'ai commencé à étudier en profondeur toutes les technologies possibles publiées dans le magazine. "Pirate". Je l'ai lu et relu en morceaux. J'ai particulièrement aimé les entretiens avec de vrais hackers et leurs conseils.
La plupart des hackers sympas travaillaient sous Linux. Et Mazda (Windows) était pour les lamers. Quiconque a lu le magazine se souvient du style des articles qui y sont publiés. Par conséquent, dans mon esprit fragile, deux idées se sont affrontées : quitter Windows ou rester cool et s'en tenir uniquement à Linux.
Chaque nouveau numéro du magazine Hacker me donnait une nouvelle raison de formater le disque et d'installer Linux Red Hat 7 ou Windows Me. Bien sûr, je n’avais aucun vecteur de formation et je faisais ce que je lisais dans les magazines ou sur des CD piratés comme « Secrets of Hackers ». L'installation de deux systèmes d'exploitation en parallèle a également été effacée, après un nouveau bourrage dans l'esprit de « Windows XP alias perroquet - c'est pour les femmes au foyer. Et si vous voulez faire des choses sérieuses, vous devez travailler depuis la console Linux les yeux fermés. Bien sûr, je voulais pirater des systèmes, comprendre le fonctionnement du réseau et être le tout-puissant Anonyme de l’époque.

Le disque a été formaté sans aucun regret et un kit de distribution d'un système de type Unix y a été installé. Oui oui. J'ai lu une fois une interview avec un vrai hacker qui n'utilise FreeBSD 4.3 que depuis la console. Parallèlement, il était responsable du piratage des banques et des systèmes gouvernementaux. Ce fut un coup de foudre à la tête et j'ai installé BSD OS comme système principal 5 fois. Le problème était qu’après l’installation, il n’y avait rien à part la console nue. Même le son. Et pour installer KDE2 et activer le son, il a fallu beaucoup danser avec un tambourin, et corriger plusieurs configs.

Carrière de programmation. Chapitre 2. École ou auto-éducation
La distribution FreeBSD 4.3 est le système d'exploitation le plus hacké

À propos de la littérature

Dès que j'ai eu un ordinateur, j'ai commencé à acheter des livres sur la programmation. Le premier était un guide de "Turbo Pascal 7.0". Ce n'est pas surprenant, car je connaissais déjà un peu Pascal grâce aux cours de programmation, et j'ai pu continuer à apprendre par moi-même. Le problème était que les hackers n'écrivaient pas en Pascal. Ensuite, le langage Perl était à la mode, ou, pour les plus cools, c'était le C/C++. C'est du moins ce qu'ils ont écrit dans le magazine. Et le premier livre que j'ai lu jusqu'à la fin était "The C Programming Language" - de Kernighan et Ritchie. Au fait, j'ai étudié dans l'environnement Linux
et utilisé gcc et l'éditeur intégré de KDE pour écrire le code.

Suite à ce livre, l'Encyclopédie UNIX a été achetée. Il pesait 3 kilogrammes et était imprimé sur des pages A3.
Sur la face avant du livre, il y avait une représentation complète d'un diable de bande dessinée avec une fourche, et cela coûtait alors 125 hryvnia en Ukraine (soit environ 25 dollars en 2001). Pour acheter le livre, j'ai emprunté de l'argent à un ami d'école et mes parents ont ajouté le reste. Ensuite, j'ai commencé avec enthousiasme à étudier les commandes Unix, l'éditeur vim et emacs, la structure du système de fichiers et l'intérieur des fichiers de configuration. Près de 700 pages de l'encyclopédie ont été dévorées et je me suis rapproché de mon rêve : devenir un Kul-Hatzker.

Carrière de programmation. Chapitre 2. École ou auto-éducation
Encyclopédie UNIX - Un des premiers livres que j'ai lu

J'ai dépensé tout l'argent que mes aimants grands-parents et parents m'ont donné en livres. Le livre suivant était C++ en 21 jours. Le titre était très attractif, et c'est pour cela que je n'ai pas regardé d'autres livres de meilleure qualité. Malgré cela, toutes les sources ont été copiées du livre dans environ cette période de 3 semaines, et j'ai déjà compris quelque chose en C++. Même si je n’ai probablement pas compris davantage ce qui était écrit dans ces listes. Mais il y a eu des progrès.

Si vous me demandiez quel livre a le plus influencé votre carrière, je répondrais sans hésiter - « L'art de la programmation » - D. Knuth. C'était un recâblage du cerveau. Je ne peux pas vous dire exactement comment ce livre est arrivé entre mes mains, mais il a eu une influence très profonde sur ma future carrière.

Carrière de programmation. Chapitre 2. École ou auto-éducation
L'art de la programmation - à lire absolument

J'achetais des livres principalement au marché de la radio, ouvert uniquement le dimanche. Après avoir économisé quelques dizaines de hryvnia supplémentaires sur le petit-déjeuner, j'ai opté pour un nouveau livre sur C++ ou peut-être sur Perl. Le choix était assez large, mais je n’avais pas de mentor, alors j’ai tout étudié. J'ai demandé au vendeur de me recommander quelque chose sur la programmation. Et autant que je me souvienne, il a sorti « L'art de la programmation » des étagères. Premier tome". Le livre avait clairement déjà été utilisé. Les coins de la couverture étaient pliés et une grande égratignure était visible au dos, exactement à l'endroit où Bill Gates avait laissé sa critique : « Si vous lisez ce livre, vous devriez absolument m'envoyer votre CV », signé de sa main. Je connaissais Gates grâce aux magazines et j'ai pensé que ce serait bien de lui envoyer un CV, même si tous les hackers le critiquaient. Le livre coûte 72 UAH. (15 $), et je me suis rapidement précipité chez moi en tramway pour étudier de nouveaux sujets.

À quel point je lisais des choses profondes et fondamentales, bien sûr, je ne pouvais pas comprendre à 15 ans. Mais j’ai essayé avec diligence de terminer chaque exercice. Une fois, j'ai même réussi à résoudre correctement un problème avec un niveau de difficulté de 25 ou 30. C'était un chapitre sur l'induction mathématique. Même si je n’aimais pas les mathématiques à l’école et que je ne les comprenais pas bien, j’étais par-dessus le tapis. Analyse de Knuth - Je suis resté assis pendant des heures.
Ensuite, dans le deuxième chapitre, il y avait les structures de données. Ces images et images de listes chaînées, d'arbres binaires, de piles et de files d'attente sont toujours sous mes yeux. Au cours de mes 12 années de carrière dans le développement commercial, j'ai utilisé la plupart des langages à usage général.
Il s'agit de C/C++, C#, Java, Python, JavaScript, Delphi. Et quel que soit le nom du langage, sa bibliothèque standard contenait des structures de données et des algorithmes décrits par Donald Knuth dans son livre en trois volumes. Par conséquent, apprendre quelque chose de nouveau ne prend pas beaucoup de temps.

Le premier tome a été dévoré assez rapidement. J’ai réécrit les algorithmes donnés dans le livre de Knuth en langage C. Cela n’a pas toujours fonctionné, mais plus je pratiquais, plus la clarté devenait. Le zèle ne manquait pas. Ayant terminé le premier tome, j'ai couru sans hésiter acheter le deuxième et le troisième. J'ai mis le deuxième de côté pour l'instant, mais j'ai repris à fond le troisième (Tri et recherche).
Je me souviens très bien de la façon dont j'ai rempli un cahier entier, « interprétant » les algorithmes de tri et de recherche. Tout comme pour les structures de données, la recherche binaire et le tri rapide sont visualisés dans mon cerveau à une vitesse fulgurante, me rappelant à quoi ils ressemblent schématiquement dans le troisième volume de Knuth.
Le fouet était lu partout. Et même lorsque je partais en mer, sans PC à proximité, j'écrivais toujours des algorithmes dans un cahier et j'y parcourais des séquences de nombres. Je me souviens encore de la douleur qu'il m'a fallu pour maîtriser le tri en tas, mais cela en valait la peine.

Le prochain livre qui a eu une forte influence sur moi était « Le Livre du Dragon ». Il s'agit également de « Compilateurs : principes, technologies, outils » - A. Aho, R. Seti. Elle a été précédée par Herbert Schildtd, avec des tâches avancées en C++. C’est là que les points se sont réunis.
Grâce à Schildt, j'ai appris à écrire des analyseurs et des interprètes linguistiques. Et puis le Livre du Dragon m'a incité à écrire mon propre compilateur C++.

Carrière de programmation. Chapitre 2. École ou auto-éducation
Livre du Dragon

À ce moment-là, j'avais reçu une connexion Internet de type modem et j'ai passé beaucoup de temps sur le site le plus populaire pour les programmeurs - rsdn.ru. Le C++ y dominait et chaque professionnel pouvait répondre à des questions que j'étais incapable de répondre. Ça m'a fait mal et j'ai compris
que je suis loin de ces barbus, j'ai donc besoin d'étudier l'intérieur des avantages du « From and To ». Cette motivation m'a conduit à mon premier projet sérieux : mon propre compilateur du standard C++ de 1998. Vous pouvez trouver un historique et des sources plus détaillés dans cet article habr.com/en/post/322656.

École ou auto-éducation

Mais revenons à la réalité en dehors de l'IDE. Même si, à cette époque, je m'éloignais de plus en plus de la vie réelle et me plongeais dans la vie virtuelle, mon âge et les normes généralement acceptées m'obligeaient à aller à l'université. C'était une véritable torture. Je n’avais absolument aucune idée de ce que je faisais dans cet établissement et pourquoi j’écoutais cette information. J'avais des priorités complètement différentes dans ma tête. Apprentissage de Visual Studio 6.0, essai avec WinApi et Delphi 6.
Un site merveilleux, firststeps.ru, qui m'a permis de me réjouir à chaque pas que j'ai fait, même si je n'ai pas compris la situation d'ensemble. Par exemple, dans la même technologie MFC ou ActiveX.
Et le collège ? C'était une perte de temps. En général, si l'on aborde le sujet des études, j'ai mal étudié. Jusqu'à la 6e année, j'étais un excellent élève, puis les notes C ont chuté, et de la 8e à la 9e année, j'ai souvent sauté des cours, pour lesquels j'ai reçu des ceintures illusoires de mes parents.
Par conséquent, lorsque je suis arrivé à l’université, il y avait également peu d’enthousiasme.
- Où est la programmation ? Je me suis posé une question. Mais il n’était pas là au premier semestre. Mais il y avait l'informatique avec MS-DOS et Office, ainsi que des matières d'enseignement général.

En plus de cela, j’avais une personnalité introvertie et très modeste. Ce nouvel équipage hétéroclite n'inspirait visiblement pas confiance. Et c'était réciproque. Par conséquent, diverses sortes de moqueries ne se sont pas fait attendre. Je l’ai enduré pendant longtemps, jusqu’à ce que je ne puisse plus le supporter et que je frappe l’un des délinquants au visage en plein cours. Oui, alors il s'est envolé vers son bureau. Grâce à mon père, il m'a appris à me battre depuis mon enfance, et si je le voulais vraiment, je pouvais utiliser la force physique. Mais cela arrivait très rarement, le plus souvent j'étais ridiculisé en attendant le point d'ébullition maximum.
À propos, l'agresseur, très surpris par ce qui se passait, mais sentant toujours sa supériorité, m'a défié dans un combat de représailles. Déjà sur le terrain vague derrière l'établissement d'enseignement.
Il ne s’agissait pas d’un coup de poing d’enfant, comme c’était le cas à l’école. Il y avait un noble makhach avec le nez cassé et beaucoup de sang. Le gars n’était pas non plus un gars timide et exécutait habilement des crochets et des uppercuts. Tout le monde est resté en vie et depuis, personne ne m'a plus intimidé.
dans ce « collège pour programmeurs ». J'ai vite perdu complètement l'envie d'y aller. Par conséquent, j’ai arrêté d’y aller et aucune menace de la part de mes parents n’a eu d’effet sur moi. Par miracle, mon séjour au collège était compté pour la 10e année et j'avais le droit d'aller en 11e.

Tout irait bien, mais la 11e année ne s'est avérée guère meilleure que l'université. Je suis retourné à mon école d'origine, j'ai rencontré des gars que je connaissais avec qui j'avais étudié depuis la première année et j'espérais que tout irait bien dans ma ville natale. Il n'y avait qu'une seule nuance : les gars ressemblaient plus aux bandits des séries télévisées qu'aux garçons avec qui j'étais ami à l'école primaire. Tout le monde se rendait au gymnase pour gagner de la masse musculaire. Je ressemblais à du bambou. Grand et très mince. Bien sûr, un camarade de classe aussi tyrannique pourrait m'attacher d'une main gauche.
C’est ce qui a commencé à se produire au fil du temps. Ici, mes compétences de combat n'avaient plus aucun effet. Les catégories de poids étaient très différentes pour moi et pour le reste des garçons de ma classe d’origine. Les particularités de ma pensée se sont également fait sentir.

Sans laisser vagabonder mes pensées, j’ai aussi quitté l’école. Là où je me sentais à l'aise, c'était devant un écran d'ordinateur, avec la porte de ma chambre fermée. Cela avait du sens et intuitivement, j’avais l’impression de faire la bonne chose. Et cette école est une activité inutile, et même de supporter ces railleries, qui chaque jour devenaient de plus en plus sophistiquées... Ça y est, j'en ai assez.
Après un autre conflit en classe, avec moi dans le rôle principal, j'ai quitté l'école et je n'y suis plus jamais retourné.
Pendant environ 3 mois, je suis resté à la maison, passant mon temps libre à apprendre C++/WinAPI/MFC et rsdn.ru.
Finalement, le directeur de l’école n’a pas pu le supporter et a appelé chez lui.
- « Denis, tu penses étudier ? Ou vas-tu partir ? Décider. Personne ne vous laissera dans les limbes. - dit le directeur
«Je vais partir», répondis-je avec assurance.

Et encore une fois, la même histoire. Il me restait six mois pour terminer mes études avant d’obtenir mon diplôme. Ne me laisse pas sans croûte. Mes parents m'ont abandonné et m'ont dit d'aller négocier moi-même avec le réalisateur. Je suis venu chez le directeur de l'école. Elle m'a crié d'enlever mon chapeau quand je suis entrée. Puis elle a demandé sévèrement : « Que dois-je faire de toi ? Franchement, moi-même, je ne savais pas quoi faire. J’étais plutôt satisfait de l’état actuel des choses. Finalement, elle prend la parole :
- « Alors faisons ça. Je vais passer un accord avec le directeur de notre école du soir et tu y iras.
- "Oui"

Et les cours du soir étaient un véritable paradis pour les freestylers comme moi. Vas-y si tu veux, ou n'y va pas. Il y avait 45 personnes dans la classe, dont seulement 6 à 7 se sont présentées aux cours. Je ne suis pas sûr que toutes les personnes figurant sur la liste soient vivantes et libres. Parce que ce n’est qu’en ma présence que des camarades de classe ont volé la moto de quelqu’un d’autre. Mais le fait restait un fait. Je pouvais améliorer mes compétences en programmation de manière illimitée et aller à l'école quand j'en avais vraiment besoin. J'ai fini par le terminer et réussir mes examens finaux. Ils n’ont pas demandé grand-chose et nous avons même organisé une cérémonie de remise des diplômes. L'obtention du diplôme en soi est une fable à part. Je me souviens que des bandits locaux et des camarades de classe ont pris ma montre. Et dès que j'ai entendu mon nom de famille, lors de la remise des diplômes, je me suis précipité au trot pour récupérer le document et je me suis envolé hors de l'école comme une balle, pour ne plus avoir d'ennuis.

L'été était à venir. Avec Donald Knuth sous le bras sur la plage, la mer, le soleil et la décision fatidique d'écrire son propre grand projet (compilateur).
A suivre ...

Source: habr.com

Ajouter un commentaire