Programmering karriere. Kapittel 2. Skole eller egenutdanning

Fortsettelse av historien "Programmerkarriere".

Året var 2001. Året da det kuleste operativsystemet ble utgitt - Windows XP. Når dukket rsdn.ru opp? Fødselsår for C# og .NET Framework. Årtusenets første år. Og et år med eksponentiell vekst i kraften til ny maskinvare: Pentium IV, 256 mb ram.

Etter å ha fullført 9. klasse og sett min uuttømmelige entusiasme for programmering, bestemte foreldrene mine seg for å overføre meg til college til hovedfag i programmering. De trodde at det ville bli bedre på denne måten og at de ville lære meg der. Ordet høyskole passet forresten ikke denne institusjonen, i utkanten av en industriby. Det var en vanlig teknisk skole, ikke forskjellig fra andre tekniske skoler som ikke hengte et merke med det fasjonable ordet "college" på fasaden.
Vi vil. Jeg motsa ikke foreldrene mine og utfordret ikke avgjørelsen deres. Jeg drev i alle fall med egenutdanning, og jeg tenkte at på dette nye stedet ville de gi meg litt tilleggskunnskap.


Den sommeren før jeg gikk på college, begynte jeg å studere alle mulige teknologier som ble publisert i magasinet grundig "Hacker". Jeg leste og leste den i stykker på nytt. Jeg likte spesielt godt intervjuene med ekte hackere og deres råd.
De fleste av de kule hackerne var på Linux. Og Mazda (Windows) var for lammere. Alle som har lest bladet husker stilen på innleggene i det. Derfor, i mitt skjøre sinn, kjempet to ideer seg imellom - å forlate Windows eller å være kul og holde seg rent til Linux.
Hvert nye nummer av Hacker magazine ga meg en ny grunn til å formatere disken og installere enten Linux Red Hat 7 eller Windows Me. Selvfølgelig hadde jeg ingen treningsvektor, og jeg gjorde det jeg leste i magasiner eller på piratkopierte CD-er som «Hackers Secrets». Installasjonen av to operativsystemer parallelt ble også slettet, etter en ny fylling i ånden til "Windows XP aka papegøye - dette er for husmødre. Og hvis du vil gjøre seriøse ting, må du jobbe fra Linux-konsollen med lukkede øyne.» Selvfølgelig ønsket jeg å hacke systemer, forstå hvordan nettverket fungerer og være den allmektige Anonymous på den tiden.

Disken ble formatert uten å angre, og et distribusjonssett av et Unix-lignende system ble installert på den. Ja Ja. Jeg leste en gang et intervju med en ekte hacker som bare bruker FreeBSD 4.3 fra konsollen. Samtidig var han ansvarlig for hacking av banker og statlige systemer. Det var et lynnedslag i hodet, og jeg installerte BSD OS som hovedsystem 5 ganger. Problemet var at etter installasjonen var det ingenting der bortsett fra den nakne konsollen. Jevn lyd. Og for å installere KDE2 og slå på lyden, var det nødvendig å danse mye med en tamburin, og korrigere flere konfigurasjoner.

Programmering karriere. Kapittel 2. Skole eller egenutdanning
FreeBSD 4.3-distribusjonen er det mest hacker-operative operativsystemet

Om litteratur

Så snart jeg fikk en datamaskin begynte jeg å kjøpe bøker om programmering. Den første var en guide til «Turbo Pascal 7.0». Dette er ikke overraskende, for jeg kjente allerede litt Pascal fra programmeringskurs, og jeg kunne fortsette å lære på egenhånd. Problemet var at hackere ikke skriver i Pascal. Da var Perl-språket på moten, eller, for de kulere gutta, var det C/C++. Det er i hvert fall det de skrev i bladet. Og den første boken jeg leste til slutten var "The C Programming Language" - av Kernighan og Ritchie. Jeg studerte forresten i Linux-miljøet
og brukte gcc og KDEs innebygde editor for å skrive koden.

