Programátorská kariéra. Kapitola 2. Škola alebo samovzdelávanie

Pokračovanie príbehu "Kariéra programátora".

Písal sa rok 2001. Rok, v ktorom bol vydaný najlepší operačný systém - Windows XP. Kedy sa objavil rsdn.ru? Rok narodenia C# a .NET Framework. Prvý rok milénia. A rok exponenciálneho rastu výkonu nového hardvéru: Pentium IV, 256 MB RAM.

Keď som skončil 9. ročník a videli moje nevyčerpateľné nadšenie pre programovanie, moji rodičia sa rozhodli preložiť ma na vysokú školu na programovanie. Verili, že takto to bude lepšie a že ma tam naučia. Slovo vysoká škola sa, mimochodom, tejto inštitúcii, na okraji priemyselného mesta, nehodilo. Bola to obyčajná technická škola, ničím sa nelíšila od iných technických škôl, ktoré nemali na fasáde štítok s módnym nápisom „vysoká škola“.
Dobre. Neprotirečil som rodičom a nenapádal ich rozhodnutie. V každom prípade som sa venoval sebavzdelávaniu a myslel som si, že na tomto novom mieste mi dajú nejaké ďalšie vedomosti.


To leto pred nástupom na vysokú školu som začal dôkladne študovať všetky možné technológie, ktoré boli v časopise publikované "hacker". Čítam a znovu čítam po kúskoch. Páčili sa mi hlavne rozhovory so skutočnými hackermi a ich rady.
Väčšina skvelých hackerov bola na Linuxe. A Mazda (Windows) bola pre lamerov. Každý, kto čítal časopis, si pamätá štýl príspevkov v ňom. Preto v mojej krehkej mysli medzi sebou bojovali dve myšlienky – odísť z Windowsu alebo byť cool a držať sa čisto Linuxu.
Každé nové číslo časopisu Hacker mi dalo nový dôvod na formátovanie disku a inštaláciu buď Linux Red Hat 7 alebo Windows Me. Samozrejme, nemal som žiadny tréningový vektor a robil som to, čo som čítal v časopisoch alebo na pirátskych CD, ako napríklad „Secrets of Hackers“. Paralelne sa vymazala aj inštalácia dvoch operačných systémov po novom v duchu „Windows XP alias papagáj – to je pre gazdinky. A ak chcete robiť vážne veci, musíte pracovať z konzoly Linux so zatvorenými očami.“ Samozrejme, chcel som hacknúť systémy, pochopiť, ako funguje sieť a byť v tom čase všemocným Anonymom.

Disk bol naformátovaný bez akejkoľvek ľútosti a bol naň nainštalovaný distribučný kit unixového systému. Áno áno. Raz som čítal rozhovor so skutočným hackerom, ktorý používa iba FreeBSD 4.3 z konzoly. Zároveň bol zodpovedný za hackovanie bánk a vládnych systémov. Bol to úder blesku do hlavy a 5-krát som nainštaloval OS BSD ako hlavný systém. Problém bol v tom, že po inštalácii tam okrem holej konzoly nebolo nič. Dokonca aj zvuk. A aby bolo možné nainštalovať KDE2 a zapnúť zvuk, bolo potrebné veľa tancovať s tamburínou a opraviť niekoľko konfigurácií.

Programátorská kariéra. Kapitola 2. Škola alebo samovzdelávanie
Distribúcia FreeBSD 4.3 je najviac hackerský OS

O Literatúre

Hneď ako som dostal počítač, začal som kupovať knihy o programovaní. Prvým bol sprievodca „Turbo Pascal 7.0“. To nie je prekvapujúce, pretože som už trochu poznal Pascal z kurzov programovania a mohol som pokračovať v učení sám. Problém bol v tom, že hackeri nepíšu v Pascale. Potom bol v móde jazyk Perl, alebo pre chladnejších chlapcov to bolo C/C++. Aspoň tak to písali v časopise. A prvá kniha, ktorú som dočítal do konca, bola „Programovací jazyk C“ – od Kernighana a Ritchieho. Mimochodom, študoval som v prostredí Linuxu
a na písanie kódu použili gcc a vstavaný editor KDE.

