Programmeerija karjäär. Peatükk 2. Kool või eneseharimine

Loo jätk "Programmeerija karjäär".

Aasta oli siis 2001. Aasta, mil ilmus lahedaim operatsioonisüsteem - Windows XP. Millal rsdn.ru ilmus? C# ja .NET Frameworki sünniaasta. Aastatuhande esimene aasta. Ja uue riistvara võimsuse eksponentsiaalse kasvu aasta: Pentium IV, 256 mb ram.

Pärast 9. klassi lõpetamist ja nähes minu ammendamatut entusiasmi programmeerimise vastu otsustasid mu vanemad mind kolledžisse üle viia programmeerimise erialale. Nad uskusid, et nii on parem ja nad õpetavad mind seal. Sõna kolledž, muide, ei sobinud sellesse tööstuslinna äärealasse asutusse. See oli tavaline tehnikum, mis ei erine teistest tehnikumidest, mis ei riputanud oma fassaadile silti moekas sõnaga “kolledž”.
Noh. Ma ei rääkinud oma vanematele vastu ega vaidlustanud nende otsust. Mina igal juhul tegelesin eneseharimisega ja arvasin, et selles uues kohas annavad nad mulle lisateadmisi.


Sel suvel enne kõrgkooli minekut hakkasin põhjalikult uurima kõiki võimalikke tehnoloogiaid, mis ajakirjas avaldati "häkker". Lugesin ja lugesin uuesti tükkideks. Eriti meeldisid mulle intervjuud tõeliste häkkeritega ja nende nõuanded.
Enamik lahedaid häkkereid oli Linuxis. Ja Mazda (Windows) oli mõeldud lameritele. Kes ajakirja lugenud, mäletab selles olevate postituste stiili. Seetõttu võitlesid minu habras peas omavahel kaks ideed – kas lahkuda Windowsist või olla lahe ja jääda puhtalt Linuxi juurde.
Iga ajakirja Hacker uus number andis mulle uue põhjuse ketta vormindamiseks ja kas Linux Red Hat 7 või Windows Me installimiseks. Muidugi ei olnud mul koolituse vektorit ja ma tegin seda, mida lugesin ajakirjadest või piraat-CD-delt, nagu "Häkkerite saladused". Kahe operatsioonisüsteemi paralleelne installimine kustutati ka pärast uut täitmist "Windows XP aka papagoi - see on koduperenaistele" vaimus. Ja kui tahad tõsiseid asju teha, pead töötama Linuxi konsoolist kinnisilmi. Muidugi tahtsin ma süsteeme häkkida, mõista, kuidas võrk töötab, ja olla sel ajal kõikvõimas Anonüümne.

Ketas vormindati kahetsusväärselt ja sellele paigaldati Unixi-laadse süsteemi jaotuskomplekt. Jah Jah. Lugesin kunagi intervjuud tõelise häkkeriga, kes kasutab konsoolist ainult FreeBSD 4.3. Samal ajal vastutas ta pankade ja valitsussüsteemide häkkimise eest. See oli välgulöögi pähe ja ma installisin 5 korda põhisüsteemiks BSD OS-i. Probleem oli selles, et peale paigaldamist polnud seal peale palja konsooli midagi. Isegi heli. Ja selleks, et KDE2 installida ja heli sisse lülitada, oli vaja palju tamburiiniga tantsida ja mitut konfiguratsiooni parandada.

Programmeerija karjäär. Peatükk 2. Kool või eneseharimine
FreeBSD 4.3 distributsioon on kõige häkkerim OS

Kirjandusest

Niipea kui arvuti sain, hakkasin programmeerimise teemalisi raamatuid ostma. Esimene oli "Turbo Pascal 7.0" juhend. See pole üllatav, sest ma tundsin programmeerimiskursustest juba veidi Pascalit ja sain iseseisvalt edasi õppida. Probleem oli selles, et häkkerid ei kirjuta Pascalis. Siis oli moes Perli keel või lahedamate meeste jaoks oli see C/C++. Vähemalt nii nad ajakirjas kirjutasid. Ja esimene raamat, mille lõpuni lugesin, oli Kernighani ja Ritchie “C programmeerimiskeel”. Muide, õppisin Linuxi keskkonnas
ning kasutas koodi kirjutamiseks gcc ja KDE sisseehitatud redaktorit.

