Programerska karijera. Poglavlje 2. Škola ili samoobrazovanje

Nastavak priče "Programerska karijera".

Godina je bila 2001. Godina u kojoj je izašao najkul operativni sistem - Windows XP. Kada se pojavio rsdn.ru? Godina rođenja C# i .NET Framework. Prva godina milenijuma. I godina eksponencijalnog rasta snage novog hardvera: Pentium IV, 256 mb ram.

Nakon što sam završio 9. razred i uvidevši moj neiscrpni entuzijazam za programiranje, moji roditelji su odlučili da me prebace na fakultet na smer programiranje. Vjerovali su da će ovako biti bolje i da će me tamo učiti. Riječ fakultet, inače, nije pristajala ovoj ustanovi, na periferiji industrijskog grada. Bila je to obična tehnička škola, koja se ne razlikuje od ostalih tehničkih škola koje na fasadi nisu okačili etiketu sa pomodnom riječju „fakultet“.
Pa. Nisam protivrečio roditeljima i nisam osporio njihovu odluku. U svakom slučaju, bavio sam se samoobrazovanjem i mislio sam da će mi na ovom novom mjestu dati neka dodatna znanja.


Tog ljeta prije odlaska na fakultet, počeo sam temeljno proučavati sve moguće tehnologije koje su objavljene u časopisu "haker". Čitao sam i ponovo čitao na komade. Posebno su mi se svidjeli intervjui sa pravim hakerima i njihovi savjeti.
Većina cool hakera bila je na Linuxu. A Mazda (Windows) je bila za lamere. Svako ko je čitao časopis sjeća se stila postova u njemu. Stoga su se, u mom krhkom umu, međusobno sukobile dvije ideje - napustiti Windows ili biti cool i držati se čisto Linuxa.
Svaki novi broj časopisa Hacker davao mi je novi razlog da formatiram disk i instaliram ili Linux Red Hat 7 ili Windows Me. Naravno, nisam imao nikakav vektor obuke, a radio sam ono što sam čitao u časopisima ili na piratskim CD-ovima poput „Tajne hakera“. Izbrisana je i paralelna instalacija dva operativna sistema, nakon novog punjenja u duhu „Windows XP aka papagaj - ovo je za domaćice. A ako želite da radite ozbiljne stvari, morate raditi sa Linux konzole zatvorenih očiju.” Naravno, želio sam hakovati sisteme, razumjeti kako mreža funkcionira i biti svemoćni Anonymous u to vrijeme.

Disk je formatiran bez ikakvog žaljenja, a na njega je instaliran distribucijski komplet Unix sistema. Da da. Jednom sam pročitao intervju sa pravim hakerom koji koristi samo FreeBSD 4.3 sa konzole. Istovremeno je bio odgovoran za hakovanje banaka i državnih sistema. Bio je to udar groma u glavu, i instalirao sam BSD OS kao glavni sistem 5 puta. Problem je bio u tome što nakon instalacije nije bilo ničega osim gole konzole. Čak i zvuk. A da bi se instalirao KDE2 i uključio zvuk, bilo je potrebno puno plesati uz tamburicu i ispraviti nekoliko konfiguracija.

Programerska karijera. Poglavlje 2. Škola ili samoobrazovanje
FreeBSD 4.3 distribucija je najhakerskiji OS

O književnosti

Čim sam dobio kompjuter, počeo sam da kupujem knjige o programiranju. Prvi je bio vodič za "Turbo Pascal 7.0". To nije iznenađujuće, jer sam već malo poznavao Pascal sa kurseva programiranja, a mogao sam i dalje da učim. Problem je bio što hakeri ne pišu na Pascalu. Tada je Perl jezik bio u modi, ili, za hladnije momke, to je bio C/C++. Tako su barem pisali u časopisu. I prva knjiga koju sam pročitao do kraja bila je “Programski jezik C” - od Kernighana i Ritchieja. Inače, studirao sam u Linux okruženju
i koristio gcc i KDE-ov ugrađeni editor za pisanje koda.

