Programerska kariera. Poglavje 2. Šola ali samoizobraževanje

Nadaljevanje zgodbe "Programerska kariera".

Pisalo se je leto 2001. Leto, v katerem je izšel najbolj kul operacijski sistem - Windows XP. Kdaj se je pojavil rsdn.ru? Letnica rojstva C# in .NET Framework. Prvo leto tisočletja. In leto eksponentne rasti moči nove strojne opreme: Pentium IV, 256 mb ram.

Po končanem 9. razredu in ko sta videla moje neusahljivo navdušenje nad programiranjem, sta se starša odločila, da me prepišeta na fakulteto na smer Programiranje. Verjeli so, da bo tako bolje in da me bodo tam učili. Beseda kolidž, mimogrede, tej ustanovi, na obrobju industrijskega mesta, ni ustrezala. Bila je navadna tehniška šola, nič drugačna od drugih tehničnih šol, ki na fasadi niso visele nalepke z modnim napisom »fakultet«.
No. Nisem nasprotoval svojim staršem in nisem izpodbijal njihove odločitve. Vsekakor sem se samoizobraževal in mislil sem, da mi bodo na tem novem mestu dali nekaj dodatnega znanja.


Tisto poletje pred odhodom na fakulteto sem začel temeljito preučevati vse možne tehnologije, ki so bile objavljene v reviji "heker". Berem in prebiram na koščke. Še posebej so mi bili všeč intervjuji s pravimi hekerji in njihovi nasveti.
Večina kul hekerjev je bila na Linuxu. In Mazda (Windows) je bila za lamerje. Kdor je prebral revijo, se spomni sloga objav v njej. Zato sta se v mojem krhkem umu borili dve ideji - zapustiti Windows ali biti kul in se držati zgolj Linuxa.
Vsaka nova številka revije Hacker mi je dala nov razlog za formatiranje diska in namestitev Linux Red Hat 7 ali Windows Me. Seveda nisem imel nobenega vektorja za usposabljanje in delal sem tisto, kar sem prebral v revijah ali na piratskih CD-jih, kot je »Skrivnosti hekerjev«. Izbrisana je bila tudi vzporedna namestitev dveh operacijskih sistemov, po novem polnjenju v duhu »Windows XP aka papiga - to je za gospodinje. In če hočeš delati resne stvari, moraš delati na konzoli Linux z zaprtimi očmi.« Seveda sem želel vdirati v sisteme, razumeti, kako deluje omrežje in biti takrat vsemogočni Anonymous.

Disk je bil brez obžalovanja formatiran in nanj nameščen distribucijski komplet sistema, podobnega Unixu. Da Da. Nekoč sem bral intervju s pravim hekerjem, ki uporablja samo FreeBSD 4.3 iz konzole. Hkrati je bil odgovoren za vdore v banke in vladne sisteme. Šlo je za udar strele v glavo, BSD OS pa sem namestil 5x kot glavni sistem. Težava je bila v tem, da po namestitvi ni bilo ničesar razen gole konzole. Tudi zvok. In da bi namestil KDE2 in vklopil zvok, je bilo treba veliko plesati s tamburinom in popraviti več konfiguracij.

Programerska kariera. Poglavje 2. Šola ali samoizobraževanje
Distribucija FreeBSD 4.3 je najbolj hekerski OS

O literaturi

Takoj ko sem dobil računalnik, sem začel kupovati knjige o programiranju. Prvi je bil vodnik po "Turbo Pascal 7.0". To ni presenetljivo, saj sem nekaj malega Pascala poznal že na tečajih programiranja in bi lahko nadaljeval z učenjem sam. Težava je bila v tem, da hekerji ne pišejo v Pascalu. Takrat je bil v modi jezik Perl ali, za bolj kul fante, C/C++. Vsaj tako so zapisali v reviji. In prva knjiga, ki sem jo prebral do konca, je bila "Programski jezik C" - avtorjev Kernighan in Ritchie. Mimogrede, študiral sem v okolju Linux
in uporabil gcc in vgrajeni urejevalnik KDE za pisanje kode.