Po tejto knihe bola zakúpená encyklopédia UNIX. Vážil 3 kilogramy a bol vytlačený na stranách A3.
Na prednej strane knihy bolo celovečerné vyobrazenie kresleného diabla s vidlami a vtedy to na Ukrajine stálo 125 hrivien (v roku 25 to bolo asi 2001 dolárov). Na kúpu knihy som si požičal peniaze od kamaráta zo školy a zvyšok pridali rodičia. Potom som s nadšením začal študovať unixové príkazy, editor vim a emacs, štruktúru súborového systému a vnútrajšok konfiguračných súborov. Zhltlo sa takmer 700 strán encyklopédie a ja som sa o krok priblížil k svojmu snu - stať sa Kul-Hatzkerom.

Programátorská kariéra. Kapitola 2. Škola alebo samovzdelávanie
Encyklopédia UNIX - Jedna z prvých kníh, ktoré som prečítal

Všetky peniaze, ktoré mi moji milujúci starí rodičia a rodičia dali, som minula na knihy. Ďalšia kniha bola C++ za 21 dní. Názov bol veľmi atraktívny, a preto som nepozerala iné knihy vyššej kvality. Napriek tomu boli asi za toto obdobie 3 týždňov skopírované všetky zdroje z knihy a už som v C++ niečo pochopil. Aj keď som pravdepodobne nerozumel ničomu viac z toho, čo bolo napísané v týchto zoznamoch. Ale bol tam pokrok.

Ak by ste sa ma spýtali, ktorá kniha najviac ovplyvnila vašu kariéru, bez váhania by som odpovedal – „Umenie programovania“ – D. Knuth. Bolo to prebudovanie mozgu. Nemôžem vám presne povedať, ako sa mi táto kniha dostala do rúk, ale mala najhlbší vplyv na moju budúcu kariéru.

Programátorská kariéra. Kapitola 2. Škola alebo samovzdelávanie
Umenie programovania – treba prečítať

Knihy som kupoval hlavne na rozhlasovom trhu, ktorý bol otvorený len v nedeľu. Keď som ušetril ďalších pár desiatok hrivien na raňajkách, pustil som sa do novej knihy o C++ alebo možno Perle. Výber bol dosť veľký, ale nemal som mentora, tak som študoval všetko. Požiadal som predajcu, aby mi odporučil niečo o programovaní. A pokiaľ si pamätám, vzal z police „Umenie programovania“. Prvý zväzok". Kniha už bola zjavne použitá. Rohy obálky boli ohnuté a na zadnej strane bol viditeľný veľký škrabanec presne tam, kde Bill Gates zanechal svoju recenziu: „Ak čítate túto knihu, určite by ste mi mali poslať svoj životopis,“ podpísaný ním. O Gatesovi som vedel z časopisov a myslel som si, že by bolo fajn poslať mu životopis, aj keď ho všetci hackeri kritizovali. Kniha stála 72 UAH. (15 dolárov) a rýchlo som sa ponáhľal domov električkou študovať nový materiál.

Ako hlboké a základné veci som čítal, samozrejme, nemohol som pochopiť v 15 rokoch. Ale usilovne som sa snažil dokončiť každé cvičenie. Raz sa mi dokonca podarilo správne vyriešiť úlohu s hodnotením obtiažnosti 25 alebo 30. Bola to kapitola o matematickej indukcii. Hoci som nemal rád školskú matematiku a dobre som jej nerozumel, bol som nad podložkou. Knuthova analýza - Sedel som celé hodiny.
Ďalej v druhej kapitole boli dátové štruktúry. Tieto obrázky a obrázky prepojených zoznamov, binárnych stromov, zásobníkov a frontov mám stále pred očami. Počas svojej 12-ročnej kariéry v komerčnom rozvoji som používal väčšinu všeobecných jazykov.
Sú to C/C++, C#, Java, Python, JavaScript, Delphi. A bez ohľadu na to, ako sa tento jazyk nazýval, jeho štandardná knižnica obsahovala dátové štruktúry a algoritmy, ktoré opísal Donald Knuth vo svojej trojzväzkovej knihe. Naučiť sa niečo nové preto nezaberie veľa času.