Nakon ove knjige, kupljena je UNIX enciklopedija. Bio je težak 3 kilograma i štampan je na A3 stranicama.
Na prednjoj strani knjige bio je prikaz u punoj veličini crtanog đavola s vilama, a tada je u Ukrajini koštao 125 grivna (to je oko 25 dolara 2001.). Da kupim knjigu, pozajmio sam novac od školskog druga, a moji roditelji su dodali ostatak. Zatim sam sa entuzijazmom počeo da proučavam Unix komande, vim i emacs editor, strukturu sistema datoteka i unutrašnjost konfiguracionih fajlova. Skoro 700 stranica enciklopedije je progutano i postao sam korak bliže svom snu – da postanem Kul-Hatzker.

Programerska karijera. Poglavlje 2. Škola ili samoobrazovanje
UNIX Enciklopedija - Jedna od prvih knjiga koje sam pročitao

Sav novac koji su mi dali moji baka i deda i roditelji potrošio sam na knjige. Sledeća knjiga je bila C++ za 21 dan. Naslov je bio vrlo atraktivan i zato nisam gledao druge kvalitetnije knjige. Uprkos tome, svi izvori su kopirani iz knjige za otprilike ovaj period od 3 nedelje, a ja sam već razumeo nešto u C++. Mada vjerovatno više nisam razumio šta je napisano u ovim oglasima. Ali bilo je napretka.

Kada biste me pitali koja je knjiga najviše uticala na vašu karijeru, bez oklijevanja bih vam odgovorio – “Umjetnost programiranja” – D. Knuth. To je bilo ponovno povezivanje mozga. Ne mogu vam tačno reći kako je ova knjiga došla u moje ruke, ali je imala najdublji uticaj na moju buduću karijeru.

Programerska karijera. Poglavlje 2. Škola ili samoobrazovanje
Umetnost programiranja - obavezno pročitati

Knjige sam kupovao uglavnom na radio pijaci, koja je bila otvorena samo nedjeljom. Pošto sam uštedio još nekoliko desetina grivna na doručku, otišao sam po novu knjigu o C++-u ili možda Perlu. Izbor je bio prilično velik, ali nisam imala mentora, pa sam sve proučila. Zamolio sam prodavca da mi preporuči nešto o programiranju. I koliko se sjećam, uzeo je “Umetnost programiranja” sa police. Prvi tom". Knjiga je očito već korištena. Uglovi korica su bili savijeni, a na poleđini je bila vidljiva velika ogrebotina, upravo na mjestu gdje je Bill Gates ostavio svoju recenziju: „Ako čitate ovu knjigu, svakako biste mi trebali poslati svoju biografiju“, koju je on potpisao. Za Gejtsa sam znao iz časopisa i mislio sam da bi bilo lepo da mu pošaljem životopis, iako su ga svi Hakeri kritikovali. Knjiga košta 72 UAH. (15 dolara), a ja sam brzo odjurio kući tramvajem da učim novi materijal.

Koliko sam dubokih i osnovnih stvari čitao, naravno, nisam mogao razumjeti sa 15 godina. Ali sam se trudio marljivo da završim svaku vježbu. Jednom sam čak uspio točno riješiti problem s ocjenom težine 25 ili 30. Bilo je to poglavlje o matematičkoj indukciji. Iako nisam volio školsku matematiku i nisam je dobro hvatao, bio sam preko strunjače. Knuthova analiza - sjedio sam satima.
Zatim, u drugom poglavlju bile su strukture podataka. Ove slike i slike povezanih lista, binarnih stabala, stekova i redova još uvijek su mi pred očima. U svojoj 12-godišnjoj karijeri u komercijalnom razvoju, koristio sam većinu jezika opšte namene.
To su C/C++, C#, Java, Python, JavaScript, Delphi. I bez obzira kako se jezik zvao, njegova standardna biblioteka je sadržavala strukture podataka i algoritme koje je opisao Donald Knuth u svojoj trotomnoj knjizi. Stoga učenje nečeg novog ne oduzima puno vremena.