Pärast seda raamatut osteti UNIX-i entsüklopeedia. See kaalus 3 kilogrammi ja oli trükitud A3 lehtedele.
Raamatu esiküljel oli täispikkuses kujutatud koomiksikuradit kahvliga ja see maksis siis Ukrainas 125 grivnat (25. aastal oli see umbes 2001 dollarit). Raamatu ostmiseks laenasin koolivennalt raha, ülejäänud lisasid vanemad. Seejärel hakkasin entusiastlikult uurima Unixi käske, vim ja emacsi redaktorit, failisüsteemi struktuuri ja konfiguratsioonifailide sisemust. Entsüklopeediat ahmis ligi 700 lehekülge ja ma sain sammu võrra lähemale oma unistusele – saada Kul-Hatzkeriks.

Programmeerija karjäär. Peatükk 2. Kool või eneseharimine
UNIX Encyclopedia – üks esimesi raamatuid, mida lugesin

Kulutasin kogu raha, mille mu armastavad vanavanemad ja vanemad mulle andsid, raamatutele. Järgmine raamat oli C++ 21 päeva pärast. Pealkiri oli väga ahvatlev ja seetõttu ei vaadanud ma teisi kvaliteetsemaid raamatuid. Sellele vaatamata kopeeriti raamatust kõik allikad umbes selle 3 nädala jooksul ja ma sain C++ keeles juba millestki aru. Kuigi ma ilmselt ei saanud nendesse nimekirjadesse kirjutatust enam aru. Kuid edusamme oli.

Kui te küsiksite minult, milline raamat teie karjääri kõige rohkem mõjutas, vastaksin kõhklemata - "Programmeerimise kunst" - D. Knuth. See oli aju ümberpaigutamine. Ma ei saa teile täpselt öelda, kuidas see raamat minu kätte sattus, kuid see avaldas minu tulevasele karjäärile kõige sügavamat mõju.

Programmeerija karjäär. Peatükk 2. Kool või eneseharimine
Programmeerimise kunst – tuleb lugeda

Raamatuid ostsin peamiselt raadioturult, mis oli avatud ainult pühapäeviti. Olles hommikusöögi pealt veel paarkümmend grivnat säästnud, läksin C++ või ehk Perli kohta uue raamatu järele. Valik oli üsna suur, kuid mul polnud mentorit, nii et uurisin kõike. Palusin müüjal mulle midagi programmeerimise kohta soovitada. Ja minu mäletamist mööda võttis ta riiulist “Programmeerimise kunsti”. Esimene köide". Raamat oli selgelt juba kasutatud. Kaane nurgad olid painutatud ja tagaküljel, täpselt seal, kus Bill Gates oli oma arvustuse jätnud, oli näha suur kriips: “Kui sa seda raamatut loed, siis saatke mulle kindlasti oma CV,” allkirjastas ta. Teadsin Gatesist ajakirjadest ja arvasin, et oleks tore talle CV saata, kuigi kõik häkkerid kritiseerisid teda. Raamat maksis 72 UAH. (15 dollarit) ja kihutasin kiiresti trammiga koju uut materjali õppima.

Kui sügavaid ja elementaarseid asju ma lugesin, ei saanud ma muidugi 15-aastaselt aru. Aga püüdsin usinalt iga harjutust sooritada. Kord õnnestus mul isegi õigesti lahendada ülesanne, mille raskusaste oli 25 või 30. See oli matemaatilise induktsiooni peatükk. Kuigi mulle ei meeldinud koolimatemaatika ja ma ei saanud sellest hästi aru, olin matist üle. Knuthi analüüs – istusin tunde.
Järgmiseks, teises peatükis olid andmestruktuurid. Need pildid ja pildid lingitud loenditest, kahendpuudest, virnadest ja järjekordadest on siiani mu silme ees. Oma 12-aastase äriarenduse karjääri jooksul olen kasutanud enamikku üldotstarbelisi keeli.
Need on C/C++, C#, Java, Python, JavaScript, Delphi. Ja olenemata sellest, kuidas keelt nimetati, sisaldas selle standardraamatukogu andmestruktuure ja algoritme, mida kirjeldas Donald Knuth oma kolmeköitelises raamatus. Seetõttu ei võta millegi uue õppimine palju aega.

