Carriera di programmatore. Capitolo 2. Scuola o autoeducazione

Continuazione della storia "Carriera di programmatore".

L'anno era il 2001. L'anno in cui è stato rilasciato il sistema operativo più interessante: Windows XP. Quando è apparso rsdn.ru? Anno di nascita di C# e .NET Framework. Primo anno del millennio. E un anno di crescita esponenziale della potenza del nuovo hardware: Pentium IV, 256 mb di ram.

Dopo aver terminato la prima media e aver visto il mio inesauribile entusiasmo per la programmazione, i miei genitori hanno deciso di trasferirmi al college per specializzarmi in Programmazione. Credevano che sarebbe stato meglio così e che mi avrebbero insegnato lì. La parola college, tra l'altro, non si addiceva a questa istituzione, alla periferia di una città industriale. Era una normale scuola tecnica, non diversa dalle altre scuole tecniche che non avevano sulla facciata un'etichetta con la parola alla moda "college".
BENE. Non ho contraddetto i miei genitori e non ho contestato la loro decisione. In ogni caso, ero impegnato nell'autoeducazione e pensavo che in questo nuovo posto mi avrebbero dato qualche conoscenza aggiuntiva.


Quell'estate, prima di andare al college, ho iniziato a studiare a fondo tutte le possibili tecnologie pubblicate sulla rivista "Pirata". L'ho letto e riletto a pezzi. Mi sono piaciute soprattutto le interviste ai veri hacker e i loro consigli.
La maggior parte degli hacker fantastici utilizzavano Linux. E Mazda (Windows) era per i lamer. Chiunque abbia letto la rivista ricorda lo stile dei post in essa contenuti. Pertanto, nella mia fragile mente, due idee combattevano tra loro: lasciare Windows o essere cool e restare esclusivamente su Linux.
Ogni nuovo numero della rivista Hacker mi dava un nuovo motivo per formattare il disco e installare Linux Red Hat 7 o Windows Me. Ovviamente non avevo alcun vettore di formazione e facevo quello che leggevo sulle riviste o su CD piratati come “Secrets of Hackers”. Anche l'installazione di due sistemi operativi in ​​​​parallelo è stata cancellata, dopo un nuovo riempimento nello spirito di "Windows XP aka pappagallo: questo è per le casalinghe". E se vuoi fare cose serie devi lavorare dalla console Linux ad occhi chiusi”. Naturalmente, a quel tempo volevo hackerare i sistemi, capire come funziona la rete ed essere l'onnipotente Anonymous.

Il disco è stato formattato senza alcun rimorso e su di esso è stato installato un kit di distribuzione di un sistema simile a Unix. Si si. Una volta ho letto un'intervista con un vero hacker che utilizza solo FreeBSD 4.3 dalla console. Allo stesso tempo, era responsabile dell'hacking di banche e sistemi governativi. È stato un colpo di fulmine alla testa e ho installato il sistema operativo BSD come sistema principale 5 volte. Il problema era che dopo l'installazione non c'era più nulla tranne la semplice console. Anche il suono. E per installare KDE2 e attivare l'audio, è stato necessario ballare molto con un tamburello e correggere diverse configurazioni.

Carriera di programmatore. Capitolo 2. Scuola o autoeducazione
La distribuzione FreeBSD 4.3 è il sistema operativo più hacker

A proposito di letteratura

Non appena ho acquistato un computer, ho iniziato a comprare libri sulla programmazione. La prima era una guida a "Turbo Pascal 7.0". Ciò non sorprende, perché conoscevo già un po' di Pascal dai corsi di programmazione e potevo continuare ad imparare da solo. Il problema era che gli hacker non scrivono in Pascal. Allora era di moda il linguaggio Perl o, per i più fighi, era C/C++. Almeno questo è quello che hanno scritto sulla rivista. E il primo libro che ho letto fino alla fine è stato "The C Programming Language" - di Kernighan e Ritchie. A proposito, ho studiato nell'ambiente Linux
e ho usato gcc e l'editor integrato di KDE per scrivere il codice.