Po tej knjigi je bila kupljena Enciklopedija UNIX. Tehtala je 3 kilograme in je bila natisnjena na A3 straneh.
Na sprednji strani knjige je bila celovečerna upodobitev risanega hudiča z vilami, v Ukrajini pa je tedaj stala 125 grivn (leta 25 je to približno 2001 dolarjev). Za nakup knjige sem si sposodila denar od šolskega prijatelja, ostalo pa so dodali starši. Nato sem z navdušenjem začel preučevati Unixove ukaze, urejevalnik vim in emacs, strukturo datotečnega sistema in notranjosti konfiguracijskih datotek. Skoraj 700 strani enciklopedije je bilo požrtih in postal sem korak bližje svojim sanjam – postati Kul-Hatzker.

Programerska kariera. Poglavje 2. Šola ali samoizobraževanje
Enciklopedija UNIX - ena prvih knjig, ki sem jih prebral

Ves denar, ki so mi ga dali ljubeči stari starši in starši, sem porabil za knjige. Naslednja knjiga je bila C++ v 21 dneh. Naslov je bil zelo privlačen in zato nisem gledal drugih kvalitetnejših knjig. Kljub temu so bili vsi viri prekopirani iz knjige v približno tem obdobju 3 tednov in nekaj sem že razumel v C++. Čeprav verjetno nisem več razumel, kaj piše v teh seznamih. Vendar je bil napredek.

Če bi me vprašali, katera knjiga je najbolj vplivala na vašo kariero, bi brez oklevanja odgovoril - “Umetnost programiranja” - D. Knuth. Šlo je za preoblikovanje možganov. Ne morem vam natančno povedati, kako je ta knjiga prišla v moje roke, vendar je imela najmočnejši vpliv na mojo nadaljnjo kariero.

Programerska kariera. Poglavje 2. Šola ali samoizobraževanje
Umetnost programiranja - obvezno branje

Knjige sem kupovala predvsem na radijski tržnici, ki je bila odprta samo ob nedeljah. Ko sem pri zajtrku prihranil še nekaj deset grivn, sem šel po novo knjigo o C++ ali morda Perlu. Izbira je bila kar velika, a nisem imel mentorja, zato sem študiral vse. Prodajalca sem prosil, da mi priporoči nekaj o programiranju. In kolikor se spomnim, je s police vzel "Umetnost programiranja". Prvi zvezek". Knjiga je bila očitno že uporabljena. Vogali platnice so bili upognjeni, na zadnji strani pa je bila vidna velika praska, natanko tam, kjer je Bill Gates pustil svojo recenzijo: »Če berete to knjigo, mi vsekakor pošljite svoj življenjepis,« ga je podpisal. Za Gatesa sem vedel iz revij in mislil sem, da bi bilo lepo, če bi mu poslal življenjepis, čeprav so ga vsi hekerji kritizirali. Knjiga je stala 72 UAH. (15 $), in hitro sem odhitel domov s tramvajem, da bi preučil novo snov.

Kako globoke in osnovne stvari berem, seveda pri 15 letih nisem mogel razumeti. Vendar sem se marljivo trudil dokončati vsako vajo. Enkrat mi je celo uspelo pravilno rešiti nalogo s težavnostno oceno 25 ali 30. To je bilo poglavje o matematični indukciji. Čeprav šolske matematike nisem maral in je nisem dobro razumel, sem bil nad mat. Knuthova analiza - ure in ure sem sedel.
Nato v drugem poglavju so bile podatkovne strukture. Te slike in slike povezanih seznamov, binarnih dreves, skladov in čakalnih vrst so še vedno pred mojimi očmi. V svoji 12-letni karieri v komercialnem razvoju sem uporabljal večino jezikov za splošno uporabo.
To so C/C++, C#, Java, Python, JavaScript, Delphi. In ne glede na to, kako se je jezik imenoval, je njegova standardna knjižnica vsebovala podatkovne strukture in algoritme, ki jih je opisal Donald Knuth v svoji knjigi s tremi zvezki. Zato učenje nečesa novega ne vzame veliko časa.