Prvý diel zhltol pomerne rýchlo. Algoritmy uvedené v Knuthovej knihe som prepísal do jazyka C. Nie vždy to vyšlo, ale čím viac som trénoval, tým to bolo jasnejšie. O elán nebola núdza. Keď som skončil s prvým dielom, bez váhania som si bežal kúpiť druhý a tretí. Druhú som zatiaľ odložil, no tú tretiu (Triedenie a vyhľadávanie) som prebral dôkladne.
Veľmi dobre si pamätám, ako som zaplnil celý zošit, „interpretoval“ triediace a vyhľadávacie algoritmy. Rovnako ako pri dátových štruktúrach, binárne vyhľadávanie a rýchle triedenie sú vizualizované v mojom mozgu rýchlosťou blesku, pamätám si, ako schematicky vyzerajú v treťom zväzku Knuthu.
Všade sa čítal bič. A aj keď som išiel na more, bez PC nablízku, stále som si zapisoval algoritmy do poznámkového bloku a prechádzal cez ne sekvencie čísel. Dodnes si pamätám, koľko bolesti mi dalo zvládnuť hepsort, ale stálo to za to.

Ďalšia kniha, ktorá na mňa mala silný vplyv, bola „Kniha draka“. Je to tiež „Kompilátory: princípy, technológie, nástroje“ – A. Aho, R. Seti. Pred ňou bol Herbert Schiltd s pokročilými úlohami v C++. Tu sa bodky spojili.
Vďaka Schildtovi som sa naučil písať parsery a jazykové tlmočníky. A potom ma Kniha draka podnietila k napísaniu vlastného kompilátora C++.

Programátorská kariéra. Kapitola 2. Škola alebo samovzdelávanie
Kniha draka

V tom čase mi bolo poskytnuté internetové pripojenie na brúsenie modemu a veľa času som strávil na najobľúbenejšej stránke pre programátorov - rsdn.ru. C++ tam dominovalo a každý profík vedel odpovedať na otázky, s ktorými som si nevedel poradiť. Bolelo ma to a pochopil som
že mám od týchto bradatých chlapov ďaleko, takže si musím naštudovať vnútro výhod „Od a Do“. Táto motivácia ma priviedla k môjmu prvému vážnemu projektu – môjmu vlastnému kompilátoru štandardu C++ z roku 1998. Podrobnejšiu históriu a zdroje nájdete v tomto príspevku habr.com/en/post/322656.

Škola alebo samovzdelávanie

Vráťme sa však do reality mimo IDE. Hoci som sa v tom čase čoraz viac vzďaľoval od skutočného života a ponáral som sa do toho virtuálneho, stále ma môj vek a všeobecne uznávané normy prinútili ísť na vysokú školu. Bolo to skutočné mučenie. Absolútne som netušil, čo v tomto podniku robím a prečo počúvam tieto informácie. V hlave som mal úplne iné priority. Naučte sa Visual Studio 6.0, vyskúšajte WinApi a Delphi 6.
Nádherná stránka firststeps.ru, ktorá mi umožnila radovať sa z každého kroku, ktorý som urobil, hoci som nerozumel celkovému obrazu. Napríklad v rovnakej technológii MFC alebo ActiveX.
A čo vysoká škola? Bola to strata času. Vo všeobecnosti, ak sa dotkneme témy štúdia, študoval som zle. Do 6. ročníka som bola výborná žiačka, potom som dostávala C a v 8. – 9. ročníku som často vynechávala vyučovanie, za čo som od rodičov dostávala iluzórne pásy.
Preto, keď som prišiel na vysokú školu, bolo tam tiež málo nadšenia.
- Kde je programovanie? Položil som si otázku. V prvej polovici roka tam ale nebol. Ale bola tam informatika s MS-DOS a Office, aj všeobecnovzdelávacie predmety.

Okrem toho som mal introvertnú povahu a bol som veľmi skromný. Táto nová pestrá posádka zjavne nevzbudzovala dôveru. A bolo to vzájomné. Rôzne druhy posmechu na seba preto nenechali dlho čakať. Vydržal som to dlho, až som to nevydržal a priamo v triede som udrel jedného z previnilcov do tváre. Áno, tak odletel k svojmu stolu. Vďaka môjmu otcovi - od detstva ma učil bojovať a ak som veľmi chcel, mohol som použiť fyzickú silu. Ale to sa stávalo veľmi zriedka, častejšie som znášal výsmech, keď som čakal na maximálny bod varu.
Mimochodom, páchateľ, značne zaskočený tým, čo sa deje, no stále cítiac svoju prevahu, ma vyzval na odvetný súboj. Už na voľnom pozemku za vzdelávacou inštitúciou.
Nebolo to mávanie detí päsťou, ako to bolo v škole. Bol tam ušľachtilý machach s rozbitými nosmi a množstvom krvi. Chlapík tiež nebol bojazlivý a šikovne podával háky a zvršky. Všetci zostali nažive a odvtedy ma už nikto nešikanoval.
na tejto „vysokej škole pre programátorov“. Čoskoro som stratil chuť tam ísť úplne. Preto som tam prestal chodiť a žiadne vyhrážky zo strany rodičov na mňa nezapôsobili. Nejakým zázrakom sa mi pobyt na vysokej škole rátal do 10. ročníka školy a mal som právo ísť do 11. ročníka.

