Programmering karriere. Kapitel 2. Skole eller selvuddannelse

Fortsættelse af historien "Programmer karriere".

Året var 2001. Året, hvor det fedeste styresystem blev udgivet - Windows XP. Hvornår dukkede rsdn.ru op? Fødselsår for C# og .NET Framework. Årtusindets første år. Og et år med eksponentiel vækst i kraften i ny hardware: Pentium IV, 256 mb ram.

Efter at have afsluttet 9. klasse og set min uudtømmelige entusiasme for programmering, besluttede mine forældre at flytte mig til college til hovedfag i programmering. De troede på, at det ville være bedre på denne måde, og at de ville undervise mig der. Ordet college passede i øvrigt ikke denne institution, i udkanten af ​​en industriby. Det var en almindelig teknisk skole, ikke anderledes end andre tekniske skoler, der ikke hængte en etiket med det moderigtige ord "college" på deres facade.
Godt. Jeg modsagde ikke mine forældre og anfægtede ikke deres beslutning. Jeg var i hvert fald engageret i selvuddannelse, og jeg tænkte, at på dette nye sted ville de give mig noget yderligere viden.


Den sommer før jeg gik på college, begyndte jeg grundigt at studere alle de mulige teknologier, der blev offentliggjort i magasinet "Hacker". Jeg læste og genlæste den i stykker. Jeg kunne især godt lide interviewene med rigtige hackere og deres råd.
De fleste af de seje hackere var på Linux. Og Mazda (Windows) var for lammere. Enhver, der har læst bladet, husker stilen på indlæggene i det. Derfor, i mit skrøbelige sind, kæmpede to ideer indbyrdes - at forlade Windows eller at være cool og holde sig rent til Linux.
Hvert nyt nummer af Hacker magazine gav mig en ny grund til at formatere disken og installere enten Linux Red Hat 7 eller Windows Me. Selvfølgelig havde jeg ingen træningsvektor, og jeg gjorde, hvad jeg læste i magasiner eller på piratkopierede cd'er som "Hackers Secrets". Installationen af ​​to operativsystemer parallelt blev også slettet, efter en ny fyldning i ånden af ​​"Windows XP aka papegøje - dette er for husmødre. Og hvis du vil gøre seriøse ting, skal du arbejde fra Linux-konsollen med lukkede øjne.” Selvfølgelig ville jeg hacke systemer, forstå hvordan netværket fungerer og være den almægtige Anonym på det tidspunkt.

Disken blev formateret uden nogen fortrydelse, og et distributionssæt af et Unix-lignende system blev installeret på den. Ja Ja. Jeg læste engang et interview med en rigtig hacker, der kun bruger FreeBSD 4.3 fra konsollen. Samtidig var han ansvarlig for hacking af banker og offentlige systemer. Det var et lynnedslag i hovedet, og jeg installerede BSD OS som hovedsystem 5 gange. Problemet var, at efter installationen var der intet der undtagen den blottede konsol. Ens lyd. Og for at installere KDE2 og tænde for lyden, var det nødvendigt at danse meget med en tamburin og rette flere konfigurationer.

Programmering karriere. Kapitel 2. Skole eller selvuddannelse
FreeBSD 4.3 distribution er det mest hacker-operative system

Om Litteratur

Så snart jeg fik en computer, begyndte jeg at købe bøger om programmering. Den første var en guide til "Turbo Pascal 7.0". Det er ikke overraskende, for jeg kendte allerede lidt Pascal fra programmeringskurser, og jeg kunne fortsætte med at lære på egen hånd. Problemet var, at hackere ikke skriver i Pascal. Så var Perl-sproget på mode, eller for de sejere fyre var det C/C++. Det skrev de i hvert fald i bladet. Og den første bog, jeg læste til slutningen, var "The C Programming Language" - af Kernighan og Ritchie. Jeg studerede i øvrigt i Linux-miljøet
og brugte gcc og KDE's indbyggede editor til at skrive koden.