Esimene köide ahmis üsna kiiresti. Kirjutasin Knuthi raamatus antud algoritmid ümber C-keelde. Alati see ei õnnestunud, aga mida rohkem harjutasin, seda suurem selgus. Innukusest puudust ei tulnud. Olles esimese köitega lõpetanud, jooksin kõhklemata teist ja kolmandat ostma. Teise panin praegu kõrvale, aga kolmanda (Sorteerimine ja otsing) võtsin korralikult käsile.
Mäletan väga hästi, kuidas ma terve märkmiku täitsin, sorteerimis- ja otsingualgoritme “tõlgendades”. Nii nagu andmestruktuuride puhul, visualiseeritakse binaarne otsing ja kiirsortimine minu ajus välkkiirelt, mäletades, kuidas need Knuthi kolmandas köites skemaatiliselt välja näevad.
Igal pool loeti piitsa. Ja isegi kui ma merele läksin, ilma arvutita läheduses, kirjutasin ikka algoritme vihikusse ja ajasin läbi nende numbrite jada. Mäletan siiani, kui palju valu mul hunnikusordi valdamine nõudis, kuid see oli seda väärt.

Järgmine raamat, mis avaldas mulle tugevat mõju, oli "Lohe raamat". See on ka “Koostajad: põhimõtted, tehnoloogiad, tööriistad” - A. Aho, R. Seti. Talle eelnes Herbert Schiltd, kellel oli C++ täiustatud ülesanded. Siin said täpid kokku.
Tänu Schildtile õppisin kirjutama parsereid ja keeletõlke. Ja siis ajendas Draakoni raamat mind kirjutama oma C++ kompilaatori.

Programmeerija karjäär. Peatükk 2. Kool või eneseharimine
Draakoni raamat

Selleks ajaks oli mulle antud modemiga lihvitav Interneti-ühendus ja ma veetsin palju aega programmeerijate populaarseimal saidil - rsdn.ru. Seal domineeris C++ ja iga proff oskas vastata küsimustele, millega ma hakkama ei saanud. See tegi mulle haiget ja ma sain aru
et ma pole nendest habemega kuttidest kaugel, seega pean uurima „From and To” eeliste sisemust. See motivatsioon viis mind minu esimese tõsise projektini – minu enda 1998. aasta C++ standardi koostajani. Täpsema ajaloo ja allikad leiate sellest postitusest habr.com/en/post/322656.

Kool või eneseharimine

Kuid pöördume tagasi reaalsusesse väljaspool IDE-d. Kuigi selleks ajaks hakkasin järjest enam päriselust eemalduma ja virtuaalsesse sukelduma, sundisid vanus ja üldtunnustatud normid siiski ülikooli minema. See oli tõeline piinamine. Mul polnud absoluutselt aimugi, mida ma selles asutuses teen ja miks ma seda teavet kuulasin. Minu peas olid hoopis teised prioriteedid. Visual Studio 6.0 õppimine, WinApi ja Delphi 6 proovimine.
Suurepärane sait firststeps.ru, mis võimaldas mul rõõmustada iga sammu üle, kuigi ma ei saanud üldpildist aru. Näiteks samas tehnoloogias MFC või ActiveX.
Aga kolledž? See oli ajaraisk. Üldiselt, kui puudutame õpingute teemat, siis õppisin halvasti. Kuni 6. klassini olin suurepärane õpilane ja siis sain C hinded ning 8.-9. klassiks jätsin sageli tundide vahele, mille eest sain vanematelt illusoorsed vööd.
Seetõttu oli ka ülikooli tulles vähe entusiasmi.
- Kus on programmeerimine? Esitasin endale küsimuse. Aga esimesel poolaastal teda seal ei olnud. Aga seal oli informaatikat MS-DOS-i ja Office’iga ning üldhariduslikke aineid.

Peale selle olin ma introvertne isiksus ja väga tagasihoidlik. Ilmselgelt ei äratanud see uus kirev meeskond usaldust. Ja see oli vastastikune. Seetõttu ei lasknud mitmesugused mõnitused kaua oodata. Pidasin seda kaua vastu, kuni ei suutnud taluda ja lõin ühele kurjategijale otse tunnis rusikaga näkku. Jah, nii et ta lendas minema oma laua juurde. Tänu isale – ta õpetas mind lapsepõlvest saati võitlema ja kui väga tahtsin, võisin kasutada füüsilist jõudu. Kuid seda juhtus väga harva, sagedamini kannatasin naeruvääristamist, oodates maksimaalset keemistemperatuuri.
Muide, rikkuja, kes oli toimuvast suuresti jahmunud, kuid tundis siiski oma üleolekut, kutsus mind vastuvõitlusele. Juba õppeasutuse taga olevas vabas krundis.
See ei olnud laste rusikatega vehkimine, nagu koolis juhtus. Seal oli üllas makhach, kellel oli katkised ninad ja palju verd. Tüüp polnud ka arglik mees ja andis osavalt konksud ja ülalõiked. Kõik jäid ellu ja sellest ajast peale pole keegi mind enam kiusanud.
selles "programmeerijate kolledžis". Peagi kadus soov sinna minna sootuks. Seetõttu lõpetasin seal käimise ja ükski vanemate ähvardus ei avaldanud mulle mingit mõju. Mingi ime läbi loeti mu ülikoolis viibimine kooli 10. klassiks ja mul oli õigus minna 11. klassi.

