Programátorská kariéra. Kapitola 2. Škola nebo sebevzdělávání

Pokračování příběhu "Kariéra programátora".

Psal se rok 2001. Rok, ve kterém byl vydán nejlepší operační systém - Windows XP. Kdy se objevil rsdn.ru? Rok narození C# a .NET Framework. První rok tisíciletí. A rok exponenciálního růstu výkonu nového hardwaru: Pentium IV, 256 MB RAM.

Poté, co jsem dokončil 9. třídu a viděl mé nevyčerpatelné nadšení pro programování, se moji rodiče rozhodli přeložit mě na vysokou školu na obor Programování. Věřili, že to tak bude lepší a že mě tam naučí. Slovo kolej se mimochodem této instituci, na okraji průmyslového města, nehodilo. Byla to obyčejná technická škola, která se nelišila od jiných technických škol, které na fasádu neměly štítek s módním slovem „vysoká škola“.
Studna. Rodičům jsem neodporoval a nenapadl jejich rozhodnutí. V každém případě jsem se věnoval sebevzdělávání a myslel jsem si, že na tomto novém místě mi dají nějaké další znalosti.


To léto před nástupem na vysokou školu jsem začal důkladně studovat všechny možné technologie, které v časopise vycházely "hacker". Četl jsem a znovu četl na kousky. Líbily se mi hlavně rozhovory se skutečnými hackery a jejich rady.
Většina skvělých hackerů byla na Linuxu. A Mazda (Windows) byla pro lamery. Každý, kdo časopis četl, si pamatuje styl příspěvků v něm. Proto mezi sebou v mé křehké mysli bojovaly dvě myšlenky – odejít z Windows nebo být cool a držet se čistě Linuxu.
Každé nové číslo časopisu Hacker mi dalo nový důvod, proč zformátovat disk a nainstalovat buď Linux Red Hat 7 nebo Windows Me. Samozřejmě jsem neměl žádný tréninkový vektor a dělal jsem to, co jsem četl v časopisech nebo na pirátských CD jako „Secrets of Hackers“. Smazána byla i instalace dvou operačních systémů paralelně, po nové nádivce v duchu „Windows XP alias papoušek – to je pro hospodyňky. A pokud chcete dělat vážné věci, musíte pracovat z linuxové konzole se zavřenýma očima.“ Samozřejmě jsem chtěl hackovat systémy, pochopit, jak síť funguje, a být v té době všemocným Anonymem.

Disk byl bez jakékoli lítosti naformátován a byla na něj nainstalována distribuční sada unixového systému. Ano ano. Kdysi jsem četl rozhovor se skutečným hackerem, který používá pouze FreeBSD 4.3 z konzole. Zároveň byl zodpovědný za hackování bank a vládních systémů. Byl to úder blesku do hlavy a 5x jsem nainstaloval BSD OS jako hlavní systém. Problém byl v tom, že po instalaci tam nebylo nic kromě holé konzole. Dokonce i zvuk. A aby bylo možné nainstalovat KDE2 a zapnout zvuk, bylo nutné hodně tančit s tamburínou a opravit několik konfigurací.

Programátorská kariéra. Kapitola 2. Škola nebo sebevzdělávání
Distribuce FreeBSD 4.3 je nejvíce hackerský OS

O literatuře

Jakmile jsem dostal počítač, začal jsem kupovat knihy o programování. První byl průvodce „Turbo Pascal 7.0“. To není překvapivé, protože jsem už z kurzů programování trochu znal Pascal a mohl jsem pokračovat v učení sám. Problém byl v tom, že hackeři nepíší v Pascalu. Pak byl v módě jazyk Perl, nebo pro chladnější kluky to bylo C/C++. Alespoň to psali v časopise. A první kniha, kterou jsem dočetl až do konce, byla „Programovací jazyk C“ – od Kernighana a Ritchieho. Mimochodem, studoval jsem v prostředí Linuxu
a k napsání kódu použil gcc a vestavěný editor KDE.