Etter denne boken ble UNIX Encyclopedia kjøpt. Den veide 3 kilo og ble trykket på A3-sider.
På forsiden av boken var det en skildring i full lengde av en tegneseriedjevel med en høygaffel, og den kostet da 125 hryvnia i Ukraina (det er omtrent 25 dollar i 2001). For å kjøpe boken lånte jeg penger av en skolevenninne, og foreldrene mine la til resten. Så begynte jeg entusiastisk å studere Unix-kommandoer, vim- og emacs-editoren, strukturen til filsystemet og innsiden av konfigurasjonsfiler. Nesten 700 sider av leksikonet ble slukt og jeg kom et skritt nærmere drømmen min – å bli Kul-Hatzker.

Programmering karriere. Kapittel 2. Skole eller egenutdanning
UNIX Encyclopedia - En av de første bøkene jeg leste

Jeg brukte alle pengene som mine kjære besteforeldre og foreldre ga meg på bøker. Den neste boken var C++ på 21 dager. Tittelen var veldig attraktiv, og derfor så jeg ikke på andre bøker av høyere kvalitet. Til tross for dette ble alle kildene kopiert fra boken i løpet av denne perioden på 3 uker, og jeg skjønte allerede noe i C++. Selv om jeg sannsynligvis ikke forsto mer av det som ble skrevet i disse oppføringene. Men det var fremgang.

Hvis du spurte meg hvilken bok som påvirket karrieren din mest, ville jeg svare uten å nøle - "Kunsten å programmere" - D. Knuth. Det var en omkobling av hjernen. Jeg kan ikke fortelle deg nøyaktig hvordan denne boken kom i mine hender, men den hadde den største innflytelsen på min fremtidige karriere.

Programmering karriere. Kapittel 2. Skole eller egenutdanning
Kunsten å programmere - må leses

Jeg kjøpte bøker hovedsakelig på radiomarkedet, som bare var åpent på søndager. Etter å ha spart ytterligere noen titalls hryvnia på frokost, gikk jeg for en ny bok om C++ eller kanskje Perl. Valget var ganske stort, men jeg hadde ikke en mentor, så jeg studerte alt. Jeg ba selgeren anbefale meg noe om programmering. Og så vidt jeg husker, tok han «Kunsten å programmere» fra hylla. Første bind". Boken var tydeligvis allerede brukt. Hjørnene på omslaget var bøyd, og det var en stor ripe synlig på baksiden, akkurat der Bill Gates hadde skrevet sin anmeldelse: «Hvis du leser denne boken, bør du definitivt sende meg din CV», signert av ham. Jeg visste om Gates fra magasiner, og jeg tenkte det ville være fint å sende ham en CV, selv om alle hackerne kritiserte ham. Boken kostet 72 UAH. ($15), og jeg skyndte meg raskt hjem med trikken for å studere nytt materiale.

Hvor dype og grunnleggende ting jeg leste, klarte jeg selvfølgelig ikke å forstå som 15-åring. Men jeg prøvde iherdig å fullføre hver øvelse. En gang klarte jeg til og med å løse et problem med en vanskelighetsgrad på 25 eller 30. Det var et kapittel om matematisk induksjon. Selv om jeg ikke likte skolematematikk og ikke skjønte det godt, var jeg over matten. Knuths analyse – jeg satt i timevis.
Deretter, i det andre kapittelet, var det datastrukturer. Disse bildene og bildene av lenkede lister, binære trær, stabler og køer er fortsatt foran øynene mine. I min 12 år lange karriere innen kommersiell utvikling har jeg brukt de fleste generelle språk.
Disse er C/C++, C#, Java, Python, JavaScript, Delphi. Og uansett hva språket ble kalt, inneholdt standardbiblioteket datastrukturer og algoritmer beskrevet av Donald Knuth i sin trebindende bok. Derfor tar det ikke mye tid å lære noe nytt.

Det første bindet ble slukt ganske raskt. Jeg skrev om algoritmene gitt i Knuths bok til C-språket. Det fungerte ikke alltid, men jo mer jeg øvde, jo større klarhet ble det. Det manglet ikke på iver. Etter å ha fullført det første bindet, løp jeg uten å nøle for å kjøpe det andre og tredje. Jeg la den andre til side for nå, men jeg tok opp den tredje (Sortering og søk) grundig.
Jeg husker godt hvordan jeg fylte opp en hel notatbok, "tolket" sorterings- og søkealgoritmer. Akkurat som med datastrukturer, blir binært søk og quicksort visualisert i hjernen min lynraskt, og husker hvordan de ser skjematisk ut i det tredje bindet av Knuth.
Pisken ble lest overalt. Og selv når jeg dro til sjøs, uten en PC i nærheten, skrev jeg fortsatt ned algoritmer i en notatbok og kjørte tallsekvenser gjennom dem. Jeg husker fortsatt hvor mye smerte det tok meg å mestre heapsort, men det var verdt det.

