Programada kariero. Ĉapitro 2. Lernejo aŭ memedukado

Daŭrigo de la rakonto "Programista Kariero".

La jaro estis 2001. La jaro en kiu la plej bonega mastruma sistemo estis publikigita - Windows XP. Kiam aperis rsdn.ru? Jaro de naskiĝo de C# kaj .NET Framework. Unua jaro de la jarmilo. Kaj jaro da eksponenta kresko en la potenco de nova aparataro: Pentium IV, 256 mb ram.

Fininte la 9-an klason kaj vidinte mian neelĉerpeblan entuziasmon por programado, miaj gepatroj decidis translokigi min al kolegio al specialaĵo pri Programado. Ili kredis, ke estus pli bone tiel kaj ke ili tie instruos min. La vorto kolegio, cetere, ne konvenis al tiu ĉi institucio, ĉe la periferio de industria urbo. Ĝi estis ordinara teknika lernejo, tute ne diferenca de aliaj teknikaj lernejoj, kiuj ne pendigis etikedon kun la moda vorto "kolegio" sur sia fasado.
Nu. Mi ne kontraŭdiris miajn gepatrojn kaj ne kontraŭis ilian decidon. Ĉiukaze mi okupiĝis pri memedukado, kaj mi pensis, ke en ĉi tiu nova loko oni donos al mi pliajn sciojn.


Tiun someron antaŭ ol iri al kolegio, mi komencis ĝisfunde studi ĉiujn eblajn teknologiojn, kiuj estis publikigitaj en la revuo "Hacker". Mi legis kaj relegas ĝin en pecetojn. Mi precipe ŝatis la intervjuojn kun veraj hakistoj kaj iliaj konsiloj.
La plej multaj el la bonegaj retpiratoj estis en Linukso. Kaj Mazda (Vindozo) estis por lameroj. Ĉiu, kiu legis la revuon, memoras la stilon de la afiŝoj en ĝi. Tial, en mia delikata menso, du ideoj batalis inter si - forlasi Vindozon aŭ esti mojosa kaj algluiĝi pure al Linukso.
Ĉiu nova numero de Hacker revuo donis al mi novan kialon formati la diskon kaj instali aŭ Linukson Red Hat 7 aŭ Windows Me. Kompreneble, mi ne havis iun ajn trejnan vektoron, kaj mi faris tion, kion mi legis en revuoj aŭ sur piratitaj KD kiel "Sekretoj de Hackers". La instalado de du operaciumoj paralele ankaŭ estis forigita, post nova plenigo en la spirito de "Windows XP alinome papago - ĉi tio estas por dommastrinoj. Kaj se vi volas fari seriozajn aferojn, vi devas labori de la Linukso-konzolo kun la okuloj fermitaj." Kompreneble, mi volis haki sistemojn, kompreni kiel funkcias la reto kaj esti la ĉiopova Anonima tiutempe.

La disko estis formatita sen ajna bedaŭro, kaj distribua kompleto de Unikso-simila sistemo estis instalita sur ĝi. Jes Jes. Mi iam legis intervjuon kun vera retpirato, kiu nur uzas FreeBSD 4.3 de la konzolo. Samtempe, li respondecis pri hakado de bankoj kaj registaraj sistemoj. Ĝi estis fulmofrapo al la kapo, kaj mi instalis BSD OS kiel la ĉefa sistemo 5 fojojn. La problemo estis, ke post instalado, estis nenio tie krom la nuda konzolo. Eĉ sono. Kaj por instali KDE2 kaj ŝalti la sonon, necesis multe danci per tamburino, kaj korekti plurajn agordojn.

Programada kariero. Ĉapitro 2. Lernejo aŭ memedukado
FreeBSD 4.3-distribuo estas la plej retpirata OS

Pri Literaturo

Tuj kiam mi ricevis komputilon, mi komencis aĉeti librojn pri programado. La unua estis gvidilo al "Turbo Pascal 7.0". Tio ne estas surpriza, ĉar mi jam konis iomete Paskalon el programado de kursoj, kaj mi povus daŭrigi la lernadon memstare. La problemo estis ke Hackers ne skribas en Paskalo. Tiam la Perl-lingvo estis en modo, aŭ, por la pli malvarmaj uloj, ĝi estis C/C++. Almenaŭ tion ili skribis en la revuo. Kaj la unua libro, kiun mi legis ĝis la fino, estis "La C Programlingvo" - de Kernighan kaj Ritchie. Cetere, mi studis en la Linukso-medio
kaj uzis gcc kaj la enkonstruitan redaktilon de KDE por skribi la kodon.