Efter denne bog blev UNIX Encyclopedia købt. Den vejede 3 kg og blev trykt på A3-sider.
På forsiden af ​​bogen var der en afbildning i fuld længde af en tegneseriedjævel med en højgaffel, og den kostede dengang 125 Hryvnia i Ukraine (det er omkring 25 $ i 2001). For at købe bogen lånte jeg penge af en skolekammerat, og mine forældre tilføjede resten. Derefter begyndte jeg entusiastisk at studere Unix-kommandoer, vim- og emacs-editoren, strukturen af ​​filsystemet og indersiden af ​​konfigurationsfiler. Næsten 700 sider af encyklopædien blev fortæret, og jeg kom et skridt nærmere min drøm – at blive Kul-Hatzker.

Programmering karriere. Kapitel 2. Skole eller selvuddannelse
UNIX Encyclopedia - En af de første bøger, jeg læste

Jeg brugte alle de penge, som mine kærlige bedsteforældre og forældre gav mig, på bøger. Den næste bog var C++ på 21 dage. Titlen var meget attraktiv, og derfor kiggede jeg ikke på andre bøger af højere kvalitet. På trods af dette blev alle kilderne kopieret fra bogen på cirka denne periode på 3 uger, og jeg forstod allerede noget i C++. Selvom jeg nok ikke forstod mere af, hvad der stod i disse opslag. Men der var fremskridt.

Hvis du spurgte mig, hvilken bog der havde mest indflydelse på din karriere, ville jeg uden tøven svare - "Kunsten at programmere" - D. Knuth. Det var en omledning af hjernen. Jeg kan ikke fortælle dig præcis, hvordan denne bog kom i mine hænder, men den havde den største indflydelse på min fremtidige karriere.

Programmering karriere. Kapitel 2. Skole eller selvuddannelse
Kunsten at programmere - skal læses

Jeg købte hovedsageligt bøger på radiomarkedet, som kun var åbent om søndagen. Efter at have sparet endnu et par snesevis af Hryvnia på morgenmad, gik jeg efter en ny bog om C++ eller måske Perl. Valget var ret stort, men jeg havde ikke en mentor, så jeg studerede alt. Jeg bad sælgeren anbefale mig noget om programmering. Og så vidt jeg husker, tog han "Kunsten at programmere" fra hylden. Første bind". Bogen var tydeligvis allerede brugt. Hjørnerne af omslaget var bøjet, og der var en stor ridse synlig på bagsiden, præcis der hvor Bill Gates havde skrevet sin anmeldelse: "Hvis du læser denne bog, skal du helt sikkert sende mig dit CV," underskrevet af ham. Jeg kendte til Gates fra magasiner, og jeg tænkte, at det ville være rart at sende ham et CV, selvom alle hackerne kritiserede ham. Bogen kostede 72 UAH. ($15), og jeg skyndte mig hurtigt hjem med sporvogn for at studere nyt materiale.

Hvor dybe og grundlæggende ting jeg læste, kunne jeg selvfølgelig ikke forstå som 15-årig. Men jeg prøvede flittigt at gennemføre hver øvelse. Engang lykkedes det mig endda at løse et problem korrekt med en sværhedsgrad på 25 eller 30. Det var et kapitel om matematisk induktion. Selvom jeg ikke kunne lide skolematematik og ikke forstod det godt, var jeg over måtten. Knuths analyse - jeg sad i timevis.
Dernæst var der i andet kapitel datastrukturer. Disse billeder og billeder af linkede lister, binære træer, stakke og køer er stadig foran mine øjne. I min 12-årige karriere inden for kommerciel udvikling har jeg brugt de fleste generelle sprog.
Disse er C/C++, C#, Java, Python, JavaScript, Delphi. Og uanset hvad sproget blev kaldt, indeholdt dets standardbibliotek datastrukturer og algoritmer beskrevet af Donald Knuth i sin trebindsbog. Derfor tager det ikke meget tid at lære noget nyt.

Det første bind blev fortæret ret hurtigt. Jeg omskrev algoritmerne i Knuths bog til sproget C. Det lykkedes ikke altid, men jo mere jeg øvede mig, jo større klarhed kom der. Det skortede ikke på iver. Da jeg var færdig med det første bind, løb jeg uden tøven for at købe det andet og tredje. Jeg lagde den anden til side for nu, men jeg tog den tredje (Sortering og Søgning) grundigt op.
Jeg kan godt huske, hvordan jeg fyldte en hel notesbog, "fortolkede" sorterings- og søgealgoritmer. Ligesom med datastrukturer visualiseres binær søgning og quicksort i min hjerne med lynets hast, idet de husker, hvordan de ser skematisk ud i tredje bind af Knuth.
Pisken blev læst overalt. Og selv når jeg tog til søs, uden en pc i nærheden, skrev jeg stadig algoritmer ned i en notesbog og kørte talsekvenser igennem dem. Jeg husker stadig, hvor meget smerte det tog mig at mestre heapsort, men det var det værd.