Prvi tom je prilično brzo potrošen. Prepisao sam algoritme date u Knuthovoj knjizi u jezik C. Nije uvijek išlo, ali što sam više vježbao, to je bila veća jasnoća. Revnosti nije nedostajalo. Nakon što sam završio s prvim tomom, bez oklijevanja sam potrčao da kupim drugi i treći. Drugi sam za sada ostavio po strani, ali sam se temeljno pozabavio trećim (Sortiranje i pretraživanje).
Sjećam se jako dobro kako sam popunio cijelu bilježnicu, „tumačeći“ algoritme za sortiranje i pretraživanje. Baš kao i kod struktura podataka, binarno pretraživanje i brzo sortiranje vizualiziraju se u mom mozgu brzinom munje, sjećajući se kako izgledaju shematski u trećem tomu Knutha.
Bič se čitao svuda. Čak i kada sam otišao na more, bez računara u blizini, i dalje sam zapisivao algoritme u notebook i provlačio nizove brojeva kroz njih. Još uvijek se sjećam koliko mi je bola trebalo da savladam heapsort, ali vrijedilo je.

Sledeća knjiga koja je imala snažan uticaj na mene je „Knjiga o zmaju“. To je takođe “Kompajleri: principi, tehnologije, alati” - A. Aho, R. Seti. Prethodio joj je Herbert Schiltd, sa naprednim zadacima u C++. Ovdje su se tačkice spojile.
Zahvaljujući Schildtu, naučio sam pisati parsere i tumače jezika. A onda me je Knjiga zmaja potaknula da napišem svoj C++ kompajler.

Programerska karijera. Poglavlje 2. Škola ili samoobrazovanje
Knjiga o zmaju

Do tada sam dobio internet konekciju za brušenje modema i proveo sam dosta vremena na najpopularnijem sajtu za programere - rsdn.ru. C++ je tamo dominirao i svaki profesionalac je mogao da odgovori na pitanja koja ja nisam mogao da rešim. Zabolelo me je i razumeo sam
da sam daleko od ovih bradatih momaka, pa moram da proučim unutrašnjost prednosti “Od i do”. Ova motivacija me je dovela do mog prvog ozbiljnog projekta - vlastitog kompajlera C++ standarda iz 1998. godine. Detaljniju istoriju i izvore možete pronaći u ovom postu habr.com/en/post/322656.

Škola ili samoobrazovanje

No, vratimo se na stvarnost izvan IDE-a. Iako sam se do tada sve više udaljavao od stvarnog života i uranjao u virtuelni, ipak su me moje godine i opšteprihvaćene norme natjerale da idem na fakultet. Bilo je to pravo mučenje. Apsolutno nisam imao pojma šta radim u ovoj ustanovi i zašto slušam te informacije. Imao sam potpuno drugačije prioritete u glavi. Učenje Visual Studio 6.0, isprobavanje sa WinApi i Delphi 6.
Divna stranica, firststeps.ru, koja mi je omogućila da se radujem svakom koraku koji sam napravio, iako nisam razumio cjelokupnu sliku. Na primjer, u istoj tehnologiji MFC ili ActiveX.
Šta je sa fakultetom? To je bilo gubljenje vremena. Generalno, ako se dotaknemo teme studija, slabo sam studirao. Do 6. razreda sam bio odličan đak, a onda sam dobio C ocjenu, a do 8.-9. razreda sam često izostajao sa nastave, za šta sam od roditelja dobijao iluzorne pojaseve.
Stoga, kada sam došao na fakultet, takođe je bilo malo entuzijazma.
- Gdje je programiranje? Postavio sam sebi pitanje. Ali on nije bio tamo u prvoj polovini godine. Ali bilo je računarstva sa MS-DOS-om i Officeom, kao i opšteobrazovnih predmeta.

Povrh toga, imao sam introvertnu ličnost i bio sam veoma skroman. Ova nova šarolika posada očito nije ulijevala povjerenje. I bilo je obostrano. Stoga se razne vrste izrugivanja nisu dugo čekale. Izdržao sam to dugo, sve dok nisam izdržao i udario jednog od prestupnika u lice pravo na času. Da, pa je odleteo do svog stola. Hvala mom ocu - od detinjstva me je učio da se borim, a da sam zaista želeo, mogao sam da upotrebim fizičku silu. Ali to se događalo vrlo rijetko; češće sam trpio ismijavanje, čekajući maksimalnu tačku ključanja.
Inače, prestupnik me je, jako zatečen onim što se dešavalo, ali i dalje osjećajući svoju superiornost, izazvao na uzvratnu borbu. Već na praznom placu iza obrazovne ustanove.
Ovo nije bilo dječije mahanje šakama, kao što je to bio slučaj u školi. Bio je tu plemeniti makah sa slomljenim nosovima i puno krvi. Momak takođe nije bio plašljiv momak i vešto je isporučivao hukove i aperkate. Svi su ostali živi i od tada me niko više nije maltretirao.
na ovom "koledžu za programere". Ubrzo sam potpuno izgubio želju da idem tamo. Zbog toga sam prestao da idem tamo i nikakve pretnje mojih roditelja nisu uticale na mene. Nekim čudom mi je boravak na fakultetu uračunat u 10. razred škole, a ja sam imao pravo da idem u 11.

