Programerska karijera. Poglavlje 2. Škola ili samoobrazovanje

Nastavak priče "Karijera programera".

Godina je bila 2001. Godina u kojoj je izašao najcool operativni sustav - Windows XP. Kada se pojavio rsdn.ru? Godina rođenja C# i .NET Frameworka. Prva godina tisućljeća. I godina eksponencijalnog rasta snage novog hardvera: Pentium IV, 256 mb ram.

Nakon završenog 9. razreda i uvidjevši moj neiscrpni entuzijazam za programiranje, roditelji su me odlučili prebaciti na fakultet na smjer Programiranje. Vjerovali su da će ovako biti bolje i da će me tamo učiti. Riječ koledž, inače, nije pristajala ovoj ustanovi, na periferiji industrijskog grada. Bila je to obična tehnička škola, nimalo drugačija od drugih tehničkih škola koje na pročelju nisu vješale etiketu s pomodnom riječi “fakultet”.
Dobro. Nisam proturječio roditeljima i nisam osporavao njihovu odluku. U svakom slučaju, bavio sam se samoobrazovanjem i mislio sam da će mi na ovom novom mjestu dati dodatna znanja.


To ljeto prije odlaska na fakultet počeo sam temeljito proučavati sve moguće tehnologije koje su objavljivane u časopisu "haker". Čitao sam ga i prečitavao u komadiće. Posebno su mi se svidjeli intervjui s pravim hakerima i njihovi savjeti.
Većina cool hakera bila je na Linuxu. A Mazda (Windows) je bila za lamere. Svatko tko je čitao časopis sjeća se stila postova u njemu. Stoga su se u mom krhkom umu borile dvije ideje - napustiti Windows ili biti cool i držati se čisto Linuxa.
Svaki novi broj časopisa Hacker dao mi je novi razlog da formatiram disk i instaliram ili Linux Red Hat 7 ili Windows Me. Naravno, nisam imao vektor treninga i radio sam ono što sam čitao u časopisima ili na piratskim CD-ima poput “Tajne hakera”. Izbrisana je i paralelna instalacija dva operativna sustava, nakon novog nadjeva u duhu “Windows XP aka papiga - ovo je za domaćice. A ako želite raditi ozbiljne stvari, morate raditi s Linux konzole zatvorenih očiju.” Naravno, želio sam hakirati sustave, razumjeti kako mreža funkcionira i biti svemoćni Anonymous u to vrijeme.

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

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

O književnosti

Čim sam dobio računalo, počeo sam kupovati knjige o programiranju. Prvi je bio vodič za "Turbo Pascal 7.0". To ne čudi, jer sam već znao malo Pascala s tečajeva programiranja, a mogao sam nastaviti učiti sam. Problem je bio u tome što hakeri ne pišu u Pascalu. Tada je jezik Perl bio u modi, ili, za coolere, to je bio C/C++. Barem su tako napisali u časopisu. I prva knjiga koju sam pročitao do kraja bila je “Programski jezik C” - od Kernighana i Ritchieja. Inače sam studirao u Linux okruženju
i koristio gcc i KDE-ov ugrađeni editor za pisanje koda.

Nakon ove knjige kupljena je Enciklopedija UNIX. Bio je težak 3 kilograma i bio je tiskan na A3 stranicama.
Na prednjoj strani knjige nalazio se prikaz crtanog vraga s vilama u punoj veličini, a tada je u Ukrajini koštala 125 grivni (to je 25. godine bilo oko 2001 dolara). Za kupnju knjige posudio sam novac od školske drugarice, a ostatak su dodali roditelji. Zatim sam s entuzijazmom počeo proučavati Unix naredbe, vim i emacs editor, strukturu datotečnog sustava i unutrašnjosti konfiguracijskih datoteka. Gotovo 700 stranica enciklopedije je progutano i postao sam korak bliže svom snu - postati Kul-Hatzker.

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