Den næste bog, der havde en stærk indflydelse på mig, var "The Book of the Dragon." Det er også "Compilers: Principles, Technologies, Tools" - A. Aho, R. Seti. Hun blev forudsat af Herbert Schiltd, med avancerede opgaver i C++. Det var her, prikkerne kom sammen.
Takket være Schildt lærte jeg at skrive parsere og sprogtolke. Og så fik Dragens Bog mig til at skrive min egen C++ compiler.

Programmering karriere. Kapitel 2. Skole eller selvuddannelse
Dragens bog

På det tidspunkt havde jeg fået en modem-slibende internetforbindelse, og jeg brugte meget tid på det mest populære websted for programmører - rsdn.ru. C++ dominerede der, og alle professionelle kunne besvare spørgsmål, som jeg ikke var i stand til at håndtere. Det gjorde ondt på mig, og jeg forstod
at jeg er langt fra disse skæggede fyre, så jeg er nødt til at studere det indre af fordelene ved "Fra og Til". Denne motivation førte mig til mit første seriøse projekt - min egen compiler af 1998 C++ standarden. Du kan finde mere detaljeret historie og kilder i dette indlæg habr.com/en/post/322656.

Skole eller selvuddannelse

Men lad os vende tilbage til virkeligheden uden for IDE. Selvom jeg på det tidspunkt i stigende grad bevægede mig væk fra det virkelige liv og fordybede mig i det virtuelle, tvang min alder og alment accepterede normer mig stadig til at gå på college. Det var rigtig tortur. Jeg havde absolut ingen idé om, hvad jeg lavede i denne virksomhed, og hvorfor jeg lyttede til denne information. Jeg havde helt andre prioriteter i mit hoved. Lærer Visual Studio 6.0, prøver med WinApi og Delphi 6.
En vidunderlig side, firststeps.ru, som tillod mig at glæde mig over hvert skridt, jeg tog, selvom jeg ikke forstod det overordnede billede. For eksempel i samme teknologi MFC eller ActiveX.
Hvad med college? Det var spild af tid. Generelt, hvis vi berører emnet undersøgelser, studerede jeg dårligt. Indtil 6. klasse var jeg en fremragende elev, og så fik jeg C-karakterer, og i 8.-9. klasse sprang jeg ofte timer over, hvilket jeg fik illusoriske bælter til af mine forældre.
Derfor var der også ringe entusiasme, da jeg kom på college.
- Hvor er programmeringen? Jeg stillede mig selv et spørgsmål. Men han var der ikke i første halvdel af året. Men der var datalogi med MS-DOS og Office, samt almene pædagogiske fag.

Oven i købet havde jeg en indadvendt personlighed og var meget beskeden. Denne nye brogede besætning inspirerede tydeligvis ikke tillid. Og det var gensidigt. Derfor lod forskellige former for hån ikke vente på sig. Jeg holdt det ud i lang tid, indtil jeg ikke kunne holde det ud og slog en af ​​lovovertræderne i ansigtet lige i klassen. Ja, så han fløj væk til sit skrivebord. Takket være min far – han lærte mig at kæmpe siden barndommen, og hvis jeg virkelig ville, kunne jeg bruge fysisk magt. Men dette skete meget sjældent; oftere udholdt jeg latterliggørelse og ventede på det maksimale kogepunkt.
Forøvrigt udfordrede gerningsmanden, der var meget overrasket over det, der skete, men stadig følte sin overlegenhed, mig til en gengældelseskamp. Allerede på den ledige grund bag uddannelsesinstitutionen.
Dette var ikke børns knytnæveviften, som det var tilfældet i skolen. Der var en ædel makhach med brækkede næser og en masse blod. Fyren var heller ikke en frygtsom fyr og leverede dygtigt kroge og uppercuts. Alle forblev i live, og siden har ingen mobbet mig længere.
på dette "højskole for programmører." Jeg mistede hurtigt lysten til at tage dertil fuldstændig. Derfor holdt jeg op med at gå der, og ingen trusler fra mine forældre havde nogen effekt på mig. Ved et mirakel blev mit ophold på college regnet for 10. klasse i skolen, og jeg havde ret til at gå i 11.

