ProgrammÄ“Å”anas karjera. 2. nodaļa. Skola vai paÅ”izglÄ«tÄ«ba

Stāsta turpinājums "Programmētāja karjera".

Gads bija 2001. gads. Gads, kurā tika izlaista stilÄ«gākā operētājsistēma - Windows XP. Kad parādÄ«jās rsdn.ru? C# un .NET Framework dzimÅ”anas gads. Pirmais tÅ«kstoÅ”gades gads. Un jaunas aparatÅ«ras jaudas eksponenciālas izaugsmes gads: Pentium IV, 256 mb RAM.

Pēc 9. klases pabeigÅ”anas un redzot manu neizsÄ«kstoÅ”o programmÄ“Å”anas entuziasmu, mani vecāki nolēma mani pārcelt uz koledžu programmÄ“Å”anas specialitātē. Viņi ticēja, ka tā bÅ«s labāk un viņi mani tur pamācÄ«s. Vārds koledža, starp citu, nederēja Å”ai iestādei, kas atrodas industriālās pilsētas nomalē. Tas bija parasts tehnikums, kas ne ar ko neatŔķīrās no citiem tehnikumiem, kuru fasādē nebija uzlÄ«mēta etiÄ·ete ar modÄ«gu vārdu ā€œkoledžaā€.
Nu. Es nerunāju pret saviem vecākiem un neapstrÄ«dēju viņu lēmumu. Jebkurā gadÄ«jumā es nodarbojos ar paÅ”izglÄ«tÄ«bu un domāju, ka Å”ajā jaunajā vietā viņi man dos papildu zināŔanas.


Tajā vasarā pirms doÅ”anās uz koledžu sāku kārtÄ«gi pētÄ«t visas iespējamās tehnoloÄ£ijas, kas tika publicētas žurnālā "Hakeris". Es lasu un pārlasu to gabalos. ÄŖpaÅ”i man patika intervijas ar Ä«stiem hakeriem un viņu padomi.
Lielākā daļa forÅ”o hakeru bija Linux. Un Mazda (Windows) bija paredzēta lameriem. Ikviens, kurÅ” ir lasÄ«jis žurnālu, atceras tajā ievietoto ierakstu stilu. Tāpēc manā trauslā prātā divas idejas cÄ«nÄ«jās savā starpā - pamest Windows vai bÅ«t forÅ”am un palikt tÄ«ri pie Linux.
Katrs jaunais žurnāla Hacker numurs man deva jaunu iemeslu formatēt disku un instalēt Linux Red Hat 7 vai Windows Me. Protams, man nebija nekādu apmācÄ«bu vektoru, un es darÄ«ju to, ko lasÄ«ju žurnālos vai pirātiskajos kompaktdiskos, piemēram, ā€œHakeru noslēpumiā€. Tika izdzēsta arÄ« divu operētājsistēmu instalÄ“Å”ana paralēli pēc jauna pildÄ«juma ā€œWindows XP aka papagailis - tas ir mājsaimniecēm garā. Un, ja vēlaties darÄ«t nopietnas lietas, jums ir jāstrādā no Linux konsoles ar aizvērtām acÄ«m. Protams, es gribēju uzlauzt sistēmas, saprast, kā darbojas tÄ«kls, un bÅ«t tajā laikā visvarenais AnonÄ«mais.

Disks tika formatēts bez jebkādas nožēlas, un tajā tika uzstādÄ«ts Unix lÄ«dzÄ«gas sistēmas izplatÄ«Å”anas komplekts. Jā jā. Reiz lasÄ«ju interviju ar Ä«stu hakeri, kurÅ” no konsoles izmanto tikai FreeBSD 4.3. Tajā paŔā laikā viņŔ bija atbildÄ«gs par banku un valdÄ«bas sistēmu uzlauÅ”anu. Tas bija zibens spēriens galvā, un es 5 reizes instalēju BSD OS kā galveno sistēmu. Problēma bija tāda, ka pēc instalÄ“Å”anas tur nebija nekā, izņemot tukÅ”o konsoli. VienmērÄ«ga skaņa. Un, lai instalētu KDE2 un ieslēgtu skaņu, vajadzēja daudz dejot ar tamburÄ«nu un labot vairākas konfigurācijas.

ProgrammÄ“Å”anas karjera. 2. nodaļa. Skola vai paÅ”izglÄ«tÄ«ba
FreeBSD 4.3 izplatÄ«Å”ana ir visvairāk hakeru operētājsistēma

