Programming karera. Kabanata 2. Paaralan o edukasyon sa sarili

Pagpapatuloy ng kwento "Karera ng Programmer".

Ang taon ay 2001. Ang taon kung saan inilabas ang pinakaastig na operating system - Windows XP. Kailan lumitaw ang rsdn.ru? Taon ng kapanganakan ng C# at .NET Framework. Unang taon ng milenyo. At isang taon ng exponential growth sa kapangyarihan ng bagong hardware: Pentium IV, 256 mb ram.

Pagkatapos ng ika-9 na baitang at makita ang aking hindi mauubos na sigasig para sa programming, nagpasya ang aking mga magulang na ilipat ako sa kolehiyo sa major in Programming. Naniniwala sila na mas makakabuti sa ganitong paraan at doon nila ako tuturuan. Ang salitang kolehiyo, sa pamamagitan ng paraan, ay hindi nababagay sa institusyong ito, sa labas ng isang industriyal na bayan. Isa itong ordinaryong teknikal na paaralan, walang pinagkaiba sa ibang mga teknikal na paaralan na walang tatak na may naka-istilong salitang "kolehiyo" sa kanilang harapan.
Well. Hindi ko kinontra ang aking mga magulang at hindi ko hinamon ang kanilang desisyon. Sa anumang kaso, ako ay nakikibahagi sa pag-aaral sa sarili, at naisip ko na sa bagong lugar na ito ay bibigyan nila ako ng karagdagang kaalaman.


Noong tag-araw na iyon bago mag-kolehiyo, sinimulan kong lubusang pag-aralan ang lahat ng posibleng teknolohiya na nai-publish sa magasin "Hacker". Binasa ko at binasa ulit ng pira-piraso. Lalo kong nagustuhan ang mga panayam sa mga tunay na hacker at ang kanilang mga payo.
Karamihan sa mga cool na hacker ay nasa Linux. At ang Mazda (Windows) ay para sa mga lamer. Naaalala ng sinumang nakabasa ng magasin ang istilo ng mga post dito. Samakatuwid, sa aking marupok na isipan, dalawang ideya ang nag-away sa kanilang mga sarili - ang umalis sa Windows o ang maging cool at purong dumikit sa Linux.
Ang bawat bagong isyu ng Hacker magazine ay nagbigay sa akin ng bagong dahilan para i-format ang disk at i-install ang alinman sa Linux Red Hat 7 o Windows Me. Siyempre, wala akong anumang vector ng pagsasanay, at ginawa ko ang nabasa ko sa mga magazine o sa mga pirated na CD tulad ng "Mga Lihim ng mga Hacker." Ang pag-install ng dalawang operating system na magkatulad ay nabura din, pagkatapos ng isang bagong pagpupuno sa diwa ng "Windows XP aka parrot - ito ay para sa mga maybahay. At kung gusto mong gumawa ng mga seryosong bagay, kailangan mong magtrabaho mula sa Linux console nang nakapikit ang iyong mga mata. Siyempre, gusto kong mag-hack ng mga system, maunawaan kung paano gumagana ang network at maging pinakamakapangyarihang Anonymous sa oras na iyon.

Ang disk ay na-format nang walang anumang ikinalulungkot, at isang distribution kit ng isang Unix-like system ang na-install dito. Oo Oo. Minsan ay nabasa ko ang isang pakikipanayam sa isang tunay na hacker na gumagamit lamang ng FreeBSD 4.3 mula sa console. Kasabay nito, responsable siya sa pag-hack ng mga bangko at mga sistema ng gobyerno. Ito ay isang kidlat sa ulo, at na-install ko ang BSD OS bilang pangunahing sistema ng 5 beses. Ang problema ay pagkatapos ng pag-install, walang anuman doon maliban sa hubad na console. Kahit tunog. At upang mai-install ang KDE2 at i-on ang tunog, kinakailangan na sumayaw ng marami gamit ang isang tamburin, at itama ang ilang mga config.

Programming karera. Kabanata 2. Paaralan o edukasyon sa sarili
Ang pamamahagi ng FreeBSD 4.3 ay ang pinaka hacker OS

Tungkol sa panitikan