Po této knize byla zakoupena encyklopedie UNIX. Vážil 3 kilogramy a byl vytištěn na stránkách A3.
Na přední straně knihy bylo celovečerní vyobrazení kresleného čerta s vidlemi a tehdy to na Ukrajině stálo 125 hřiven (to je v roce 25 asi 2001 dolarů). Na koupi knihy jsem si půjčil peníze od kamaráda ze školy a zbytek přidali rodiče. Poté jsem nadšeně začal studovat unixové příkazy, editor vim a emacs, strukturu souborového systému a vnitřnosti konfiguračních souborů. Zhltlo téměř 700 stran encyklopedie a já jsem se o krok přiblížil svému snu - stát se Kul-Hatzkerem.

Programátorská kariéra. Kapitola 2. Škola nebo sebevzdělávání
UNIX Encyklopedie – Jedna z prvních knih, které jsem přečetl

Všechny peníze, které mi moji milující prarodiče a rodiče dali, jsem utratil za knihy. Další kniha byla C++ za 21 dní. Název byl velmi atraktivní, a proto jsem se nedíval na jiné knihy vyšší kvality. Navzdory tomu byly asi za tuto dobu 3 týdnů z knihy zkopírovány všechny zdroje a v C++ jsem už něco pochopil. I když jsem pravděpodobně nepochopil nic víc z toho, co bylo napsáno v těchto seznamech. Ale pokrok tam byl.

Kdybyste se mě zeptali, která kniha nejvíce ovlivnila vaši kariéru, bez váhání bych odpověděl – „Umění programování“ – D. Knuth. Byla to přestavba mozku. Nemohu vám přesně říct, jak se mi tato kniha dostala do rukou, ale měla nejhlubší vliv na mou budoucí kariéru.

Programátorská kariéra. Kapitola 2. Škola nebo sebevzdělávání
Umění programování – nutno přečíst

Knihy jsem kupoval hlavně na rozhlasovém trhu, který byl otevřený jen v neděli. Když jsem ušetřil dalších pár desítek hřiven na snídani, šel jsem pro novou knihu o C++ nebo možná Perlu. Výběr byl docela velký, ale neměl jsem mentora, takže jsem studoval všechno. Požádal jsem prodejce, aby mi doporučil něco o programování. A pokud si pamatuji, vzal z police „Umění programování“. První svazek". Kniha byla zjevně již použita. Rohy obálky byly ohnuté a na zadní straně byl viditelný velký škrábanec, přesně tam, kde Bill Gates zanechal svou recenzi: „Pokud čtete tuto knihu, určitě byste mi měl poslat svůj životopis,“ podepsaný jím. Věděl jsem o Gatesovi z časopisů a říkal jsem si, že by bylo hezké poslat mu životopis, i když ho všichni hackeři kritizovali. Kniha stála 72 UAH. (15 dolarů) a rychle jsem spěchal domů tramvají studovat novou látku.

Jak hluboké a základní věci jsem četl, jsem samozřejmě v 15 letech nemohl pochopit. Ale snažil jsem se pilně dokončit každé cvičení. Jednou se mi dokonce podařilo správně vyřešit úlohu s hodnocením obtížnosti 25 nebo 30. Byla to kapitola o matematické indukci. I když jsem školní matematiku neměl rád a neuměl jsem ji dobře, byl jsem nad podložkou. Knuthova analýza - Seděl jsem hodiny.
Dále ve druhé kapitole byly datové struktury. Tyto obrázky a obrázky propojených seznamů, binárních stromů, zásobníků a front mám stále před očima. Ve své 12leté kariéře v komerčním vývoji jsem používal většinu obecných jazyků.
Jedná se o C/C++, C#, Java, Python, JavaScript, Delphi. A bez ohledu na to, jak se tento jazyk jmenoval, jeho standardní knihovna obsahovala datové struktury a algoritmy popsané Donaldem Knuthem ve své třísvazkové knize. Naučit se něco nového proto nezabere moc času.