Den neste boken som hadde sterk innflytelse på meg var «The Book of the Dragon». Det er også "Compilers: Principles, Technologies, Tools" - A. Aho, R. Seti. Hun ble innledet av Herbert Schiltd, med avanserte oppgaver i C++. Det var her prikkene kom sammen.
Takket være Schildt lærte jeg å skrive parsere og språktolker. Og så fikk Drakens bok meg til å skrive min egen C++-kompilator.

Programmering karriere. Kapittel 2. Skole eller egenutdanning
Dragens bok

På den tiden hadde jeg fått en internettforbindelse med modem, og jeg brukte mye tid på det mest populære nettstedet for programmerere - rsdn.ru. C++ dominerte der, og alle profesjonelle kunne svare på spørsmål som jeg ikke var i stand til å håndtere. Det såret meg, og jeg forsto
at jeg er langt fra disse skjeggete gutta, så jeg må studere innsiden av fordelene med "Fra og til". Denne motivasjonen førte meg til mitt første seriøse prosjekt - min egen kompilator av 1998 C++-standarden. Du kan finne mer detaljert historie og kilder i dette innlegget habr.com/en/post/322656.

Skole eller egenutdanning

Men la oss gå tilbake til virkeligheten utenfor IDE. Selv om jeg på den tiden i økende grad beveget meg bort fra det virkelige liv og fordypet meg i det virtuelle, tvang alderen min og allment aksepterte normer meg til å gå på college. Det var ekte tortur. Jeg hadde absolutt ingen anelse om hva jeg gjorde i dette etablissementet og hvorfor jeg lyttet til denne informasjonen. Jeg hadde helt andre prioriteringer i hodet. Lærer Visual Studio 6.0, prøver med WinApi og Delphi 6.
Et fantastisk nettsted, firststeps.ru, som tillot meg å glede meg over hvert skritt jeg tok, selv om jeg ikke forsto det generelle bildet. For eksempel i samme teknologi MFC eller ActiveX.
Hva med college? Det var bortkastet tid. Generelt, hvis vi berører emnet studier, studerte jeg dårlig. Fram til 6. klasse var jeg en utmerket elev, og så falt C-karakterene, og i 8.-9. klasse hoppet jeg ofte over timer, som jeg fikk illusoriske belter for av foreldrene mine.
Derfor var det også lite entusiasme da jeg kom på college.
– Hvor er programmeringen? Jeg stilte meg selv et spørsmål. Men han var ikke der i første halvår. Men det var informatikk med MS-DOS og Office, samt allmennpedagogiske fag.

På toppen av det hadde jeg en innadvendt personlighet og var veldig beskjeden. Dette nye brokete mannskapet inspirerte tydeligvis ikke tillit. Og det var gjensidig. Derfor lot ikke ulike typer hån vente på seg. Jeg holdt ut lenge, helt til jeg ikke orket og slo en av lovbryterne i ansiktet rett i timen. Ja, så han fløy bort til skrivebordet sitt. Takket være faren min – han lærte meg å kjempe siden barndommen, og hvis jeg virkelig ville, kunne jeg bruke fysisk makt. Men dette skjedde veldig sjelden; oftere tålte jeg latterliggjøring og ventet på det maksimale kokepunktet.
Forøvrig utfordret lovbryteren, sterkt overrasket over det som skjedde, men som fortsatt følte sin overlegenhet, meg til en gjengjeldelseskamp. Allerede på den ledige tomten bak lærestedet.
Dette var ikke barnas knyttnevevinking, slik tilfellet var på skolen. Det var en edel makhach med brukne neser og mye blod. Fyren var heller ikke en sjenert fyr og leverte dyktig kroker og uppercuts. Alle holdt seg i live, og siden har ingen mobbet meg lenger.
ved denne "høgskolen for programmerere." Jeg mistet snart lysten til å reise dit helt. Derfor sluttet jeg å gå dit, og ingen trusler fra foreldrene mine hadde noen effekt på meg. Ved et mirakel ble mitt opphold på college regnet for 10. klasse på skolen, og jeg hadde rett til å gå til 11.