Sekvante ĉi tiun libron, la UNIX Enciklopedio estis aĉetita. Ĝi pezis 3 kilogramojn kaj estis presita sur A3-paĝoj.
Sur la antaŭa flanko de la libro estis plenlonga bildigo de bildstria diablo kun forkego, kaj ĝi tiam kostis 125 hryvnia en Ukrainio (tio estas proksimume 25 USD en 2001). Por aĉeti la libron, mi pruntis monon de lerneja amiko, kaj miaj gepatroj aldonis la reston. Tiam, mi entuziasme komencis studi Uniksajn komandojn, la redaktilon vim kaj emacs, la strukturon de la dosiersistemo kaj la internon de agordaj dosieroj. Preskaŭ 700 paĝoj de la enciklopedio estis formanĝitaj kaj mi iĝis unu paŝon pli proksime al mia revo - fariĝi Kul-Hatzker.

Programada kariero. Ĉapitro 2. Lernejo aŭ memedukado
UNIX Encyclopedia - Unu el la unuaj libroj, kiujn mi legis

Mi elspezis la tutan monon, kiun miaj amataj geavoj kaj gepatroj donis al mi por libroj. La sekva libro estis C++ en 21 Tagoj. La titolo estis tre alloga, kaj tial mi ne rigardis aliajn librojn pli kvalitajn. Malgraŭ tio, ĉiuj fontoj estis kopiitaj el la libro en proksimume ĉi tiu periodo de 3 semajnoj, kaj mi jam komprenis ion en C++. Kvankam mi verŝajne ne komprenis plu pri tio, kio estis skribita en ĉi tiuj listoj. Sed estis progreso.

Se vi demandus min, kiu libro plej influis vian karieron, mi senhezite respondus - "La Arto de Programado" - D. Knuth. Ĝi estis rekablado de la cerbo. Mi ne povas diri al vi precize kiel ĉi tiu libro venis en miajn manojn, sed ĝi havis la plej profundan influon sur mia estonta kariero.

Programada kariero. Ĉapitro 2. Lernejo aŭ memedukado
La Arto de Programado - devas legi

Mi aĉetis librojn ĉefe ĉe la radiomerkato, kiu estis malfermita nur dimanĉe. Ŝparinte kelkajn dekojn da hrivnio dum matenmanĝo, mi iris por nova libro pri C++ aŭ eble Perl. La elekto estis sufiĉe granda, sed mi ne havis mentoron, do mi studis ĉion. Mi petis la vendiston rekomendi al mi ion pri programado. Kaj laŭ mia memoro, li prenis "La Arto de Programado" el la breto. Unua Volumo". La libro klare jam estis uzata. La anguloj de la kovrilo estis fleksitaj, kaj estis granda gratvundeto videbla sur la dorso, ĝuste kie Bill Gates lasis sian recenzon: "Se vi legos ĉi tiun libron, vi sendube sendu al mi vian vivresumon", subskribita de li. Pri Gates mi sciis el revuoj, kaj mi pensis, ke estus bone sendi al li vivresumon, kvankam ĉiuj Hakistoj kritikis lin. La libro kostis 72 UAH. ($15), kaj mi rapide rapidis hejmen per tramo por studi novan materialon.

Kiel profundajn kaj bazajn aferojn mi legis, kompreneble, mi ne povis kompreni je 15 jaroj. Sed mi klopodis diligente plenumi ĉiun ekzercon. Iam mi eĉ sukcesis ĝuste solvi problemon kun malfacilec-taksado de 25 aŭ 30. Ĝi estis ĉapitro pri matematika indukto. Kvankam mi ne ŝatis lernejan matematikon kaj ne bone komprenis ĝin, mi estis super la mato. La analizo de Knuth - mi sidis dum horoj.
Poste, en la dua ĉapitro estis datumstrukturoj. Ĉi tiuj bildoj kaj bildoj de ligitaj listoj, binaraj arboj, stakoj kaj vostoj ankoraŭ estas antaŭ miaj okuloj. En mia 12-jara kariero en komerca evoluo, mi uzis plej ĝeneraluzeblajn lingvojn.
Ĉi tiuj estas C/C++, C#, Java, Python, JavaScript, Delphi. Kaj ne gravas kiel la lingvo nomiĝis, ĝia norma biblioteko enhavis datumstrukturojn kaj algoritmojn priskribitajn de Donald Knuth en sia trivoluma libro. Tial lerni ion novan ne bezonas multe da tempo.