In seguito a questo libro fu acquistata l'Enciclopedia UNIX. Pesava 3 chilogrammi ed era stampato su pagine A3.
Sul lato anteriore del libro c'era una rappresentazione a figura intera di un diavolo dei cartoni animati con un forcone, e allora costava 125 grivna in Ucraina (che sono circa 25 dollari nel 2001). Per acquistare il libro ho preso in prestito dei soldi da un compagno di scuola e i miei genitori hanno aggiunto il resto. Poi ho iniziato con entusiasmo a studiare i comandi Unix, gli editor vim ed emacs, la struttura del file system e l'interno dei file di configurazione. Sono state divorate quasi 700 pagine dell'enciclopedia e ho fatto un passo avanti verso il mio sogno: diventare un Kul-Hatzker.

Carriera di programmatore. Capitolo 2. Scuola o autoeducazione
UNIX Encyclopedia - Uno dei primi libri che ho letto

Ho speso tutti i soldi che i miei amorevoli nonni e genitori mi hanno dato in libri. Il libro successivo è stato C++ in 21 giorni. Il titolo era molto attraente, ed è per questo che non ho guardato altri libri di qualità superiore. Nonostante ciò, in circa 3 settimane ho copiato tutti i sorgenti del libro e ho già capito qualcosa in C++. Anche se probabilmente non ho capito più nulla di quanto scritto in queste inserzioni. Ma ci sono stati progressi.

Se mi chiedessi quale libro ha influenzato maggiormente la tua carriera, risponderei senza esitazione: "L'arte della programmazione" - D. Knuth. È stato un ricablaggio del cervello. Non posso dirti esattamente come questo libro sia arrivato nelle mie mani, ma ha avuto l’influenza più profonda sulla mia futura carriera.

Carriera di programmatore. Capitolo 2. Scuola o autoeducazione
L'arte della programmazione: da leggere

Compravo libri soprattutto al mercato della radio, aperto solo la domenica. Dopo aver risparmiato altre decine di grivna per la colazione, ho optato per un nuovo libro su C++ o forse Perl. La scelta era piuttosto ampia, ma non avevo un mentore, quindi ho studiato tutto. Ho chiesto al venditore di consigliarmi qualcosa sulla programmazione. E per quanto ricordo, ha preso “The Art of Programming” dallo scaffale. Primo volume". Il libro era chiaramente già stato utilizzato. Gli angoli della copertina erano piegati, e sul retro era visibile un grosso graffio, esattamente dove Bill Gates aveva lasciato la sua recensione: "Se leggi questo libro, dovresti assolutamente mandarmi il tuo curriculum", firmato da lui. Sapevo di Gates dalle riviste e ho pensato che sarebbe stato carino mandargli un curriculum, anche se tutti gli Hacker lo criticavano. Il libro costa 72 UAH. ($ 15), e sono subito corso a casa in tram per studiare nuovo materiale.

Naturalmente, quando avevo 15 anni, non riuscivo a capire quanto fossero profonde e basilari le cose che leggevo. Ma ho cercato diligentemente di completare ogni esercizio. Una volta sono riuscito anche a risolvere correttamente un problema con un punteggio di difficoltà di 25 o 30. Era un capitolo sull'induzione matematica. Anche se non mi piaceva la matematica scolastica e non la capivo bene, ero fuori discussione. L'analisi di Knuth: sono rimasto seduto per ore.
Successivamente, nel secondo capitolo c'erano le strutture dati. Queste immagini e immagini di liste concatenate, alberi binari, pile e code sono ancora davanti ai miei occhi. Nei miei 12 anni di carriera nello sviluppo commerciale, ho utilizzato la maggior parte dei linguaggi di uso generale.
Questi sono C/C++, C#, Java, Python, JavaScript, Delphi. E qualunque fosse il nome del linguaggio, la sua libreria standard conteneva strutture dati e algoritmi descritti da Donald Knuth nel suo libro in tre volumi. Pertanto, imparare qualcosa di nuovo non richiede molto tempo.