Sve bi bilo u redu, ali 11. razred nije bio mnogo bolji od fakulteta. Vratila sam se u matičnu školu, upoznala momke koje sam poznavala sa kojima sam učila od prvog razreda i nadala se da će u mom rodnom gradu sve biti dobro. Postojala je samo jedna nijansa: momci su više ličili na bandite iz TV serija nego na momke sa kojima sam se družio u osnovnoj školi. Svi su hrlili u teretanu kako bi dobili mišićnu masu. Ličio sam na bambus. Mršav i veoma mršav. Naravno, takav nasilnik bi me mogao vezati jednom lijevom rukom.
To je ono što je počelo da se dešava tokom vremena. Ovdje moje borbene vještine više nisu imale efekta. Težinske kategorije su bile veoma različite za mene i ostale dečake iz mog nekada rodnog razreda. Također, posebnosti mog razmišljanja su se dale na sebe osjetiti.

Ne puštajući misli da odlutaju, napustio sam i školu. Tamo gdje sam se osjećao ugodno bilo je ispred kompjuterskog monitora, sa zatvorenim vratima moje sobe. Imalo je smisla i intuitivno sam osjećao da radim pravu stvar. A ova škola je beskorisna aktivnost, pa čak i izdržati ove sprdanje koje su svakim danom postajale sve sofisticiranije... To je to, dosta mi je.
Nakon još jednog sukoba u razredu, sa mnom u glavnoj ulozi, napustio sam školu i nikad više tamo nisam otišao.
Oko 3 mjeseca sam sjedio kod kuće i provodio slobodno vrijeme učeći C++/WinAPI/MFC i rsdn.ru.
Na kraju, direktor škole nije izdržao i pozvao je kući.
- Denis, razmišljaš li o učenju? Ili ćeš otići? Odlučite se. Niko te neće ostaviti u limbu.” - rekao je direktor
„Otići ću“, odgovorila sam samouvereno.

I opet ista priča. Ostalo mi je još pola godine da završim studije prije nego što završim školu. Ne ostavljaj me bez kore. Roditelji su odustali od mene i rekli mi da se sama pregovaram sa direktorom. Došao sam kod direktora škole. Vikala je na mene da skinem kapu kada sam ušao. Zatim je strogo upitala: "Šta da radim s tobom?" Iskreno, ni sam nisam znao šta da radim. Bio sam prilično zadovoljan trenutnim stanjem stvari. Konačno je preuzela riječ:
- „Onda hajde da uradimo ovo. Ja ću se dogovoriti sa direktorom naše večernje škole i ti ćeš ići tamo.”
- "Da"

A večernja škola je bila pravi raj za freestylere poput mene. Idi ako želiš ili ne idi. U razredu je bilo 45 ljudi, od kojih je samo 6-7 dolazilo na nastavu. Nisam siguran da su svi na listi bili živi i slobodni. Jer samo u mom prisustvu drugovi iz razreda su ukrali tuđi motocikl. Ali činjenica je ostala činjenica. Mogao sam neograničeno nadograditi svoje vještine programiranja i ići u školu kada mi je to zaista bilo potrebno. Na kraju sam ga završio i položio završne ispite. Nisu tražili puno, a imali smo čak i dodjela diploma. Matura je sama po sebi posebna bajka. Sjećam se da su mi lokalni razbojnici i kolege iz razreda uzeli sat. I čim sam čuo svoje prezime, prilikom uručenja svedočanstava, jurnuo sam u kasu da uzmem dokument i izleteo iz škole kao metak, da ne bih više upao u nevolje.

Leto je bilo pred nama. Sa Donaldom Knutom pod rukom na plaži, more, sunce i sudbonosna odluka da napiše svoj veliki projekat (kompajler).
Da se nastavi ...

izvor: www.habr.com

Dodajte komentar