La unua volumo estis formanĝita sufiĉe rapide. Mi reverkis la algoritmojn donitajn en la libro de Knuth en la lingvon C. Ĝi ne ĉiam funkciis, sed ju pli mi ekzercis, des pli granda klareco venis. Ne mankis fervoro. Fininte kun la unua volumo, mi senhezite kuris aĉeti la duan kaj trian. Mi flankenmetis la duan nuntempe, sed la trian (Ordigo kaj Serĉo) mi plene prenis.
Mi tre bone memoras, kiel mi plenigis tutan kajeron, "interpretante" ordigajn kaj serĉalgoritmojn. Same kiel kun datumstrukturoj, binara serĉo kaj rapidsortado estas bildigitaj en mia cerbo fulmrapide, memorante kiel ili aspektas skeme en la tria volumo de Knuth.
La vipo estis legita ĉie. Kaj eĉ kiam mi iris al la maron, sen komputilo apude, mi ankoraŭ notis algoritmojn en kajero kaj trakuris sekvencojn de nombroj. Mi ankoraŭ memoras kiom multe da doloro mi prenis por regi heapsort, sed ĝi valoris ĝin.

La sekva libro, kiu havis fortan influon sur mi, estis "La Libro de la Drako". Ĝi ankaŭ estas "Kompiloj: Principoj, Teknologioj, Iloj" - A. Aho, R. Seti. Ŝi estis antaŭita fare de Herbert Schiltd, kun progresintaj taskoj en C++. Ĉi tie kuniĝis la punktoj.
Dank' al Schildt mi lernis verki analizilojn kaj lingvointerpretojn. Kaj tiam la Libro de la Drako instigis min verki mian propran C++-kompililon.

Programada kariero. Ĉapitro 2. Lernejo aŭ memedukado
Libro de la Drako

En tiu tempo, mi ricevis modem-muelantan interretan konekton, kaj mi pasigis multan tempon en la plej populara retejo por programistoj - rsdn.ru. C++ regis tie kaj ĉiu profesiulo povis respondi demandojn, kiujn mi ne povis trakti. Ĝi doloris min, kaj mi komprenis
ke mi estas malproksime de ĉi tiuj barbuloj, do mi devas studi la internon de la avantaĝoj de "De kaj Al". Ĉi tiu instigo kondukis min al mia unua serioza projekto - mia propra kompililo de la 1998 C++-normo. Vi povas trovi pli detalan historion kaj fontojn en ĉi tiu afiŝo habr.com/en/post/322656.

Lernejo aŭ memedukado

Sed ni revenu al la realo ekster la IDE. Kvankam, tiam, mi ĉiam pli malproksimiĝis de la reala vivo kaj mergis min en la virtuala, tamen mia aĝo kaj ĝenerale akceptitaj normoj devigis min iri al universitato. Estis vera torturo. Mi tute ne havis ideon, kion mi faras en ĉi tiu establaĵo kaj kial mi aŭskultis ĉi tiun informon. Mi havis tute malsamajn prioritatojn en mia kapo. Lernante Visual Studio 6.0, provante kun WinApi kaj Delphi 6.
Mirinda retejo, firststeps.ru, kiu permesis al mi ĝoji pri ĉiu paŝo, kiun mi faris, kvankam mi ne komprenis la ĝeneralan bildon. Ekzemple, en la sama teknologio MFC aŭ ActiveX.
Kio pri kolegio? Estis tempoperdo. Ĝenerale, se ni tuŝas la temon de studoj, mi studis malbone. Ĝis la 6-a klaso mi estis bonega lernanto, kaj tiam mi ricevis C-gradojn, kaj ĝis la 8-a-9-a klaso mi ofte preterlasis klasojn, por kiuj mi ricevis iluziajn zonojn de miaj gepatroj.
Tial, kiam mi venis al kolegio, estis ankaŭ malmulte da entuziasmo.
- Kie estas la programado? Mi faris al mi demandon. Sed li ne estis tie en la unua duono de la jaro. Sed estis komputiko kun MS-DOS kaj Office, kaj ankaŭ pri ĝenerala edukado.

Krom tio, mi havis introvertitan personecon kaj estis tre modesta. Ĉi tiu nova bifurca skipo klare ne inspiris konfidon. Kaj ĝi estis reciproka. Sekve, diversaj specoj de mokado ne longe atendis. Mi eltenis ĝin dum longa tempo, ĝis mi ne povis elteni ĝin kaj pugnobatis unu el la krimuloj en la vizaĝon ĝuste en la klaso. Jes, do li forflugis al sia skribotablo. Dank' al mia patro – li instruis min batali ekde infanaĝo, kaj se mi vere volus, mi povus uzi fizikan forton. Sed tio okazis tre malofte; pli ofte mi eltenis mokadon, atendante la maksimuman bolpunkton.
Cetere, la krimulo, ege surprizita de tio, kio okazis, sed ankoraŭ sentante sian superecon, defiis min al venĝa batalo. Jam en la vaka tereno malantaŭ la eduka institucio.
Tio ne estis pugnosvingado de infanoj, kiel okazis en la lernejo. Estis nobla makhach kun rompitaj nazoj kaj multe da sango. La ulo ankaŭ ne estis timema ulo kaj lerte liveris hokojn kaj upertranĉojn. Ĉiuj restis vivantaj, kaj de tiam neniu plu ĉikanis min.
en ĉi tiu "kolegio por programistoj". Mi baldaŭ perdis la deziron iri tien tute. Tial, mi ĉesis iri tien, kaj neniuj minacoj de miaj gepatroj havis ajnan efikon al mi. Per ia miraklo, mia restado en kolegio estis kalkulita por la 10-a klaso de la lernejo, kaj mi rajtis iri al la 11-a.