Alt ville være fint, men 11. klasse viste sig ikke at være meget bedre end college. Jeg vendte tilbage til min hjemmeskole, mødte nogle fyre, jeg kendte, som jeg havde studeret med siden første klasse, og håbede, at alt ville være godt i min hjemby. Der var kun én nuance: Fyrene lignede mere banditter fra tv-serier end de drenge, som jeg var venner med i folkeskolen. Alle strømmede til fitnesscentret for at få muskelmasse. Jeg lignede bambus. Slank og meget tynd. Selvfølgelig kunne sådan en bølle klassekammerat binde mig med den ene venstre hånd.
Dette er, hvad der begyndte at ske over tid. Her havde mine kampevner ikke længere nogen effekt. Vægtkategorierne var meget forskellige for mig og resten af ​​drengene i min engang hjemmehørende klasse. Også min tænknings ejendommeligheder gjorde sig gældende.

Uden at lade tankerne vandre, forlod jeg også skolen. Hvor jeg følte mig godt tilpas, var foran en computerskærm, med døren til mit værelse lukket. Det gav mening, og intuitivt følte jeg, at jeg gjorde det rigtige. Men denne skole er en ubrugelig aktivitet, og selv at skulle udholde disse hån, som blev mere og mere sofistikerede hver dag... Det er det, jeg har fået nok.
Efter endnu en konflikt i klassen, med mig i hovedrollen, forlod jeg skolen og gik der aldrig igen.
I omkring 3 måneder sad jeg hjemme og brugte min fritid på at lære C++/WinAPI/MFC og rsdn.ru.
Til sidst kunne skoledirektøren ikke holde det ud og ringede hjem.
- "Denis, overvejer du at studere? Eller vil du gå? Beslutte. Ingen vil efterlade dig i limbo." - sagde direktøren
"Jeg går," svarede jeg selvsikkert.

Og igen, den samme historie. Jeg havde et halvt år tilbage til at færdiggøre mine studier, inden jeg blev færdig med skolen. Efterlad mig ikke uden skorpe. Mine forældre opgav mig og bad mig selv gå og forhandle med direktøren. Jeg kom til skolelederen. Hun råbte til mig, at jeg skulle tage hatten af, da jeg kom ind. Så spurgte hun strengt: "Hvad skal jeg gøre med dig?" Helt ærligt vidste jeg ikke selv, hvad jeg skulle gøre. Jeg var ret tilfreds med tingenes nuværende tilstand. Til sidst tog hun ordet:
- "Så lad os gøre det her. Jeg laver en aftale med direktøren for vores aftenskole, og du tager derhen."
- "Ja"

Og aftenskolen var et sandt paradis for freestylere som mig. Gå, hvis du vil, eller gå ikke. Der var 45 personer i klassen, hvoraf kun 6-7 mødte op til undervisningen. Jeg er ikke sikker på, at alle på listen var i live og også fri. For kun i mit nærvær stjal klassekammerater en andens motorcykel. Men faktum forblev et faktum. Jeg kunne opgradere mine programmeringsevner ubegrænset og gå i skole, når jeg virkelig havde brug for det. Jeg endte med at afslutte det og bestå mine afsluttende eksamener. De krævede ikke meget, og vi havde endda en dimissionsceremoni. Graduering i sig selv er en separat fabel. Jeg kan huske, at lokale banditter og klassekammerater tog mit ur. Og så snart jeg hørte mit efternavn, under overrækkelsen af ​​certifikater, skyndte jeg mig i trav for at få dokumentet og fløj ud af skolen som en kugle for ikke at løbe ind i flere problemer.

Sommeren var forude. Med Donald Knuth under armen på stranden, havet, solen og den skæbnesvangre beslutning om at skrive sit eget store projekt (kompilator).
Fortsættes ...

Kilde: www.habr.com

Tilføj en kommentar