Il primo volume è stato divorato abbastanza velocemente. Ho riscritto gli algoritmi forniti nel libro di Knuth nel linguaggio C. Non sempre ha funzionato, ma più mi esercitavo, maggiore era la chiarezza. Lo zelo non è mancato. Terminato il primo volume, sono corso senza esitazione ad acquistare il secondo e il terzo. Per ora ho messo da parte il secondo, ma ho ripreso a fondo il terzo (Ordinamento e ricerca).
Ricordo molto bene come riempivo un intero quaderno, “interpretando” algoritmi di ordinamento e ricerca. Proprio come con le strutture dati, la ricerca binaria e il Quicksort vengono visualizzati nel mio cervello alla velocità della luce, ricordando come appaiono schematicamente nel terzo volume di Knuth.
La frusta è stata letta ovunque. E anche quando andavo per mare, senza un PC nelle vicinanze, continuavo a scrivere algoritmi su un taccuino e a farvi scorrere sequenze di numeri. Ricordo ancora quanto dolore mi ci è voluto per padroneggiare l'heapsort, ma ne è valsa la pena.

Il libro successivo che ha avuto una forte influenza su di me è stato “Il libro del drago”. È anche "Compilatori: principi, tecnologie, strumenti" - A. Aho, R. Seti. È stata preceduta da Herbert Schiltd, con compiti avanzati in C++. È qui che i punti si uniscono.
Grazie a Schildt ho imparato a scrivere parser e interpreti linguistici. E poi il Libro del Drago mi ha spinto a scrivere il mio compilatore C++.

Carriera di programmatore. Capitolo 2. Scuola o autoeducazione
Libro del Drago

A quel punto, mi era stata fornita una connessione Internet potente e ho trascorso molto tempo sul sito Web più popolare per i programmatori: rsdn.ru. Il C++ dominava lì e ogni professionista poteva rispondere a domande che non ero in grado di gestire. Mi ha fatto male e ho capito
che sono lontano da questi ragazzi barbuti, quindi devo studiare l'interno dei vantaggi di "Da e A". Questa motivazione mi ha portato al mio primo progetto serio: il mio compilatore dello standard C++ del 1998. Puoi trovare la storia e le fonti più dettagliate in questo post habr.com/en/post/322656.

Scuola o autoeducazione

Ma torniamo alla realtà fuori dall'IDE. Sebbene a quel punto mi stessi allontanando sempre più dalla vita reale e immergendomi in quella virtuale, la mia età e le norme generalmente accettate mi hanno costretto ad andare al college. È stata una vera tortura. Non avevo assolutamente idea di cosa stavo facendo in questo locale e perché stavo ascoltando queste informazioni. Avevo priorità completamente diverse nella mia testa. Imparare Visual Studio 6.0, provando con WinApi e Delphi 6.
Un sito meraviglioso, firststeps.ru, che mi ha permesso di gioire ad ogni passo che ho fatto, anche se non ne capivo il quadro generale. Ad esempio, nella stessa tecnologia MFC o ActiveX.
E il college? È stata una perdita di tempo. In generale, se tocchiamo il tema degli studi, ho studiato male. Fino al 6 ° grado ero uno studente eccellente, poi i voti C diminuirono e all'8 °-9 ° grado spesso saltavo le lezioni, per le quali ricevevo cinture illusorie dai miei genitori.
Pertanto, anche quando sono arrivato al college, c'era poco entusiasmo.
- Dov'è la programmazione? Mi sono posto una domanda. Ma nella prima metà dell'anno non era presente. Ma c'era l'informatica con MS-DOS e Office, oltre a materie di istruzione generale.

Oltre a ciò, avevo una personalità introversa ed ero molto modesto. Questo nuovo equipaggio eterogeneo chiaramente non ispirava fiducia. Ed era reciproco. Pertanto, vari tipi di prese in giro non si sono fatti attendere. L'ho sopportato a lungo, finché non ho potuto sopportarlo e ho dato un pugno in faccia a uno dei delinquenti proprio in classe. Sì, quindi è volato via alla sua scrivania. Grazie a mio padre: mi ha insegnato a combattere fin dall'infanzia e, se davvero lo volessi, potrei usare la forza fisica. Ma questo è successo molto raramente, più spesso ho sopportato il ridicolo, aspettando il massimo punto di ebollizione.
A proposito, l'autore del reato, molto sorpreso da ciò che stava accadendo, ma sentendo ancora la sua superiorità, mi ha sfidato a una ritorsione. Già nel lotto libero dietro l'istituto scolastico.
Non si trattava dei pugni dei bambini, come accadeva a scuola. C'era un nobile makhach con il naso rotto e molto sangue. Inoltre, il ragazzo non era un ragazzo timido e sferrava abilmente ganci e montanti. Tutti sono rimasti vivi e da allora nessuno mi ha più maltrattato.
in questa “scuola per programmatori”. Ben presto persi completamente la voglia di andarci. Pertanto ho smesso di andarci e nessuna minaccia da parte dei miei genitori ha avuto alcun effetto su di me. Per miracolo, la mia permanenza al college è stata conteggiata per il 10 ° anno di scuola e avevo il diritto di andare all'11 °.