Potrošio sam sav novac koji su mi dragi djed, baka i roditelji dali na knjige. Sljedeća knjiga bila je C++ za 21 dan. Naslov je bio vrlo atraktivan, i zato nisam gledao druge kvalitetnije knjige. Unatoč tome, svi izvori su kopirani iz knjige u otprilike tom razdoblju od 3 tjedna, a ja sam već razumio nešto u C++. Iako vjerojatno nisam više razumio što je napisano u ovim popisima. Ali bilo je napretka.

Kad biste me pitali koja je knjiga najviše utjecala na Vašu karijeru, bez oklijevanja bih odgovorio - “Umijeće programiranja” - D. Knuth. Bilo je to ponovno ožičenje mozga. Ne mogu vam točno reći kako je ova knjiga došla u moje ruke, ali imala je najdublji utjecaj na moju buduću karijeru.

Programerska karijera. Poglavlje 2. Škola ili samoobrazovanje
Umijeće programiranja - obavezno pročitati

Knjige sam kupovao uglavnom na radio tržnici koja je radila samo nedjeljom. Nakon što sam uštedio još nekoliko desetaka grivni na doručku, otišao sam po novu knjigu o C++ ili možda Perlu. Izbor je bio dosta velik, ali nisam imala mentora pa sam sve proučavala. Pitao sam prodavača da mi preporuči nešto o programiranju. I koliko se sjećam, s police je uzeo “Umijeće programiranja”. Prvi svezak". Knjiga je očito već korištena. Kutovi korica bili su savijeni, a na poleđini se vidjela velika ogrebotina, točno na mjestu gdje je Bill Gates ostavio svoju recenziju: “Ako čitate ovu knjigu, svakako mi pošaljite svoj životopis”, u njegovom potpisu. Znao sam za Gatesa iz časopisa i mislio sam da bi bilo lijepo poslati mu životopis, iako su ga svi Hakeri kritizirali. Knjiga je koštala 72 UAH. (15 dolara), i brzo sam odjurio kući tramvajem da proučim novo gradivo.

Koliko sam duboke i osnovne stvari čitao, naravno, nisam mogao razumjeti s 15 godina. Ali marljivo sam se trudio izvršiti svaku vježbu. Jednom sam čak uspio točno riješiti zadatak s ocjenom težine 25 ili 30. Bilo je to poglavlje o matematičkoj indukciji. Iako nisam volio školsku matematiku i nisam je dobro shvaćao, bio sam pretjeran. Knuthova analiza - sjedio sam satima.
Zatim, u drugom poglavlju bile su strukture podataka. Ove slike i slike povezanih popisa, binarnih stabala, hrpa i redova još su mi pred očima. U svojoj dvanaestogodišnjoj karijeri u komercijalnom razvoju koristio sam većinu jezika opće namjene.
To su C/C++, C#, Java, Python, JavaScript, Delphi. I bez obzira kako se jezik zvao, njegova standardna biblioteka sadržavala je podatkovne strukture i algoritme koje je opisao Donald Knuth u svojoj knjizi od tri sveska. Stoga učenje nečeg novog ne oduzima puno vremena.

Prvi svezak je prilično brzo pojeden. Prepisao sam algoritme dane u Knuthovoj knjizi u jezik C. Nije uvijek išlo, ali što sam više vježbao, postajalo je sve jasnije. Žara nije nedostajalo. Nakon što sam završio s prvim sveskom, bez oklijevanja sam otrčao kupiti drugi i treći. Drugi sam za sada ostavio po strani, ali sam se trećeg (Sortiranje i pretraživanje) temeljito uhvatio.
Dobro se sjećam kako sam ispunio cijelu bilježnicu, “tumačeći” algoritme sortiranja i pretraživanja. Baš kao i kod struktura podataka, binarno pretraživanje i brzo sortiranje vizualiziraju se u mom mozgu munjevitom brzinom, prisjećajući se kako shematski izgledaju u trećem svesku Knutha.
Bič se posvuda čitao. Pa čak i kad sam išao na more, bez računala u blizini, svejedno sam zapisivao algoritme u bilježnicu i kroz njih provlačio nizove brojeva. Još uvijek se sjećam koliko mi je boli trebalo da svladam heapsort, ali vrijedilo je.