Kõik oleks hästi, aga 11. klass ei osutunud palju paremaks kui kõrgkool. Naasin kodukooli, kohtasin tuttavaid poisse, kellega koos olin õppinud esimesest klassist saati, ja lootsin, et minu kodulinnas saab kõik korda. Oli ainult üks nüanss: poisid nägid rohkem välja nagu teleseriaalide bandiidid kui poisid, kellega ma põhikoolis sõbrunesin. Kõik tormasid jõusaali lihasmassi kasvatama. Ma meenutasin bambust. Kerge ja väga õhuke. Muidugi võiks selline kiusaja klassivend mind ühe vasaku käega kinni siduda.
See on see, mis aja jooksul juhtuma hakkas. Siin ei avaldanud mu võitlusoskused enam mingit mõju. Kaalukategooriad olid minu ja mu kunagise põlisklassi poiste jaoks väga erinevad. Samuti andsid tunda minu mõtlemise iseärasused.

Mõtetel rändama laskmata lahkusin ka koolist. Koht, kus ma end mugavalt tundsin, oli arvutimonitori ees, kus mu toa uks oli suletud. See oli loogiline ja intuitiivselt tundsin, et teen õiget asja. Ja see kool on mõttetu tegevus ja isegi taluda neid mõnitamist, mis iga päevaga aina rafineeritumaks läksid... See on kõik, mulle on küllalt.
Pärast järjekordset konflikti klassis, kus mina olin peaosas, lahkusin koolist ega läinud sinna enam.
Umbes 3 kuud istusin kodus ja veetsin vaba aega C++/WinAPI/MFC ja rsdn.ru õppimisega.
Lõpuks ei pidanud koolidirektor vastu ja helistas koju.
- "Denis, kas sa mõtled õppimisele? Või lahkute? Otsustama. Keegi ei jäta sind teadmatusse." - ütles direktor
"Ma lahkun," vastasin enesekindlalt.

Ja jälle sama lugu. Mul oli jäänud pool aastat enne kooli lõpetamist oma õpingud lõpetada. Ära jäta mind ilma koorikuta. Vanemad loobusid minust ja käskisid mul ise direktoriga läbi rääkida. Tulin kooli direktori juurde. Ta karjus mulle, et ma müts maha võtaksin, kui sisenesin. Siis küsis ta karmilt: "Mida ma peaksin sinuga tegema?" Ausalt öeldes ma ise ei teadnud, mida teha. Olin asjade praeguse seisuga üsna rahul. Lõpuks võttis ta sõna:
- „Teeme siis nii. Ma lepin meie õhtukooli direktoriga kokku ja te lähete sinna."
- "Jah"

Ja õhtukool oli minusuguste freestylerite jaoks tõeline paradiis. Mine, kui tahad, või ära mine. Klassis oli 45 inimest, kellest tundidesse ilmus vaid 6-7. Ma pole kindel, et kõik nimekirjas olevad olid elus ja ka vabad. Sest ainult minu juuresolekul varastasid klassikaaslased kellegi teise mootorratta. Kuid fakt jäi faktiks. Sain oma programmeerimisoskusi piiramatult täiendada ja kooli minna siis, kui seda tõesti vaja oli. Lõpetasin selle ja tegin lõpueksamid. Nad ei nõudnud palju ja meil oli isegi lõpuaktus. Lõpetamine on omaette muinasjutt. Mäletan, et kohalikud bandiidid ja klassikaaslased võtsid mu kella. Ja kohe, kui ma oma perekonnanime kuulsin, tõttasin tunnistuste kätteandmise ajal traavi, et dokument kätte saada ja lendasin koolist välja nagu kuul, et mitte rohkem pahandustesse sattuda.

Suvi oli ees. Donald Knuthiga kaenlas rannas, merel, päikesel ja saatuslikul otsusel kirjutada oma suur projekt (koostaja).
Jätkub ...

Allikas: www.habr.com

Lisa kommentaar