Andrebbe tutto bene, ma l'undicesimo anno si è rivelato non molto migliore del college. Sono tornata a scuola, ho incontrato alcuni ragazzi che conoscevo con i quali avevo studiato fin dalla prima elementare e speravo che tutto andasse bene nella mia città natale. C'era solo una sfumatura: i ragazzi assomigliavano più ai banditi delle serie TV che ai ragazzi con cui ero amico alle elementari. Tutti accorrevano in palestra per aumentare la massa muscolare. Assomigliavo al bambù. Allampanato e molto magro. Naturalmente, un compagno di classe così prepotente potrebbe legarmi con la mano sinistra.
Questo è ciò che ha cominciato ad accadere nel tempo. Qui le mie capacità di combattimento non avevano più alcun effetto. Le categorie di peso erano molto diverse per me e per il resto dei ragazzi della mia classe, una volta nativa. Inoltre, le peculiarità del mio pensiero si sono fatte sentire.

Senza lasciare vagare i pensieri, lasciai anche la scuola. Il posto in cui mi sentivo a mio agio era davanti al monitor di un computer, con la porta della mia stanza chiusa. Aveva senso e intuitivamente sentivo che stavo facendo la cosa giusta. E questa scuola è un'attività inutile, e anche sopportare queste provocazioni, che ogni giorno diventavano sempre più sofisticate... Basta, ne ho abbastanza.
Dopo un altro conflitto in classe, con me nel ruolo principale, ho lasciato la scuola e non ci sono mai più andata.
Per circa 3 mesi sono rimasto a casa, trascorrendo il mio tempo libero imparando C++/WinAPI/MFC e rsdn.ru.
Alla fine il direttore della scuola non ha resistito e ha chiamato a casa.
- “Denis, stai pensando di studiare? O te ne andrai? Decidere. Nessuno ti lascerà nel limbo. - ha detto il regista
"Me ne andrò", ho risposto con sicurezza.

E ancora, la stessa storia. Mi restava sei mesi per completare i miei studi prima di diplomarmi. Non lasciarmi senza crosta. I miei genitori si sono arresi e mi hanno detto di negoziare io stesso con il regista. Sono venuto dal preside della scuola. Mi ha gridato di togliermi il cappello quando sono entrato. Poi chiese severamente: "Cosa dovrei fare con te?" Francamente, io stesso non sapevo cosa fare. Ero abbastanza soddisfatto dello stato attuale delle cose. Alla fine prese la parola:
- “Allora facciamolo. Mi metterò d'accordo con il direttore della nostra scuola serale e tu andrai lì.
- "SÌ"

E la scuola serale era un vero paradiso per i freestyler come me. Vai se vuoi, oppure non andare. C'erano 45 persone nella classe, di cui solo 6-7 si sono presentate alle lezioni. Non sono sicuro che tutti quelli sulla lista fossero vivi e anche liberi. Perché solo in mia presenza i compagni di classe hanno rubato la moto di qualcun altro. Ma il fatto restava un dato di fatto. Potevo migliorare le mie capacità di programmazione senza limiti e andare a scuola quando ne avevo davvero bisogno. Alla fine lo finii e superai gli esami finali. Non hanno chiesto molto e abbiamo anche organizzato una cerimonia di laurea. La laurea in sé è una favola separata. Ricordo che banditi locali e compagni di classe mi presero l'orologio. E appena ho sentito il mio cognome, durante la consegna dei certificati, sono corsa al trotto per prendere il documento e sono volata fuori dalla scuola come un proiettile, per non incorrere più in guai.

L'estate era alle porte. Con Donald Knuth sotto il braccio sulla spiaggia, il mare, il sole e la fatidica decisione di scrivere il proprio grande progetto (compilatore).
To be continued ...

Fonte: habr.com

Aggiungi un commento