První díl byl zhltnut poměrně rychle. Algoritmy uvedené v Knuthově knize jsem přepsal do jazyka C. Ne vždy to fungovalo, ale čím více jsem trénoval, tím větší bylo jasno. O elán nebyla nouze. Když jsem skončil s prvním dílem, bez váhání jsem běžel koupit druhý a třetí. Druhou jsem zatím odložil, ale třetí (Řazení a hledání) jsem si vzal důkladně.
Velmi dobře si pamatuji, jak jsem zaplnil celý sešit a „vykládal“ třídicí a vyhledávací algoritmy. Stejně jako u datových struktur se binární vyhledávání a rychlé řazení vizualizují v mém mozku rychlostí blesku a pamatuji si, jak schematicky vypadají ve třetím díle Knutha.
Všude se četl bič. A i když jsem jel na moře, aniž bych měl poblíž PC, stále jsem si zapisoval algoritmy do notebooku a prováděl je posloupností čísel. Dodnes si pamatuji, jakou bolest mi dalo zvládnout heapsort, ale stálo to za to.

Další knihou, která na mě měla silný vliv, byla „Kniha draka“. Je to také „Kompilátory: Principy, technologie, nástroje“ - A. Aho, R. Seti. Před ní byl Herbert Schiltd s pokročilými úlohami v C++. Tady se tečky spojily.
Díky Schildtovi jsem se naučil psát parsery a jazykové tlumočníky. A pak mě Kniha draka přiměla napsat svůj vlastní kompilátor C++.

Programátorská kariéra. Kapitola 2. Škola nebo sebevzdělávání
Kniha o drakovi

V té době jsem měl k dispozici připojení k internetu s modemem a strávil jsem spoustu času na nejoblíbenějším webu pro programátory - rsdn.ru. C++ tam dominovalo a každý profík dokázal odpovědět na otázky, se kterými jsem si nevěděl rady. Bolelo mě to a pochopil jsem
že k těmto vousatým chlapům mám daleko, takže potřebuji prostudovat vnitřnosti výhod „Od a Do“. Tato motivace mě přivedla k mému prvnímu vážnému projektu – mému vlastnímu kompilátoru standardu C++ z roku 1998. Podrobnější historii a prameny najdete v tomto příspěvku habr.com/en/post/322656.

Škola nebo sebevzdělávání

Ale vraťme se do reality mimo IDE. I když jsem se v té době stále více vzdaloval skutečnému životu a ponořil se do toho virtuálního, stále mě můj věk a obecně uznávané normy donutily jít na vysokou školu. Bylo to skutečné mučení. Absolutně jsem netušil, co v tomto podniku dělám a proč tyto informace poslouchám. Měl jsem v hlavě úplně jiné priority. Naučte se Visual Studio 6.0, zkuste to s WinApi a Delphi 6.
Nádherná stránka firststeps.ru, která mi umožnila radovat se z každého kroku, který jsem udělal, i když jsem nerozuměl celkovému obrazu. Například ve stejné technologii MFC nebo ActiveX.
A co vysoká škola? Byla to ztráta času. Obecně, pokud se dotkneme tématu studií, studoval jsem špatně. Do 6. třídy jsem byl výborný žák, pak jsem dostával C a v 8.-9. třídě jsem často vynechával hodiny, za což jsem od rodičů dostával iluzorní pásy.
Proto, když jsem přišel na vysokou školu, bylo tam také malé nadšení.
- Kde je programování? Položil jsem si otázku. V první polovině roku tam ale nebyl. Ale byla tam informatika s MS-DOS a Office a také všeobecně vzdělávací předměty.

Navíc jsem měl introvertní povahu a byl jsem velmi skromný. Tato nová pestrá posádka zjevně nevzbuzovala důvěru. A bylo to vzájemné. Různé druhy posměchu na sebe proto nenechaly dlouho čekat. Vydržel jsem to dlouho, až jsem to nevydržel a praštil jednoho z pachatelů přímo ve třídě pěstí do obličeje. Ano, tak odletěl ke svému stolu. Díky otci - od dětství mě učil bojovat, a kdybych opravdu chtěl, mohl jsem použít fyzickou sílu. Ale to se stávalo velmi zřídka, častěji jsem snášel posměch a čekal na maximální bod varu.
Mimochodem, pachatel, značně zaskočený tím, co se děje, ale stále cítí svou převahu, mě vyzval k odvetnému boji. Už na volném pozemku za vzdělávací institucí.
Nebylo to mávání dětí pěstí, jako tomu bylo ve škole. Byl tam ušlechtilý makhach s rozbitými nosy a spoustou krve. Ten chlap také nebyl bázlivý chlapík a obratně podával háky a svršky. Všichni zůstali naživu a od té doby mě už nikdo nešikanoval.
na této „vysoké škole pro programátory“. Brzy jsem ztratil chuť tam jít úplně. Proto jsem tam přestal chodit a žádné výhrůžky od rodičů na mě nezapůsobily. Nějakým zázrakem se mi pobyt na vysoké škole započítával do 10. třídy školy a já měl právo jít do 11. třídy.