Sa sandaling nakakuha ako ng isang computer, nagsimula akong bumili ng mga libro sa programming. Ang una ay isang gabay sa "Turbo Pascal 7.0". Hindi ito nakakagulat, dahil alam ko na ang kaunting Pascal mula sa mga kurso sa programming, at maaari kong ipagpatuloy ang pag-aaral sa aking sarili. Ang problema ay ang mga Hacker ay hindi nagsusulat sa Pascal. Pagkatapos ang wikang Perl ay nasa uso, o, para sa mga mas cool na lalaki, ito ay C/C++. At least yun ang sinulat nila sa magazine. At ang unang librong binasa ko hanggang sa dulo ay ang β€œThe C Programming Language” - nina Kernighan at Ritchie. Siyanga pala, nag-aral ako sa kapaligiran ng Linux
at gumamit ng gcc at built-in na editor ng KDE para isulat ang code.

Kasunod ng aklat na ito, binili ang UNIX Encyclopedia. Tumimbang ito ng 3 kilo at nakalimbag sa A3 pages.
Sa harap na bahagi ng aklat ay mayroong isang buong-haba na paglalarawan ng isang cartoon devil na may pitchfork, at pagkatapos ay nagkakahalaga ito ng 125 hryvnia sa Ukraine (iyon ay humigit-kumulang $25 noong 2001). Upang makabili ng libro, humiram ako ng pera sa isang kaibigan sa paaralan, at idinagdag ng aking mga magulang ang natitira. Pagkatapos, masigasig kong sinimulan ang pag-aaral ng mga utos ng Unix, ang editor ng vim at emacs, ang istraktura ng file system at ang loob ng mga config file. Halos 700 pages ng encyclopedia ang nilamon at naging isang hakbang ako palapit sa pangarap ko - ang maging Kul-Hatzker.

Programming karera. Kabanata 2. Paaralan o edukasyon sa sarili
UNIX Encyclopedia - Isa sa mga unang librong nabasa ko

Ginastos ko ang lahat ng pera na ibinigay sa akin ng aking mapagmahal na lolo't lola at mga magulang sa mga libro. Ang susunod na aklat ay C++ sa 21 Araw. Ang pamagat ay talagang kaakit-akit, at iyon ang dahilan kung bakit hindi ako tumingin sa iba pang mga libro na may mas mataas na kalidad. Sa kabila nito, ang lahat ng mga pinagmumulan ay kinopya mula sa aklat sa loob ng 3 linggong ito, at may naintindihan na ako sa C++. Bagama't malamang na hindi ko na naintindihan ang mga nakasulat sa mga listahang ito. Ngunit nagkaroon ng pag-unlad.

Kung tatanungin mo ako kung aling libro ang pinakanakaimpluwensya sa iyong karera, sasagutin ko nang walang pag-aalinlangan - "The Art of Programming" - D. Knuth. Ito ay isang rewiring ng utak. Hindi ko masasabi sa iyo nang eksakto kung paano napunta sa aking mga kamay ang aklat na ito, ngunit ito ang may pinakamalalim na impluwensya sa aking karera sa hinaharap.

Programming karera. Kabanata 2. Paaralan o edukasyon sa sarili
Ang Sining ng Programming - dapat basahin

Bumili ako ng mga libro pangunahin sa merkado ng radyo, na bukas lamang tuwing Linggo. Ang pagkakaroon ng nai-save ng isa pang ilang sampu ng hryvnia sa almusal, nagpunta ako para sa isang bagong libro sa C++ o marahil Perl. Ang pagpipilian ay medyo malaki, ngunit wala akong tagapayo, kaya pinag-aralan ko ang lahat. Hiniling ko sa nagbebenta na irekomenda sa akin ang tungkol sa programming. At sa natatandaan ko, kinuha niya ang "The Art of Programming" sa istante. Unang Tomo". Ang libro ay malinaw na ginamit. Ang mga sulok ng pabalat ay baluktot, at may malaking gasgas na makikita sa likod, kung saan mismong iniwan ni Bill Gates ang kanyang pagsusuri: "Kung babasahin mo ang aklat na ito, dapat mong ipadala sa akin ang iyong resume," na pinirmahan niya. Alam ko ang tungkol kay Gates mula sa mga magazine, at naisip ko na mainam na magpadala sa kanya ng isang resume, kahit na ang lahat ng mga Hacker ay pinupuna siya. Ang libro ay nagkakahalaga ng 72 UAH. ($15), at mabilis akong umuwi sakay ng tram para mag-aral ng bagong materyal.