Všetko by bolo v poriadku, ale ukázalo sa, že 11. ročník nie je o nič lepší ako vysoká škola. Vrátil som sa do rodnej školy, stretol som sa s chalanmi, ktorých som poznal, s ktorými som sa učil od prvej triedy, a dúfal som, že v mojom rodnom meste bude všetko v poriadku. Bola tam len jedna nuansa: Chlapci vyzerali skôr ako banditi z televíznych seriálov ako chlapci, s ktorými som bol kamarát na základnej škole. Všetci sa hrnuli do posilňovne, aby nabrali svalovú hmotu. Pripomínala som bambus. Štíhly a veľmi tenký. Samozrejme, takýto tyranský spolužiak by ma mohol zviazať jednou ľavou rukou.
Toto sa časom začalo diať. Tu už moje bojové schopnosti nemali žiadny vplyv. Váhové kategórie boli pre mňa a ostatných chlapcov v mojej kedysi rodnej triede veľmi odlišné. Tiež sa dali pocítiť zvláštnosti môjho myslenia.

Bez toho, aby som nechal svoje myšlienky blúdiť, som odišiel aj zo školy. Tam, kde som sa cítil pohodlne, bol počítačový monitor so zatvorenými dverami do mojej izby. Malo to zmysel a intuitívne som mal pocit, že robím správnu vec. A táto škola je zbytočná činnosť, a ešte vydržať tieto posmešky, ktoré boli každým dňom čoraz sofistikovanejšie... To je všetko, mám toho dosť.
Po ďalšom konflikte v triede so mnou v hlavnej úlohe som školu opustil a už som tam nešiel.
Asi 3 mesiace som sedel doma a trávil svoj voľný čas učením sa C++/WinAPI/MFC a rsdn.ru.
Nakoniec to riaditeľ školy nevydržal a zavolal domov.
- „Denis, uvažuješ o štúdiu? Alebo odídeš? Rozhodnite sa. Nikto ťa nenechá v limbu." - povedal riaditeľ
"Odídem," odpovedala som sebavedomo.

A opäť ten istý príbeh. Do ukončenia štúdia mi ostávalo pol roka do ukončenia školy. Nenechávaj ma bez kôry. Rodičia to so mnou vzdali a povedali mi, aby som išiel sám vyjednávať s riaditeľom. Prišiel som za riaditeľom školy. Keď som vošiel, zakričala na mňa, aby som si zložil klobúk. Potom sa prísne spýtala: "Čo mám s tebou robiť?" Úprimne povedané, sám som nevedel, čo mám robiť. So súčasným stavom som bol celkom spokojný. Nakoniec sa ujala slova:
-"Tak poďme na to. Dohodnem sa s riaditeľom našej večernej školy a pôjdeš tam.“
- "Áno"

A večerná škola bola skutočným rajom pre freestylerov ako som ja. Choď, ak chceš, alebo nechoď. V triede bolo 45 ľudí, z toho len 6-7 sa dostavilo na vyučovanie. Nie som si istý, či všetci na zozname boli nažive a tiež slobodní. Pretože len v mojej prítomnosti spolužiaci ukradli cudziu motorku. Ale skutočnosť zostala skutočnosťou. Mohol som neobmedzene zlepšovať svoje programovacie zručnosti a chodiť do školy, keď som to naozaj potreboval. Nakoniec som to dokončil a zložil záverečné skúšky. Nežiadali veľa a dokonca sme mali promócie. Promócia sama o sebe je samostatná bájka. Pamätám si, že mi hodinky zobrali miestni banditi a spolužiaci. A len čo som pri odovzdávaní vysvedčení začul svoje priezvisko, ponáhľal som sa poklusom po doklad a vyletel som zo školy ako strela, aby som nenarazil na ďalšie problémy.

Leto bolo pred nami. S Donaldom Knuthom pod pažou na pláži, morom, slnkom a osudným rozhodnutím napísať vlastný veľký projekt (kompilátor).
Ak sa chcete pokračovať ...

Zdroj: hab.com

Pridať komentár