Všechno by bylo v pořádku, ale ukázalo se, že 11. třída není o moc lepší než vysoká škola. Vrátil jsem se do své rodné školy, potkal jsem pár kluků, které jsem znal, se kterými jsem se učil od první třídy, a doufal, že v mém rodném městě bude všechno v pořádku. Byla tam jen jedna nuance: Kluci vypadali spíš jako bandité z televizních seriálů než kluci, se kterými jsem se kamarádil na základní škole. Všichni se hrnuli do posilovny, aby nabrali svalovou hmotu. Připomínal jsem bambus. Vytáhlá a velmi hubená. Takový tyranský spolužák by mě samozřejmě mohl svázat jednou levou rukou.
To se časem začalo dít. Tady už moje bojové schopnosti neměly žádný vliv. Váhové kategorie byly pro mě a ostatní kluky v mé kdysi rodné třídě velmi odlišné. Také zvláštnosti mého myšlení byly cítit.

Aniž bych nechal myšlenky toulat, odešel jsem také ze školy. Kde jsem se cítil pohodlně, byl před monitorem počítače se zavřenými dveřmi do mého pokoje. Dávalo to smysl a intuitivně jsem měl pocit, že dělám správnou věc. A tahle škola je zbytečná činnost, a ještě vydržet tyhle posměšky, které byly každým dnem víc a víc sofistikovanější... To je ono, už toho mám dost.
Po dalším konfliktu ve třídě se mnou v hlavní roli jsem školu opustil a už jsem tam nešel.
Asi 3 měsíce jsem seděl doma a trávil svůj volný čas učením se C++/WinAPI/MFC a rsdn.ru.
Ředitel školy to nakonec nevydržel a zavolal domů.
- „Denisi, přemýšlíš o studiu? Nebo odejdeš? Rozhodni se. Nikdo tě nenechá v limbu." - řekl ředitel
"Jdu pryč," odpověděl jsem sebevědomě.

A opět stejný příběh. Do ukončení studia mi zbývalo půl roku do ukončení školy. Nenechávej mě bez kůry. Rodiče to se mnou vzdali a řekli mi, ať jdu jednat s ředitelem sám. Přišel jsem za ředitelem školy. Když jsem vešel, křičela na mě, abych si sundal klobouk. Pak se přísně zeptala: "Co mám s tebou dělat?" Upřímně řečeno, sám jsem nevěděl, co mám dělat. Se současným stavem jsem byl celkem spokojený. Nakonec si vzala slovo:
-"Tak to udělejme. Domluvím se s ředitelem naší večerní školy a půjdeš tam."
- "Ano"

A večerní škola byla skutečným rájem pro freestylisty, jako jsem já. Jdi, jestli chceš, nebo nechoď. Ve třídě bylo 45 lidí, z toho jen 6-7 se dostavilo na vyučování. Nejsem si jistý, že všichni na seznamu byli naživu a také svobodní. Protože jen v mé přítomnosti spolužáci ukradli cizí motorku. Ale skutečnost zůstala skutečností. Mohl jsem neomezeně zlepšovat své programátorské dovednosti a chodit do školy, když jsem to opravdu potřeboval. Nakonec jsem to dokončil a složil závěrečné zkoušky. Moc toho nevyžadovali a dokonce jsme měli promoci. Promoce sama o sobě je samostatná bajka. Pamatuji si, že mi místní bandité a spolužáci vzali hodinky. A jakmile jsem při předávání vysvědčení zaslechl své příjmení, vrhl jsem se poklusem pro dokument a vyletěl ze školy jako střela, abych se nedostal do dalších potíží.

Léto bylo před námi. S Donaldem Knuthem pod paží na pláži, mořem, sluncem a osudným rozhodnutím napsat svůj vlastní velký projekt (kompilátor).
Chcete-li se pokračovat ...

Zdroj: www.habr.com

Přidat komentář