Kung gaano kalalim at pangunahing mga bagay ang nabasa ko, siyempre, hindi ko maintindihan sa 15 taong gulang. Ngunit masigasig kong sinubukang kumpletuhin ang bawat ehersisyo. Minsan ay nagawa kong maayos na malutas ang isang problema na may hirap na rating na 25 o 30. Isa itong kabanata sa mathematical induction. Bagama't hindi ko gusto ang matematika ng paaralan at hindi ko ito naintindihan ng mabuti, nalampasan ko ang banig. Pagsusuri ni Knuth - Umupo ako ng ilang oras.
Susunod, sa ikalawang kabanata ay mayroong mga istruktura ng datos. Ang mga larawan at larawan ng mga naka-link na listahan, binary tree, stack at pila ay nasa harapan ko pa rin. Sa aking 12 taong karera sa komersyal na pag-unlad, ginamit ko ang karamihan sa mga pangkalahatang layunin na wika.
Ang mga ito ay C/C++, C#, Java, Python, JavaScript, Delphi. At anuman ang tawag sa wika, ang karaniwang aklatan nito ay naglalaman ng mga istruktura ng data at mga algorithm na inilarawan ni Donald Knuth sa kanyang tatlong-volume na aklat. Samakatuwid, ang pag-aaral ng bago ay hindi nangangailangan ng maraming oras.

Ang unang volume ay nilamon ng medyo mabilis. Isinulat kong muli ang mga algorithm na ibinigay sa aklat ni Knuth sa wikang C. Hindi ito palaging gumagana, ngunit habang nagsasanay ako, mas nagiging malinaw. Walang pagkukulang sa kasigasigan. Nang matapos ang unang volume, walang pag-aalinlangan akong tumakbo para bilhin ang pangalawa at pangatlo. Isinasantabi ko ang pangalawa sa ngayon, ngunit kinuha ko nang maigi ang pangatlo (Pag-uuri at Paghahanap).
Tandang-tanda ko kung paano ko pinunan ang isang buong notebook, "pag-interpret" ng pag-uuri at mga algorithm sa paghahanap. Tulad ng mga istruktura ng data, ang binary na paghahanap at quicksort ay nakikita sa aking utak sa bilis ng kidlat, na naaalala kung paano ang hitsura ng mga ito sa eskematiko sa ikatlong volume ng Knuth.
Ang latigo ay binasa kung saan-saan. At kahit na pumunta ako sa dagat, nang walang PC sa malapit, isinulat ko pa rin ang mga algorithm sa isang notebook at nagpatakbo ng mga pagkakasunud-sunod ng mga numero sa pamamagitan ng mga ito. Naaalala ko pa kung gaano kasakit ang dinanas ko upang makabisado ang heapsort, ngunit sulit ito.

Ang sumunod na aklat na may malakas na impluwensya sa akin ay ang β€œThe Book of the Dragon.” Ito rin ay "Mga Compiler: Mga Prinsipyo, Teknolohiya, Mga Tool" - A. Aho, R. Seti. Naunahan siya ni Herbert Schiltd, na may mga advanced na gawain sa C++. Dito nagtagpo ang mga tuldok.
Salamat kay Schildt, natuto akong magsulat ng mga parser at interpreter ng wika. At pagkatapos ay sinenyasan ako ng Aklat ng Dragon na isulat ang sarili kong C++ compiler.

Programming karera. Kabanata 2. Paaralan o edukasyon sa sarili
Aklat ng Dragon

Sa oras na iyon, nabigyan ako ng modem-grinding na koneksyon sa Internet, at gumugol ako ng maraming oras sa pinakasikat na site para sa mga programmer - rsdn.ru. Nangibabaw doon ang C++ at masasagot ng bawat pro ang mga tanong na hindi ko kayang hawakan. Nasaktan ako, at naiintindihan ko
na malayo ako sa mga may balbas na ito, kaya kailangan kong pag-aralan ang loob ng mga pakinabang ng "From and To". Ang pagganyak na ito ay humantong sa akin sa aking unang seryosong proyekto - ang sarili kong compiler ng 1998 C++ na pamantayan. Makakahanap ka ng mas detalyadong kasaysayan at mga mapagkukunan sa post na ito habr.com/en/post/322656.