Ĉio estus bone, sed 11-a klaso montriĝis ne multe pli bona ol kolegio. Mi revenis al mia hejma lernejo, renkontis kelkajn ulojn, kiujn mi konis, kun kiuj mi studis ekde la unua klaso, kaj esperis, ke ĉio estos bone en mia hejmurbo. Estis nur unu nuanco: La uloj aspektis pli kiel banditoj de televidaj serioj ol la knaboj kun kiuj mi estis amikoj en bazlernejo. Ĉiuj amasiĝis al la gimnazio por akiri muskola maso. Mi similis al bambuo. Malgrasa kaj tre maldika. Kompreneble, tia ĉikananta samklasano povus ligi min per unu maldekstra mano.
Jen kio komencis okazi kun la tempo. Ĉi tie miaj batalkapabloj ne plu efikis. La pezkategorioj estis tre malsamaj por mi kaj la ceteraj knaboj en mia iam denaska klaso. Ankaŭ la proprecoj de mia pensado sentiĝis.

Sen lasi miajn pensojn vagi, mi ankaŭ forlasis la lernejon. Kie mi sentis min komforta estis antaŭ komputila ekrano, kun la pordo al mia ĉambro fermita. Ĝi havis sencon kaj intuicie mi sentis, ke mi faras la ĝustan aferon. Kaj ĉi tiu lernejo estas senutila agado, kaj eĉ por elteni ĉi tiujn mokojn, kiuj ĉiutage fariĝis pli kaj pli altnivelaj... Jen, mi sufiĉe havis.
Post alia konflikto en la klaso, kun mi en la ĉefa rolo, mi forlasis la lernejon kaj neniam plu iris tien.
Dum ĉirkaŭ 3 monatoj mi sidis hejme, pasigante mian liberan tempon lernante C++/WinAPI/MFC kaj rsdn.ru.
Fine, la lerneja direktoro ne eltenis kaj vokis hejmen.
- “Denis, ĉu vi pensas studi? Aŭ ĉu vi foriros? Decidas. Neniu lasos vin en limbo.” - diris la direktoro
"Mi foriros," mi respondis memfide.

Kaj denove, la sama rakonto. Restis al mi duonjaro por fini miajn studojn antaŭ ol diplomiĝi el lernejo. Ne lasu min sen krusto. Miaj gepatroj rezignis pri mi kaj diris al mi, ke mi mem iru intertrakti kun la direktoro. Mi venis al la lernejestro. Ŝi kriis al mi, ke mi demetu mian ĉapelon, kiam mi eniris. Tiam ŝi severe demandis: "Kion mi faru kun vi?" Sincere, mi mem ne sciis kion fari. Mi estis sufiĉe feliĉa pri la nuna stato de la aferoj. Fine ŝi prenis la parolon:
- “Do ni faru ĉi tion. Mi interkonsentos kun la direktoro de nia vespera lernejo kaj vi iros tien.”
- "Jes"

Kaj vespera lernejo estis vera paradizo por liberstilaj kiel mi. Iru se vi volas, aŭ ne iru. Estis 45 homoj en la klaso, el kiuj nur 6-7 aperis por klasoj. Mi ne certas, ke ĉiuj en la listo estis vivantaj kaj ankaŭ liberaj. Ĉar nur en mia ĉeesto samklasanoj ŝtelis alies motorciklon. Sed la fakto restis fakto. Mi povus altgradigi miajn programajn kapablojn senlime, kaj iri al lernejo kiam mi vere bezonis ĝin. Mi finis ĝin kaj trapasis miajn finajn ekzamenojn. Ili ne postulis multon, kaj ni eĉ havis diplomiĝan ceremonion. Diplomiĝo en si mem estas aparta fablo. Mi memoras, ke lokaj banditoj kaj samklasanoj prenis mian horloĝon. Kaj tuj kiam mi aŭdis mian familinomon, dum la prezento de atestiloj, mi trote rapidis por preni la dokumenton kaj elflugis el la lernejo kiel kuglo, por ne trafi plu problemojn.

Somero estis antaŭen. Kun Donald Knuth sub la brako sur la strando, la maro, la suno kaj la fatala decido skribi sian propran grandan projekton (kompililo).
Daŭrigota…

fonto: www.habr.com

Aldoni komenton