Alt ville være bra, men 11. klasse viste seg ikke å være mye bedre enn college. Jeg kom tilbake til hjemmeskolen, møtte noen gutter jeg kjente som jeg hadde studert med siden første klasse, og håpet at alt ville bli bra i hjembyen min. Det var bare en nyanse: Gutta så mer ut som banditter fra TV-serier enn guttene jeg var venner med på barneskolen. Alle strømmet til treningsstudioet for å få muskelmasse. Jeg lignet på bambus. Slank og veldig tynn. Selvfølgelig kunne en slik mobbe-klassekamerat binde meg opp med en venstre hånd.
Det var dette som begynte å skje over tid. Her hadde ikke kampferdighetene mine lenger noen effekt. Vektkategoriene var veldig forskjellige for meg og resten av guttene i min en gang hjemmehørende klasse. Dessuten gjorde de særegenheter ved min tenkning seg gjeldende.

Uten å la tankene vandre, sluttet jeg også på skolen. Der jeg følte meg komfortabel var foran en dataskjerm, med døren til rommet mitt lukket. Det ga mening og intuitivt følte jeg at jeg gjorde det rette. Og denne skolen er en ubrukelig aktivitet, og til og med å tåle disse hånene, som hver dag ble mer og mer sofistikerte... Det er det, jeg har fått nok.
Etter nok en konflikt i klassen, med meg i hovedrollen, forlot jeg skolen og dro aldri dit igjen.
I omtrent 3 måneder satt jeg hjemme og brukte fritiden min på å lære C++/WinAPI/MFC og rsdn.ru.
Til slutt klarte ikke skoledirektøren det og ringte hjem.
– «Denis, tenker du på å studere? Eller vil du dra? Bestemme seg for. Ingen vil forlate deg i limbo.» - sa direktøren
"Jeg drar," svarte jeg selvsikkert.

Og igjen, den samme historien. Jeg hadde et halvt år igjen til å fullføre studiene før jeg ble ferdig med skolen. Ikke la meg stå uten skorpe. Foreldrene mine ga meg opp og ba meg gå og forhandle med direktøren selv. Jeg kom til rektor. Hun ropte til meg at jeg skulle ta av meg hatten da jeg kom inn. Så spurte hun strengt: "Hva skal jeg gjøre med deg?" For å være ærlig, visste jeg ikke hva jeg skulle gjøre. Jeg var ganske fornøyd med tingenes tilstand nå. Til slutt tok hun ordet:
– «Så la oss gjøre dette. Jeg gjør en avtale med direktøren for kveldsskolen vår, så drar du dit.»
- "Ja"

Og kveldsskolen var et virkelig paradis for freestylere som meg. Gå om du vil, eller ikke gå. Det var 45 personer i klassen, hvorav kun 6-7 møtte opp til timene. Jeg er ikke sikker på at alle på listen var i live og også gratis. For bare i mitt nærvær stjal klassekamerater andres motorsykkel. Men faktum forble et faktum. Jeg kunne oppgradere programmeringsferdighetene mine ubegrenset, og gå på skolen når jeg virkelig trengte det. Det endte med at jeg fullførte den og bestod siste eksamen. De krevde ikke mye, og vi hadde til og med en konfirmasjonsseremoni. Eksamen i seg selv er en egen fabel. Jeg husker at lokale banditter og klassekamerater tok klokken min. Og så snart jeg hørte etternavnet mitt, under overrekkelsen av sertifikater, skyndte jeg meg i trav for å hente dokumentet og fløy ut av skolen som en kule, for ikke å få flere problemer.

Sommeren var foran. Med Donald Knuth under armen på stranden, havet, solen og den skjebnesvangre beslutningen om å skrive sitt eget store prosjekt (kompilator).
To be continued ...

Kilde: www.habr.com

Legg til en kommentar