Par Literatūru

TiklÄ«dz man bija dators, es sāku pirkt grāmatas par programmÄ“Å”anu. Pirmais bija ceļvedis "Turbo Pascal 7.0". Tas nav pārsteidzoÅ”i, jo es jau nedaudz pazinu Paskālu no programmÄ“Å”anas kursiem un varēju turpināt mācÄ«ties patstāvÄ«gi. Problēma bija tā, ka hakeri neraksta Paskālā. Tad Perl valoda bija modē, vai, forŔākiem puiÅ”iem, tā bija C/C++. Vismaz tā viņi rakstÄ«ja žurnālā. Un pirmā grāmata, ko izlasÄ«ju lÄ«dz beigām, bija Kernigana un Ričija ā€œC programmÄ“Å”anas valodaā€. Starp citu, es mācÄ«jos Linux vidē
un koda rakstÄ«Å”anai izmantoja gcc un KDE iebÅ«vēto redaktoru.

Pēc Ŕīs grāmatas tika iegādāta UNIX enciklopēdija. Tas svēra 3 kilogramus un bija drukāts uz A3 formāta lapām.
Grāmatas priekÅ”pusē visā garumā bija attēlots multfilmas velns ar dakÅ”iņu, un pēc tam Ukrainā tas maksāja 125 grivnas (tas ir aptuveni 25 USD 2001. gadā). Lai iegādātos grāmatu, es aizņēmos naudu no skolas drauga, bet pārējo pievienoja mani vecāki. Pēc tam es ar entuziasmu sāku pētÄ«t Unix komandas, vim un emacs redaktoru, failu sistēmas struktÅ«ru un konfigurācijas failu iekÅ”pusi. Tika apritas gandrÄ«z 700 enciklopēdijas lappuses, un es kļuvu soli tuvāk savam sapnim - kļūt par Kul-Hatzker.

ProgrammÄ“Å”anas karjera. 2. nodaļa. Skola vai paÅ”izglÄ«tÄ«ba
UNIX enciklopēdija - Viena no pirmajām grāmatām, ko izlasīju

Es iztērēju visu naudu, ko mani mÄ«loÅ”ie vecvecāki un vecāki man iedeva grāmatām. Nākamā grāmata bija C++ 21 dienā. Nosaukums bija ļoti pievilcÄ«gs, un tāpēc arÄ« citas kvalitatÄ«vākas grāmatas neskatÄ«jos. Neskatoties uz to, visi avoti tika nokopēti no grāmatas apmēram Å”ajā 3 nedēļu laikā, un es jau kaut ko sapratu C++ valodā. Lai gan es droÅ”i vien vairāk nesapratu no Å”ajos sarakstos rakstÄ«tā. Taču progress bija.

Ja man jautātu, kura grāmata visvairāk ietekmēja tavu karjeru, es nevilcinoties atbildētu - ā€œProgrammÄ“Å”anas mākslaā€ ā€“ D. Knuts. Tā bija smadzeņu pārslēgÅ”ana. Es nevaru precÄ«zi pateikt, kā Ŕī grāmata nonāca manās rokās, taču tai bija visdziļākā ietekme uz manu turpmāko karjeru.

ProgrammÄ“Å”anas karjera. 2. nodaļa. Skola vai paÅ”izglÄ«tÄ«ba
ProgrammÄ“Å”anas māksla ā€“ jāizlasa

Grāmatas iegādājos galvenokārt radio tirgÅ«, kas bija atvērts tikai svētdienās. IetaupÄ«jis vēl dažus desmitus grivnu brokastÄ«s, es devos pēc jaunas grāmatas par C++ vai varbÅ«t Perl. Izvēle bija diezgan liela, bet man nebija mentora, tāpēc es visu izpētÄ«ju. Es palÅ«dzu pārdevējam ieteikt kaut ko par programmÄ“Å”anu. Un, cik atceros, viņŔ no plaukta paņēma ā€œProgrammÄ“Å”anas māksluā€. Pirmais sējums". Grāmata acÄ«mredzami jau bija izmantota. Vāka stÅ«ri bija saliekti, un aizmugurē bija redzams liels skrāpējums, tieÅ”i tur, kur Bils Geitss bija atstājis savu atsauksmi: ā€œJa lasāt Å”o grāmatu, noteikti atsÅ«tiet man savu CV,ā€ ar viņa parakstu. Es zināju par Geitsu no žurnāliem un domāju, ka bÅ«tu jauki nosÅ«tÄ«t viņam CV, lai gan visi Hakeri viņu kritizēja. Grāmata maksāja 72 UAH. (15 USD), un es ātri steidzos mājās ar tramvaju, lai izpētÄ«tu jaunu materiālu.