Sljedeća knjiga koja je snažno utjecala na mene bila je “Knjiga o zmaju”. To je također “Compilers: Principles, Technologies, Tools” - A. Aho, R. Seti. Njoj je prethodio Herbert Schiltd, s naprednim zadacima u C++. Ovdje su se spojile točkice.
Zahvaljujući Schildtu, naučio sam pisati parsere i jezične tumače. A onda me Knjiga zmaja potaknula da napišem vlastiti C++ prevodilac.

Programerska karijera. Poglavlje 2. Škola ili samoobrazovanje
Knjiga zmaja

Do tog sam vremena već dobio internetsku vezu koja me je opterećivala modemom i provodio sam dosta vremena na najpopularnijoj stranici za programere - rsdn.ru. Tu je dominirao C++ i svaki je profesionalac mogao odgovoriti na pitanja koja ja nisam mogao riješiti. Povrijedilo me, i razumjela sam
da sam daleko od ovih bradatih tipova, pa moram proučiti iznutra prednosti "Od i do". Ta me motivacija dovela do mog prvog ozbiljnog projekta - vlastitog prevoditelja C++ standarda iz 1998. godine. Detaljniju povijest i izvore možete pronaći u ovom postu habr.com/en/post/322656.

Škola ili samoobrazovanje

Ali vratimo se u stvarnost izvan IDE-a. Iako sam se u to vrijeme sve više udaljavao od stvarnog života i uranjao u onaj virtualni, ipak su me godine i općeprihvaćene norme natjerale da odem na fakultet. Bilo je to pravo mučenje. Nisam imao pojma što radim u ovoj ustanovi i zašto slušam te informacije. Imao sam sasvim druge prioritete u glavi. Učenje Visual Studio 6.0, pokušaj s WinApi i Delphi 6.
Prekrasna 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.
Što je s fakultetom? Bio je to gubitak vremena. Općenito, ako se dotaknemo teme studija, studirao sam slabo. Do 6. razreda sam bio odličan učenik, a onda sam dobio trojke, a do 8.-9. razreda često sam bježao s nastave, za što sam od roditelja dobivao iluzorne pojaseve.
Stoga, kad sam došao na fakultet, također je bilo malo entuzijazma.
- Gdje je programiranje? Postavio sam sebi pitanje. Ali nije ga bilo u prvoj polovici godine. Ali tu je bila informatika s MS-DOS-om i Officeom, kao i općeobrazovni predmeti.

Povrh toga, bio sam introvertiran i bio sam vrlo skroman. Ova nova šarolika družina očito nije ulijevala povjerenje. I bilo je obostrano. Stoga se nije dugo čekalo na razne vrste sprdnje. Dugo sam to trpio, sve dok nisam izdržao i udario jednog od prijestupnika šakom u lice baš u razredu. Da, pa je odletio do svog stola. Hvala mom ocu - on me od djetinjstva učio boriti se, a da sam stvarno htio, mogao sam upotrijebiti fizičku silu. Ali to se događalo vrlo rijetko; češće sam trpio ismijavanje, čekajući maksimalnu točku ključanja.
Usput, počinitelj, silno zatečen onim što se događalo, ali i dalje osjećajući svoju nadmoć, izazvao me na osvetničku borbu. Već na praznom mjestu iza obrazovne ustanove.
Ovo nije bilo dječje mašanje šakama, kao što je to bio slučaj u školi. Bio je tu plemeniti mahač slomljenih nosova i puno krvi. Momak također nije bio bojažljiv i vješto je izvodio krošee i aperkate. Svi su ostali živi i od tada me više nitko nije maltretirao.
na ovom "fakultetu za programere". Ubrzo sam potpuno izgubio želju da idem tamo. Stoga sam prestao tamo ići i nikakve prijetnje roditelja nisu imale učinka na mene. Nekim čudom boravak na fakultetu mi se računao u 10. razred škole, a imao sam pravo ići u 11.