Paaralan o edukasyon sa sarili

Ngunit bumalik tayo sa realidad sa labas ng IDE. Bagaman, sa oras na iyon, ako ay lalong lumalayo sa totoong buhay at isinasawsaw ang aking sarili sa virtual na buhay, ang aking edad at karaniwang tinatanggap na mga pamantayan ay nagpilit sa akin na pumunta sa kolehiyo. Ito ay tunay na pagpapahirap. Wala talaga akong ideya kung ano ang ginagawa ko sa establishment na ito at kung bakit ako nakikinig sa impormasyong ito. Mayroon akong ganap na magkakaibang mga priyoridad sa aking ulo. Pag-aaral ng Visual Studio 6.0, sinusubukan sa WinApi at Delphi 6.
Isang kahanga-hangang site, firststeps.ru, na nagpapahintulot sa akin na magalak sa bawat hakbang na ginawa ko, kahit na hindi ko naiintindihan ang pangkalahatang larawan. Halimbawa, sa parehong teknolohiya MFC o ActiveX.
Paano ang kolehiyo? Ito ay isang pag-aaksaya ng oras. Sa pangkalahatan, kung hawakan natin ang paksa ng pag-aaral, nag-aral ako nang hindi maganda. Hanggang sa ika-6 na baitang ako ay isang mahusay na mag-aaral, at pagkatapos ay nakakuha ako ng mga marka ng C, at sa ika-8-9 na baitang, madalas akong lumaktaw sa mga klase, kung saan nakatanggap ako ng mga illusory na sinturon mula sa aking mga magulang.
Samakatuwid, pagdating ko sa kolehiyo, mayroon ding kaunting sigla.
- Nasaan ang programming? tanong ko sa sarili ko. Ngunit wala siya doon sa unang kalahati ng taon. Ngunit mayroong computer science na may MS-DOS at Office, pati na rin ang mga paksa sa pangkalahatang edukasyon.

Higit pa rito, nagkaroon ako ng introvert na personalidad at napakahinhin. Ang bagong motley crew na ito ay malinaw na hindi nagbigay inspirasyon sa pagtitiwala. At ito ay kapwa. Samakatuwid, ang iba't ibang uri ng pangungutya ay hindi nagtagal. Tiniis ko ito ng matagal, hanggang sa hindi ko na natiis at nasuntok ko ang mukha ng isa sa mga salarin sa mismong klase. Oo, kaya lumipad siya palayo sa kanyang mesa. Salamat sa aking ama - tinuruan niya akong lumaban mula pagkabata, at kung talagang gusto ko, maaari akong gumamit ng pisikal na puwersa. Ngunit ito ay napakabihirang nangyari; mas madalas kong tiniis ang pangungutya, naghihintay para sa pinakamataas na punto ng kumukulo.
Siyanga pala, ang nagkasala, na labis na nabigla sa nangyayari, ngunit nararamdaman pa rin ang kanyang higit na kahusayan, ay hinamon ako sa isang ganting laban. Nasa bakanteng lote na sa likod ng institusyong pang-edukasyon.
Hindi ito kumakaway ng kamao ng mga bata, gaya ng nangyari sa paaralan. May isang marangal na makhach na may sirang ilong at maraming dugo. Ang lalaki ay hindi rin mahiyain at mahusay na naghatid ng mga kawit at mga uppercut. Lahat ay nanatiling buhay, at mula noon ay wala nang nang-aapi sa akin.
sa "kolehiyo para sa mga programmer." Hindi nagtagal ay nawalan na ako ng ganang pumunta doon ng lubusan. Kaya naman, huminto ako sa pagpunta doon, at walang anumang banta mula sa aking mga magulang ang naging epekto sa akin. Sa pamamagitan ng ilang himala, ang aking pananatili sa kolehiyo ay binilang para sa ika-10 baitang ng paaralan, at may karapatan akong pumunta sa ika-11.