Prvi zvezek je bil dokaj hitro požrten. Algoritme, podane v Knuthovi knjigi, sem prepisal v jezik C. Ni se vedno obneslo, a bolj ko sem vadil, večja je bila jasnost. Vneme ni manjkalo. Ko sem končal s prvim zvezkom, sem brez oklevanja stekel kupit drugega in tretjega. Drugega sem za zdaj pustil na strani, tretjega (Razvrščanje in iskanje) pa sem se lotil temeljito.
Dobro se spomnim, kako sem napolnil cel zvezek in si »tolmačil« algoritme za razvrščanje in iskanje. Tako kot pri podatkovnih strukturah se binarno iskanje in hitro razvrščanje vizualizirata v mojih možganih z bliskovito hitrostjo in se spomnim, kako sta shematično videti v tretjem zvezku Knutha.
Bič se je bral povsod. In tudi ko sem šel na morje, brez računalnika v bližini, sem še vedno zapisoval algoritme v zvezek in po njih preganjal zaporedja števil. Še vedno se spomnim, koliko bolečine mi je vzelo, da sem obvladal heapsort, vendar je bilo vredno.

Naslednja knjiga, ki je name močno vplivala, je bila »Zmajeva knjiga«. Je tudi “Prevajalniki: principi, tehnologije, orodja” - A. Aho, R. Seti. Pred njo je bil Herbert Schiltd z naprednimi nalogami v C++. Tu so se združile pike.
Zahvaljujoč Schildtu sem se naučil pisati razčlenjevalnike in tolmače jezika. In potem me je Zmajeva knjiga spodbudila, da napišem lasten prevajalnik C++.

Programerska kariera. Poglavje 2. Šola ali samoizobraževanje
Zmajeva knjiga

Takrat sem že dobil internetno povezavo, ki melje modem, in veliko časa sem preživel na najbolj priljubljeni strani za programerje - rsdn.ru. Tam je prevladoval C++ in vsak profesionalec je lahko odgovoril na vprašanja, ki jih jaz nisem mogel obravnavati. Bolelo me je in razumela sem
da sem daleč od teh bradatih tipov, zato moram preučiti notranjost prednosti "Od in do". Ta motivacija me je pripeljala do prvega resnega projekta - lastnega prevajalnika standarda C++ iz leta 1998. Podrobnejšo zgodovino in vire najdete v tej objavi habr.com/en/post/322656.

Šola ali samoizobraževanje

Toda vrnimo se k realnosti zunaj IDE. Čeprav sem se takrat vse bolj odmikal od resničnega življenja in se poglabljal v virtualnega, so me leta in splošno sprejete norme vseeno prisilile, da sem šel na fakulteto. Bilo je pravo mučenje. Popolnoma nisem vedel, kaj počnem v tej ustanovi in ​​zakaj poslušam te informacije. V glavi sem imela čisto druge prioritete. Učenje Visual Studio 6.0, poskus z WinApi in Delphi 6.
Čudovita stran, firststeps.ru, ki mi je omogočila, da sem se veselil vsakega koraka, ki sem ga naredil, čeprav nisem razumel celotne slike. Na primer, v isti tehnologiji MFC ali ActiveX.
Kaj pa fakulteta? Bila je izguba časa. Na splošno, če se dotakneva teme študija, sem študiral slabo. Do 6. razreda sem bil odličen učenec, potem pa sem dobil trojke, do 8.-9. razreda pa sem pogosto izostal pri pouku, za kar sem od staršev prejel iluzorne pasove.
Zato je bilo tudi navdušenja, ko sem prišel na fakulteto, malo.
- Kje je programiranje? Zastavil sem si vprašanje. A v prvi polovici leta ga ni bilo. Bilo pa je računalništvo z MS-DOS in Office ter splošnoizobraževalni predmeti.

Poleg tega sem bil introvertiran in zelo skromen. Ta nova pestra ekipa očitno ni vzbujala zaupanja. In bilo je obojestransko. Zato ni bilo treba dolgo čakati na različne vrste norčevanja. Dolgo sem to prenašal, dokler nisem zdržal in sem kar v razredu enega od kršiteljev udaril v obraz. Da, torej je odletel do svoje mize. Hvala očetu - že od otroštva me je učil boriti, in če bi res želel, bi lahko uporabil fizično silo. Toda to se je zgodilo zelo redko, pogosteje sem prenašal posmeh in čakal na najvišje vrelišče.
Mimogrede me je storilec, ki je bil močno presenečen nad dogajanjem, a je še vedno čutil svojo premoč, izzval na povračilni boj. Že na praznem zemljišču za izobraževalnim zavodom.
To ni bilo otroško mahanje s pestmi, kot je bilo v šoli. Bil je plemeniti mahač z zlomljenimi nosovi in ​​veliko krvi. Fant tudi ni bil plašen in je spretno izvajal kavlje in aperkate. Vsi so ostali živi in ​​od takrat me ni nihče več ustrahoval.
na tej "fakulteti za programerje". Kmalu sem popolnoma izgubil željo, da bi šel tja. Zato sem nehala hoditi tja in nobene grožnje staršev name niso vplivale. Po nekem čudežu se mi je bivanje na faksu štelo v 10. razred šole in imela sem pravico do 11.