Cik dziļas un elementāras lietas es izlasīju, protams, 15 gadu vecumā nevarēju saprast. Bet es centos cītīgi izpildīt katru vingrinājumu. Reiz man pat izdevās pareizi atrisināt uzdevumu ar grūtības pakāpi 25 vai 30. Tā bija nodaļa par matemātisko indukciju. Lai gan man nepatika skolas matemātika un es to labi nesapratu, man bija pāri. Knuta analīze - es sēdēju stundām ilgi.
Tālāk, otrajā nodaļā bija datu struktÅ«ras. Å ie attēli un saistÄ«to sarakstu, bināro koku, skursteņu un rindu attēli joprojām ir manu acu priekŔā. Savā 12 gadu karjerā komerciālās attÄ«stÄ«bas jomā esmu izmantojis lielāko daļu vispārējas nozÄ«mes valodu.
Tie ir C/C++, C#, Java, Python, JavaScript, Delphi. Un neatkarÄ«gi no tā, kā valodu sauca, tās standarta bibliotēkā bija datu struktÅ«ras un algoritmi, ko Donalds Knuts aprakstÄ«ja savā trÄ«s sējumu grāmatā. Tāpēc kaut kā jauna apgÅ«Å”ana neaizņem daudz laika.

Pirmais sējums tika apēsts diezgan ātri. Es pārrakstÄ«ju Knuta grāmatā dotos algoritmus C valodā. Tas ne vienmēr izdevās, bet, jo vairāk praktizēju, jo lielāka skaidrÄ«ba radās. DedzÄ«bas netrÅ«ka. Pabeidzis pirmo sējumu, bez vilcināŔanās skrēju pirkt otro un treÅ”o. Otro pagaidām noliku malā, bet treÅ”o (Å Ä·iroÅ”ana un meklÄ“Å”ana) ķēru kārtÄ«gi.
Es ļoti labi atceros, kā es aizpildÄ«ju visu piezÄ«mju grāmatiņu, "interpretējot" kārtoÅ”anas un meklÄ“Å”anas algoritmus. Tāpat kā ar datu struktÅ«rām, binārā meklÄ“Å”ana un ātrā ŔķiroÅ”ana manās smadzenēs tiek vizualizēta zibens ātrumā, atceroties, kā tie shematiski izskatās Knuta treÅ”ajā sējumā.
Visur tika lasīta pātaga. Un pat tad, kad es devos jūrā, bez datora tuvumā, es joprojām pierakstīju algoritmus piezīmju grāmatiņā un palaidu skaitļu virknes caur tiem. Es joprojām atceros, cik daudz sāpju man prasīja, lai apgūtu kaudzi, bet tas bija tā vērts.

Nākamā grāmata, kas mani spēcÄ«gi ietekmēja, bija ā€œPÅ«Ä·a grāmataā€. Tas ir arÄ« ā€œSastādÄ«tāji: principi, tehnoloÄ£ijas, rÄ«kiā€ - A. Aho, R. Seti. Viņas priekŔā bija Herberts Å ilds ar progresÄ«viem uzdevumiem C++ valodā. Å eit punkti sanāca kopā.
Pateicoties Šildam, es iemācījos rakstīt parsētājus un valodas tulkus. Un tad Pūķa grāmata pamudināja mani uzrakstīt savu C++ kompilatoru.

ProgrammÄ“Å”anas karjera. 2. nodaļa. Skola vai paÅ”izglÄ«tÄ«ba
Pūķa grāmata

LÄ«dz tam laikam man bija pieŔķirts interneta pieslēgums ar modemu, un es daudz laika pavadÄ«ju programmētāju populārākajā vietnē - rsdn.ru. Tur dominēja C++, un katrs profesionālis varēja atbildēt uz jautājumiem, ar kuriem es nevarēju tikt galā. Man tas sāpēja, un es sapratu
ka esmu tālu no Å”iem bārdainajiem puiÅ”iem, tāpēc man jāpapēta ā€œNo un LÄ«dzā€ priekÅ”rocÄ«bu iekÅ”puse. Å Ä« motivācija mani noveda pie mana pirmā nopietnā projekta ā€“ mana 1998. gada C++ standarta kompilatora. SÄ«kāku vēsturi un avotus varat atrast Å”ajā rakstā habr.com/en/post/322656.