Sve bi bilo u redu, ali 11. razred se pokazao nimalo boljim od fakulteta. Vratila sam se u matičnu školu, upoznala neke momke koje sam poznavala s kojima sam učila od prvog razreda i nadala se da će sve biti u redu u mom rodnom gradu. Postojala je samo jedna nijansa: dečki su više ličili na razbojnike iz serija nego na dečke s kojima sam se družio u osnovnoj školi. Svi su pohrlili u teretanu kako bi dobili mišićnu masu. Sličio sam bambusu. Mršav i vrlo mršav. Naravno, takav nasilnik iz razreda mogao bi me vezati jednom lijevom rukom.
To se s vremenom počelo događati. Ovdje moje borbene vještine više nisu imale učinka. Težinske kategorije bile su vrlo različite za mene i ostale dječake iz mog nekada matičnog razreda. Također, osobitosti mog razmišljanja dale su se osjetiti.

Ne dopuštajući mislima da odlutaju, napustio sam i školu. Ono 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, a i trpjeti te sprdnje koje su svakim danom bile 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 u nju nisam otišao.
Oko 3 mjeseca sam sjedio kod kuće, provodeći svoje slobodno vrijeme učeći C++/WinAPI/MFC i rsdn.ru.
Na kraju ravnatelj škole nije izdržao i nazvao je kući.
- “Denis, misliš li studirati? Ili ćeš otići? Odlučiti. Nitko vas neće ostaviti u neizvjesnosti.” - rekla je ravnateljica
„Otići ću“, odgovorila sam samouvjereno.

I opet ista priča. Ostalo mi je pola godine da završim studij prije diplome. Ne ostavljaj me bez kore. Roditelji su odustali od mene i rekli mi da idem sama pregovarati s direktorom. Došao sam do ravnatelja škole. Vikala mi je da skinem šešir kad sam ušao. Zatim je strogo upitala: "Što da radim s tobom?" Iskreno, ni sam nisam znao što učiniti. Bio sam prilično zadovoljan trenutnim stanjem stvari. Na kraju je uzela riječ:
- “Onda učinimo ovo. Dogovorit ću se s direktorom naše večernje škole i ti ćeš ići tamo.”
- "da"

A večernja škola bila je pravi raj za freestylere poput mene. Idi ako hoćeš ili ne idi. U razredu je bilo 45 ljudi, od kojih je samo 6-7 dolazilo na nastavu. Nisam siguran da su svi s popisa bili živi i slobodni. Jer samo u mom prisustvu su kolege iz razreda ukrali tuđi motocikl. Ali činjenica je ostala činjenica. Mogao sam neograničeno nadograđivati ​​svoje programerske vještine i ići u školu kada mi je to stvarno bilo potrebno. Na kraju sam ga završio i položio završne ispite. Nisu puno tražili, a imali smo čak i promociju. Matura je sama po sebi posebna bajka. Sjećam se da su mi lokalni banditi i kolege iz razreda uzeli sat. I čim sam čuo svoje prezime, za vrijeme predaje svjedodžbi, u kasu sam pojurio po dokument i izletio iz škole kao metak, da ne uletim u nove nevolje.

Ljeto je bilo pred nama. S Donaldom Knuthom pod rukom na plaži, moru, suncu i sudbonosnoj odluci da napiše svoj veliki projekt (kompilator).
Da bi se nastavio ...

Izvor: www.habr.com

Dodajte komentar