Magiging maayos ang lahat, ngunit ang ika-11 na baitang ay naging hindi mas mahusay kaysa sa kolehiyo. Bumalik ako sa aking home school, nakilala ang ilang lalaking kilala ko na pinag-aralan ko mula noong unang baitang, at umaasa na magiging maayos ang lahat sa aking bayan. Mayroon lamang isang nuance: Ang mga lalaki ay mas mukhang mga bandido mula sa mga serye sa TV kaysa sa mga batang lalaki na kaibigan ko noong elementarya. Ang lahat ay dumagsa sa gym upang makakuha ng mass ng kalamnan. Para akong kawayan. Matangkad at napakapayat. Syempre, kaya akong itali ng isang bully na kaklase gamit ang isang kaliwang kamay.
Ito ang nagsimulang mangyari sa paglipas ng panahon. Dito ay wala nang epekto ang aking kakayahan sa pakikipaglaban. Ang mga kategorya ng timbang ay ibang-iba para sa akin at sa iba pang mga lalaki sa aking dating katutubong klase. Gayundin, ang mga kakaiba ng aking pag-iisip ay nagparamdam sa kanilang sarili.

Without letting my thoughts waward, umalis din ako sa school. Kung saan komportable ako ay nasa harap ng monitor ng computer, na nakasara ang pinto ng aking silid. Ito ay may katuturan at intuitively naramdaman kong ginagawa ko ang tama. At ang paaralang ito ay isang walang kwentang aktibidad, at kahit na tiisin ang mga panunuya na ito, na araw-araw ay naging mas sopistikado... Iyon lang, sapat na ako.
Pagkatapos ng isa pang salungatan sa klase, kasama ako sa nangungunang papel, umalis ako sa paaralan at hindi na pumunta doon muli.
Humigit-kumulang 3 buwan akong nakaupo sa bahay, ginugugol ang aking libreng oras sa pag-aaral ng C++/WinAPI/MFC at rsdn.ru.
Sa huli, hindi nakatiis ang direktor ng paaralan at tumawag sa bahay.
- β€œDenis, iniisip mo bang mag-aral? O aalis ka? Magpasya. Walang mag-iiwan sa iyo sa limbo." - sabi ng direktor
"I'll leave," confident kong sagot.

At muli, ang parehong kuwento. Mayroon pa akong kalahating taon para tapusin ang aking pag-aaral bago ako makapagtapos ng pag-aaral. Huwag mo akong iwan na walang crust. Ang aking mga magulang ay sumuko sa akin at sinabi sa akin na makipag-ayos sa direktor mismo. Lumapit ako sa school principal. Sigaw niya sa akin na tanggalin ang sombrero ko pagkapasok ko. Pagkatapos ay mahigpit niyang tinanong, "Ano ang dapat kong gawin sa iyo?" Sa totoo lang, ako mismo ay hindi alam kung ano ang gagawin. Medyo masaya ako sa kasalukuyang kalagayan ng mga bagay. Sa wakas ay bumagsak siya sa sahig:
- "Kung gayon, gawin natin ito. Makikipagkasundo ako sa direktor ng ating evening school at doon ka pupunta."
- "Oo"

At ang panggabing paaralan ay isang tunay na paraiso para sa mga freestyler na tulad ko. Pumunta kung gusto mo, o huwag pumunta. Mayroong 45 katao sa klase, kung saan 6-7 lamang ang nagpakita sa mga klase. Hindi ako sigurado na lahat ng nasa listahan ay buhay at libre din. Dahil sa presensya ko lang nagnakaw ang mga kaklase ng motorsiklo ng iba. Ngunit ang katotohanan ay nanatiling katotohanan. Maaari kong i-upgrade ang aking mga kasanayan sa programming nang walang limitasyon, at pumunta sa paaralan kapag talagang kailangan ko ito. Natapos ko ito at naipasa ko ang aking huling pagsusulit. Hindi sila nag-demand ng marami, at nagkaroon pa kami ng graduation ceremony. Ang pagtatapos mismo ay isang hiwalay na pabula. Naalala ko na kinuha ng mga lokal na bandido at kaklase ang relo ko. At sa sandaling marinig ko ang aking apelyido, sa panahon ng pagtatanghal ng mga sertipiko, sumugod ako sa isang trot upang kunin ang dokumento at lumipad palabas ng paaralan na parang bala, upang hindi na magkaroon ng anumang gulo.

Nauna si Summer. Kasama si Donald Knuth sa ilalim ng kanyang braso sa beach, ang dagat, ang araw at ang nakamamatay na desisyon na magsulat ng kanyang sariling malaking proyekto (compiler).
Upang patuloy ...

Pinagmulan: www.habr.com

Magdagdag ng komento