Skola vai paŔizglītība

Bet atgriezÄ«simies realitātē ārpus IDE. Lai gan lÄ«dz tam laikam es arvien vairāk attālinājos no reālās dzÄ«ves un gremdējos virtuālajā, tomēr vecums un vispārpieņemtās normas piespieda mani doties uz koledžu. Tā bija Ä«sta spÄ«dzināŔana. Man nebija ne mazākās nojausmas, ko es daru Å”ajā iestādē un kāpēc es klausÄ«jos Å”o informāciju. Man galvā bija pavisam citas prioritātes. Visual Studio 6.0 apgÅ«Å”ana, izmēģināŔana ar WinApi un Delphi 6.
BrÄ«niŔķīga vietne firststeps.ru, kas ļāva priecāties par katru manu soli, lai gan nesapratu kopējo ainu. Piemēram, tajā paŔā tehnoloÄ£ijā MFC vai ActiveX.
Kā ar koledžu? Tā bija laika izŔķieÅ”ana. Kopumā, ja pieskaramies studiju tēmai, es mācÄ«jos slikti. LÄ«dz 6. klasei biju teicamnieks, pēc tam dabÅ«ju C atzÄ«mes, un lÄ«dz 8.-9. klasei bieži izlaidu stundas, par kurām saņēmu no vecākiem iluzoras jostas.
Tāpēc, kad nācu uz koledžu, arī entuziasma bija maz.
- Kur ir programmÄ“Å”ana? Es uzdevu sev jautājumu. Bet gada pirmajā pusē viņŔ tur nebija. Bet bija informātika ar MS-DOS un Office, kā arÄ« vispārizglÄ«tojoÅ”ie priekÅ”meti.

Turklāt man bija intraverta personÄ«ba un es biju ļoti pieticÄ«gs. Å Ä« jaunā raibā ekipāža nepārprotami neradÄ«ja pārliecÄ«bu. Un tas bija abpusēji. Tāpēc dažāda veida ņirgāŔanās nebija ilgi gaidÄ«ta. Es to izturēju ilgi, lÄ«dz neizturēju un tieÅ”i stundā iesitu vienam no pārkāpējiem pa seju. Jā, tāpēc viņŔ aizlidoja pie sava galda. Paldies manam tēvam ā€“ viņŔ jau kopÅ” bērnÄ«bas mācÄ«ja cÄ«nÄ«ties, un, ja ļoti gribēju, varēju pielietot fizisku spēku. Bet tas notika ļoti reti, biežāk es izturēju izsmieklu, gaidot maksimālo virÅ”anas temperatÅ«ru.
Starp citu, likumpārkāpējs, lielā mērā pārsteigts par notiekoÅ”o, bet joprojām jÅ«tot savu pārākumu, izaicināja mani uz atriebÄ«bas cīņu. Jau brÄ«vajā laukumā aiz izglÄ«tÄ«bas iestādes.
Tā nebija bērnu dÅ«ru vicināŔana, kā tas bija skolā. Bija cēls mahahs ar lauztiem deguniem un daudz asiņu. Puisis arÄ« nebija kautrÄ«gs puisis un prasmÄ«gi piegādāja āķus un augŔējos griezumus. Visi palika dzÄ«vi, un kopÅ” tā laika neviens mani vairs nav apbēdinājis.
Å”ajā "programmētāju koledžā". DrÄ«z vien man zuda vēlme tur doties pavisam. Tāpēc es pārstāju uz turieni iet, un nekādi draudi no vecāku puses mani nekādi neietekmēja. Par kādu brÄ«numu mana uzturÄ“Å”anās koledžā tika ieskaitÄ«ta 10. skolas klasē, un man bija tiesÄ«bas iet uz 11. klasi.