Vse bi bilo v redu, vendar se je izkazalo, da 11. razred ni veliko boljši od fakultete. Vrnila sem se v domačo šolo, srečala nekaj fantov, ki sem jih poznala in s katerimi sem se učila že od prvega razreda, in upala, da bo v domačem kraju vse v redu. Bila je samo ena niansa: fantje so bili bolj podobni razbojnikom iz televizijskih serij kot fantom, s katerimi sem prijateljeval v osnovni šoli. Vsi so se zgrinjali v telovadnico, da bi pridobili mišično maso. Bil sem podoben bambusu. Debel in zelo suh. Seveda bi me lahko tak nasilen sošolec z eno levo roko zvezal.
To se je sčasoma začelo dogajati. Tukaj moje borilne sposobnosti niso imele več nobenega učinka. Težnostne kategorije so bile zame in ostale fante v mojem nekoč domačem razredu zelo različne. Čutile so se tudi posebnosti mojega razmišljanja.

Ne da bi mi misli begale, sem zapustil tudi šolo. Udobno sem se počutil pred računalniškim monitorjem, pri zaprtih vratih moje sobe. Imelo je smisel in intuitivno sem čutil, da delam pravo stvar. In ta šola je nekoristna dejavnost, pa še prenašati te zmerljivke, ki so vsak dan bolj prefinjene ... To je to, dovolj imam.
Po še enem konfliktu v razredu, ko sem bil jaz v glavni vlogi, sem zapustil šolo in tja nisem nikoli več šel.
Približno 3 mesece sem sedel doma in svoj prosti čas preživljal z učenjem C++/WinAPI/MFC in rsdn.ru.
Na koncu direktor šole ni zdržal in je poklical domov.
- »Denis, razmišljaš o študiju? Ali pa boš odšel? Odločite se. Nihče vas ne bo pustil v negotovosti.« - je rekel direktor
"Odšel bom," sem samozavestno odgovoril.

In spet ista zgodba. Do diplome mi je ostalo še pol leta za dokončanje študija. Ne pusti me brez skorje. Starši so nad mano obupali in rekli, naj se grem sam pogajati z direktorjem. Prišel sem do ravnatelja šole. Zavpila mi je, naj snamem klobuk, ko sem vstopil. Nato je ostro vprašala: "Kaj naj naredim s tabo?" Odkrito povedano, sama nisem vedela, kaj naj naredim. S trenutnim stanjem sem bil zelo zadovoljen. Nazadnje je prevzela besedo:
- »Potem pa naredimo to. Dogovoril se bom z direktorjem naše večerne šole in šel boš tja.«
- "Da"

In večerna šola je bila pravi raj za freestylerje, kot sem jaz. Pojdi, če hočeš, ali pa ne pojdi. V razredu je bilo 45 ljudi, od tega jih je le 6-7 prišlo na pouk. Nisem prepričan, da so bili vsi na seznamu živi in ​​tudi svobodni. Ker samo v moji prisotnosti so sošolci nekomu drugemu ukradli motor. A dejstvo je ostalo dejstvo. Svoje znanje programiranja sem lahko nadgrajeval neomejeno in hodil v šolo, ko sem to res potreboval. Na koncu sem ga končal in opravil zadnje izpite. Niso zahtevali veliko in imeli smo celo podelitev diplom. Diploma je sama po sebi posebna zgodba. Spominjam se, da so mi lokalni banditi in sošolci vzeli uro. In ko sem med podelitvijo spričeval zaslišala svoj priimek, sem v kasu planila po listino in odletela iz šole kot izstreljena, da ne bi imela več težav.

Poletje je bilo pred nami. Z Donaldom Knuthom pod roko na plaži, morju, soncu in usodni odločitvi, da napiše svoj veliki projekt (prevajalec).
Se nadaljuje ...

Vir: www.habr.com

Dodaj komentar