Viss jau bÅ«tu labi, bet 11. klase izrādÄ«jās daudz labāka par koledžu. Atgriezos dzimtajā skolā, satiku dažus pazÄ«stamus puiÅ”us, ar kuriem mācÄ«jos kopā no pirmās klases, un cerēju, ka manā dzimtajā pilsētā viss bÅ«s kārtÄ«bā. Bija tikai viena nianse: puiÅ”i vairāk izskatÄ«jās pēc bandÄ«tiem no seriāliem, nevis puiÅ”iem, ar kuriem es draudzējos pamatskolā. Visi pulcējās uz sporta zāli, lai iegÅ«tu muskuļu masu. Es atgādināju bambusu. Viegls un ļoti plāns. Protams, tāds kauslis klasesbiedrs varētu mani piesiet ar vienu kreiso roku.
Tas ir tas, kas laika gaitā sāka notikt. Å eit manas cīņas prasmes vairs neietekmēja. Svara kategorijas man un pārējiem manas kādreizējās dzimtās klases zēniem bija ļoti atŔķirÄ«gas. ArÄ« manas domāŔanas Ä«patnÄ«bas lika par sevi manÄ«t.

Neļaujot savām domām klÄ«st, arÄ« es pametu skolu. Vieta, kur es jutos ērti, bija datora monitora priekŔā ar aizvērtām durvÄ«m uz manu istabu. Tam bija jēga, un intuitÄ«vi es jutu, ka daru pareizi. Un Ŕī skola ir bezjēdzÄ«ga nodarbe, un pat izturēt Ŕīs ņirgāŔanās, kuras ar katru dienu kļuva arvien izsmalcinātākas... Tas ir, man jau pietika.
Pēc kārtējā konflikta klasē, kad es iejutos galvenajā lomā, es pametu skolu un vairs tur negāju.
Apmēram 3 mēneÅ”us es sēdēju mājās, pavadot savu brÄ«vo laiku, mācoties C++/WinAPI/MFC un rsdn.ru.
Galu galā skolas direktors neizturēja un piezvanīja uz mājām.
- Denis, vai tu domā mācīties? Vai arī tu aiziesi? Izlemiet. Neviens jūs neatstās bezizejā." - teica direktors
"Es aizieÅ”u," es pārliecinoÅ”i atbildēju.

Un atkal tas pats stāsts. Man bija palicis pusgads, lai pabeigtu studijas lÄ«dz skolas beigÅ”anai. Neatstājiet mani bez garozas. Vecāki no manis atteicās un lika man paÅ”am iet sarunāt ar direktoru. Atnācu pie skolas direktores. Viņa man kliedza, lai noņemu cepuri, kad es iegāju. Tad viņa bargi jautāja: "Ko man ar tevi darÄ«t?" Atklāti sakot, es pats nezināju, ko darÄ«t. Es biju diezgan apmierināts ar paÅ”reizējo lietu stāvokli. Beidzot viņa uzstājās:
- "Tad darīsim tā. VienoŔos ar mūsu vakarskolas direktoru, un tu dosies uz turieni.
- "Jā"

Un vakarskola bija Ä«sta paradÄ«ze tādiem frÄ«staileriem kā es. Ej, ja gribi, vai neej. Klasē bija 45 cilvēki, no kuriem tikai 6-7 ieradās uz nodarbÄ«bām. Es neesmu pārliecināts, ka visi sarakstā bija dzÄ«vi un arÄ« brÄ«vi. Jo tikai manā klātbÅ«tnē klasesbiedri nozaga kāda cita motociklu. Bet fakts palika fakts. Es varētu neierobežoti uzlabot savas programmÄ“Å”anas prasmes un doties uz skolu, kad man tas patieŔām bija vajadzÄ«gs. Es beidzot to pabeidzu un nokārtoju gala eksāmenus. Viņi neko daudz neprasÄ«ja, un mums pat bija izlaiduma ceremonija. Izlaidums pats par sevi ir atseviŔķa fabula. Atceros, ka vietējie bandÄ«ti un klasesbiedri paņēma manu pulksteni. Un tiklÄ«dz izdzirdēju savu uzvārdu, apliecÄ«bu pasniegÅ”anas laikā metos rikÅ”os pēc dokumenta un kā lode izlidoju no skolas ārā, lai nesanāktu vairāk nepatikÅ”anas.

Vasara bija priekŔā. Ar Donaldu Knutu padusē pludmalē, jÅ«ru, sauli un liktenÄ«go lēmumu uzrakstÄ«t savu lielo projektu (sastādÄ«tāju).
Lai varētu turpināt ...

Avots: www.habr.com

Pievieno komentāru