Karir pemrograman. Bab 2. Sekolah utawa pamulangan dhiri

Lanjutane critane "Karier Programmer".

Taun iku 2001. Taun nalika sistem operasi paling keren dirilis - Windows XP. Nalika rsdn.ru muncul? Taun lair saka C # lan .NET Framework. Taun pisanan milenium. Lan taun wutah eksponensial ing daya hardware anyar: Pentium IV, 256 mb ram.

Sawise rampung kelas 9 lan weruh semangatku sing ora bisa entek kanggo program, wong tuwaku mutusake kanggo mindhah aku kuliah menyang jurusan Pemrograman. Dheweke percaya yen cara iki luwih apik lan bakal mulang aku ing kana. Tembung kuliah, kanthi cara, ora cocog karo institusi iki, ing pinggiran kutha industri. Iki minangka sekolah teknis biasa, ora beda karo sekolah teknis liyane sing ora menehi label kanthi tembung "kuliah" sing modis ing fasad.
Inggih. Aku ora mbantah wong tuwaku lan ora nantang keputusane. Ing kasus apa wae, aku melu pendidikan mandiri, lan aku mikir yen ing papan anyar iki bakal menehi kawruh tambahan.


Musim panas kasebut sadurunge kuliah, aku wiwit sinau kanthi tliti kabeh teknologi sing bisa diterbitake ing majalah kasebut. "Hacker". Aku maca lan maca maneh dadi potongan. Aku seneng banget karo wawancara karo peretas nyata lan sarane.
Umume peretas sing keren ana ing Linux. Lan Mazda (Windows) kanggo lamers. Sapa wae sing wis maca majalah kasebut ngelingi gaya tulisan ing njero. Mulane, ing pikiranku sing rapuh, rong gagasan padha gelut - ninggalake Windows utawa dadi keren lan tetep nganggo Linux.
Saben edisi anyar majalah Hacker menehi alesan anyar kanggo ngowahi format disk lan nginstal Linux Red Hat 7 utawa Windows Me. Mesthi wae, aku ora duwe vektor latihan, lan aku nindakake apa sing diwaca ing majalah utawa ing CD bajakan kaya "Rahasia Peretas." Instalasi loro sistem operasi ing podo karo uga dibusak, sawise nganyari anyar ing semangat "Windows XP aka parrot - iki kanggo ibu rumah tangga. Lan yen sampeyan pengin nindakake perkara sing serius, sampeyan kudu kerja saka konsol Linux kanthi mripat ditutup. Mesthi wae, aku pengin hack sistem, ngerti cara kerja jaringan lan dadi Anonim sing paling kuat ing wektu kasebut.

Disk kasebut diformat tanpa penyesalan, lan kit distribusi saka sistem kaya Unix dipasang. Ya wis. Aku tau maca wawancara karo peretas nyata sing mung nggunakake FreeBSD 4.3 saka konsol. Ing wektu sing padha, dheweke tanggung jawab kanggo hacking bank lan sistem pemerintah. Iku serangan kilat kanggo sirah, lan aku diinstal BSD OS minangka sistem utama 5 kaping. Masalah iku sawise instalasi, ora ana apa-apa kajaba console gundhul. Malah swara. Lan kanggo nginstal KDE2 lan nguripake swara, iku perlu kanggo nari kathah karo rebana, lan mbenerake sawetara konfigurasi.

Karir pemrograman. Bab 2. Sekolah utawa pamulangan dhiri
Distribusi FreeBSD 4.3 minangka OS paling hacker

Babagan Sastra

Sawise entuk komputer, aku wiwit tuku buku babagan program. Pisanan ana pandhuan kanggo "Turbo Pascal 7.0". Iki ora nggumunake, amarga aku wis ngerti sethithik Pascal saka kursus pemrograman, lan aku bisa terus sinau dhewe. Masalahe yaiku Peretas ora nulis ing Pascal. Banjur basa Perl ana ing mode, utawa, kanggo wong sing luwih adhem, yaiku C / C ++. Paling-paling kuwi sing ditulis ing majalah. Lan buku pisanan sing dakwaca nganti pungkasan yaiku "Bahasa Pemrograman C" - dening Kernighan lan Ritchie. Miturut cara, aku sinau ing lingkungan Linux
lan nggunakake gcc lan editor dibangun ing KDE kanggo nulis kode.

Sawise buku iki, Ensiklopedia UNIX dituku. BobotΓ© 3 kilogram lan dicithak ing kaca A3.
Ing sisih ngarep buku ana gambaran lengkap saka setan kartun karo pitchfork, lan banjur biaya 125 hryvnia ing Ukraina (iku kira-kira $25 ing 2001). Kanggo tuku buku, aku nyilih dhuwit menyang kanca sekolah, lan wong tuwaku nambahi liyane. Banjur, aku antusias wiwit nyinaoni perintah Unix, editor vim lan emacs, struktur sistem file lan njero file konfigurasi. SaklawasΓ© 700 kaca ensiklopedia dimangsa lan aku dadi siji langkah nyedhaki impenku - dadi Kul-Hatzker.

Karir pemrograman. Bab 2. Sekolah utawa pamulangan dhiri
UNIX Encyclopedia - Salah sawijining buku pisanan sing dakwaca

Aku mbuwang kabeh dhuwit sing diwenehake simbah lan wong tuwaku sing tresna marang aku ing buku. Buku sabanjure yaiku C ++ ing 21 Dina. Judhul kasebut narik banget, mula aku ora ndeleng buku liyane sing luwih dhuwur. Senadyan iki, kabeh sumber disalin saka buku ing bab wektu iki 3 minggu, lan aku wis ngerti soko ing C ++. Senajan aku mbokmenawa ora ngerti maneh apa sing ditulis ing listings iki. Nanging ana kemajuan.

Yen sampeyan takon kula buku sing paling dipengaruhi karir, aku bakal mangsuli tanpa mangu-mangu - "The Art of Programming" - D. Knuth. Iku rewiring saka otak. Aku ora bisa pitutur marang kowe persis carane buku iki teka menyang tangan, nanging wis pengaruh paling penting ing karir mangsa.

Karir pemrograman. Bab 2. Sekolah utawa pamulangan dhiri
The Art of Programming - kudu maca

Aku tuku buku utamane ing pasar radio, sing mbukak mung dina Minggu. Duwe disimpen liyane sawetara puluhan hryvnia ing sarapan, Aku banjur kanggo buku anyar ing C ++ utawa Mungkin Perl. Pilihan kasebut cukup gedhe, nanging aku ora duwe mentor, mula aku sinau kabeh. Aku takon bakul kanggo menehi saran kula bab program. Lan minangka adoh aku elinga, kang njupuk "The Art of Programming" saka beting. Volume pisanan". Buku kasebut kanthi jelas wis digunakake. Ing sudhut tutup padha mbengkongaken, lan ana goresan gedhe katon ing mburi, persis ngendi Bill Gates wis ninggalake review kang: "Yen maca buku iki, temtunipun ngirim ngirim resume," mlebu dening wong. Aku ngerti babagan Gates saka majalah, lan aku mikir bakal luwih becik ngirim resume, sanajan kabeh Peretas ngritik dheweke. Buku kasebut regane 72 UAH. ($15), lan aku cepet-cepet mulih numpak trem kanggo sinau materi anyar.

Sepira jero lan dhasar sing dakwaca, mesthi aku ora ngerti nalika umur 15 taun. Nanging aku nyoba sregep ngrampungake saben latihan. Sawise aku malah bisa bener ngatasi masalah karo HFS kangelan 25 utawa 30. Iku bab induksi matΓ©matika. Senajan aku ora kaya matΓ©matika sekolah lan ora nangkep iku uga, Aku liwat mat. Analisis Knuth - Aku lungguh nganti pirang-pirang jam.
Salajengipun, ing bab kaping kalih wonten struktur data. Gambar lan gambar dhaptar sing disambung, wit binar, tumpukan lan antrian isih ana ing ngarepku. Ing karir 12 taun ing pangembangan komersial, aku wis nggunakake basa tujuan umum.
Iki C/C++, C#, Java, Python, JavaScript, Delphi. Lan apa wae basa kasebut diarani, perpustakaan standar kasebut ngemot struktur data lan algoritma sing diterangake dening Donald Knuth ing buku telung volume. Mula, sinau sing anyar ora butuh wektu akeh.

Volume pisanan dipangan kanthi cepet. Aku rewrote algoritma diwenehi ing buku Knuth menyang basa C. Ora tansah bisa metu, nanging liyane aku laku, sing luwih gamblang teka. Ora ana kekurangane semangat. Wis rampung karo jilid pertama, aku tanpa ragu-ragu mlayu tuku sing nomer loro lan katelu. Aku sijine sing nomer loro aside kanggo saiki, nanging aku njupuk munggah katelu (Ngurutake lan Panelusuran) sak tenane.
Aku elinga banget carane aku ngisi kabeh notebook, "interpretasi" ngurutake lan algoritma panelusuran. Kaya karo struktur data, telusuran binar lan quicksort digambarake ing otakku kanthi kacepetan kilat, ngelingi carane katon skematis ing volume katelu Knuth.
Pecut diwaca ing endi-endi. Lan sanajan aku lunga menyang segara, tanpa PC cedhak, Aku isih wrote mudhun algoritma ing notebook lan mlayu urutan nomer liwat wong-wong mau. Aku isih ngelingi carane akeh pain njupuk kula kanggo master heapsort, nanging worth iku.

Buku sabanjure sing nduwe pengaruh kuat marang aku yaiku "Kitab Naga." Iku uga "Penyusun: Prinsip, Teknologi, Alat" - A. Aho, R. Seti. Dheweke didhisiki dening Herbert Schiltd, kanthi tugas lanjut ing C++. Iki ngendi titik teka bebarengan.
Thanks kanggo Schildt, aku sinau nulis parser lan juru basa. Banjur Kitab Naga ngajak aku nulis kompiler C ++ dhewe.

Karir pemrograman. Bab 2. Sekolah utawa pamulangan dhiri
Kitab Naga

Ing wektu iku, aku wis diwenehi sambungan Internet modem-grinding, lan aku ngenteni akeh wektu ing situs sing paling populer kanggo programer - rsdn.ru. C ++ didominasi ana lan saben pro bisa njawab pitakonan sing aku ora bisa kanggo nangani. Iku babras kula, lan aku mangertos
yen aku adoh saka wong-wong sing jenggot iki, mula aku kudu sinau babagan kaluwihan "From and To". Motivasi iki mimpin kula kanggo proyek serius pisanan - compiler dhewe saka 1998 C ++ standar. Sampeyan bisa nemokake riwayat lan sumber sing luwih rinci ing kirim iki habr.com/en/post/322656.

Sekolah utawa pendidikan mandiri

Nanging ayo bali menyang kasunyatan ing njaba IDE. Senajan, ing wektu iku, aku wis saya obah adoh saka urip nyata lan nyemplungaken dhewe ing virtual siji, isih umur lan norma-norma sing ditampa umum meksa kula kanggo pindhah menyang College. Iku torture nyata. Aku pancen ora ngerti apa sing ditindakake ing panyiapan iki lan kenapa aku ngrungokake informasi iki. Aku wis prioritas temen beda ing sirah. Sinau Visual Studio 6.0, nyoba nganggo WinApi lan Delphi 6.
Situs sing apik, firststeps.ru, sing ngidini aku bungah ing saben langkah sing ditindakake, sanajan aku ora ngerti gambar sakabèhé. Contone, ing teknologi padha MFC utawa ActiveX.
Kepiye babagan kuliah? Iku sampah wektu. UmumΓ©, yen kita ndemek topik pasinaon, aku sinau kanthi kurang. Nganti kelas 6 aku dadi murid sing apik banget, banjur aku entuk biji C, lan ing kelas 8-9 aku kerep mbolos kelas, sing aku entuk sabuk ilusi saka wong tuwaku.
Mula, nalika aku kuliah, semangate uga sithik.
- Ing endi pemrograman? Aku takon dhewe pitakonan. Nanging dheweke ora ana ing paruh pertama taun. Nanging ana ilmu komputer karo MS-DOS lan Kantor, uga mata pelajaran pendidikan umum.

Ing ndhuwur iku, Aku pribadine introvert lan banget andhap asor. kru motley anyar iki cetha ora inspirasi kapercayan. Lan iku bebarengan. Mula, macem-macem moyoki ora suwe. Aku tahan kanggo dangu, nganti aku ora tahan lan doyo salah siji saka nerak ing pasuryan tengen ing kelas. Ya, banjur dheweke mabur menyang mejane. Thanks kanggo bapakku - dheweke ngajari aku perang wiwit cilik, lan yen aku pancene pengin, aku bisa nggunakake kekuwatan fisik. Nanging iki kedadeyan arang banget; luwih kerep aku nandhang ejekan, ngenteni titik didih maksimal.
Miturut cara, sing nerak, banget kaget karo apa sing kedadeyan, nanging isih rumangsa unggul, nantang aku kanggo perang mbales. Wis ing loteng kosong konco institusi pendidikan.
Iki dudu dolanan bocah-bocah, kaya sing kedadeyan ing sekolah. Ing kono ana makhach sing mulya irunge rusak lan getihe akeh. Wong iki uga ora wong isinan lan skillfully dikirim pancingan lan uppercuts. Kabeh wong tetep urip, lan wiwit iku ora ana sing ngganggu aku maneh.
ing "kuliah kanggo programer" iki. Aku banjur ilang kepinginan kanggo mrana rampung. Mula, aku mandheg mrana, lan ora ana ancaman saka wong tuwaku sing ana pengaruhe marang aku. Kanthi mukjizat, wektu kuliahku diitung nganti kelas 10, lan aku duwe hak kanggo mlebu kelas 11.

Kabeh bakal apik, nanging kelas 11 ora luwih apik tinimbang kuliah. Aku bali menyang sekolah ngarep, ketemu sawetara wong sing aku kenal karo sing aku sinau wiwit kelas siji, lan ngarep-arep supaya kabeh bakal apik ing kutha asalku. Mung ana siji nuansa: Wong lanang katon luwih kaya bandit saka serial TV tinimbang bocah lanang sing aku kanca ing SD. Kabeh padha kumpul menyang gedung olahraga kanggo entuk massa otot. Aku kaya pring. Lanky lan banget tipis. Mesthi, kanca kelas sing bully kuwi bisa naleni aku nganggo tangan kiwa.
Iki sing diwiwiti saka wektu. Ing kene katrampilan gelutku ora ana pengaruh maneh. Kategori bobot beda banget kanggo aku lan bocah-bocah liyane ing kelas asliku. Uga, peculiarities saka pikiranku digawe dhewe felt.

Tanpa nglilani pikiranku, aku uga budhal sekolah. Ing ngendi aku rumangsa kepenak ana ing ngarep monitor komputer, kanthi lawang kamar ditutup. Iku digawe raos lan intuisi aku felt kaya aku nindakake bab tengen. Lan sekolah iki minangka kegiatan sing ora ana gunane, lan malah kanggo nahan ejekan iki, sing saben dina dadi luwih canggih ... Mekaten, aku wis cukup.
Sawise konflik liyane ing kelas, karo aku dadi peran utama, aku ninggalake sekolah lan ora nate mlebu maneh.
Kira-kira 3 sasi aku lungguh ing omah, mbuwang wektu luang kanggo sinau C++/WinAPI/MFC lan rsdn.ru.
Pungkasane, direktur sekolah ora tahan lan nelpon menyang omah.
- "Denis, sampeyan mikir sinau? Utawa bakal ninggalake? mutusake. Ora ana sing bakal ninggalake sampeyan ing limbo. - ngandika direktur
β€œAku mangkat,” wangsulanku manteb.

Lan maneh, crita sing padha. Aku isih duwe setengah taun kanggo ngrampungake sinau sadurunge lulus sekolah. Aja ninggalake aku tanpa kerak. Wong tuwaku nyerah lan ngandhani aku supaya rembugan karo direktur dhewe. Aku teka menyang kepala sekolah. Dheweke bengok-bengok supaya aku nyopot topi nalika aku mlebu. Banjur dheweke takon, "Apa sing kudu dak lakoni karo sampeyan?" Terus terang, aku dhewe ora ngerti apa sing kudu ditindakake. Aku cukup seneng karo kahanan saiki. Pungkasane dheweke njupuk lantai:
- "Banjur ayo nindakake iki. Aku bakal nggawe persetujuan karo direktur sekolah sore lan sampeyan bakal mrana.
- "Inggih"

Lan sekolah sore minangka swarga nyata kanggo para freestylers kaya aku. Lunga yen sampeyan pengin, utawa aja lunga. Ana 45 wong ing kelas, sing mung 6-7 sing teka ing kelas. Aku ora yakin sing kabeh wong ing dhaftar urip lan uga free. Amarga mung ing ngarepku kanca-kanca kelas nyolong motore wong liya. Nanging kasunyatan tetep kasunyatan. Aku bisa nganyarke katrampilan program tanpa wates, lan sekolah nalika aku pancene butuh. Aku wis rampung lan lulus ujian pungkasan. Padha ora nuntut akeh, lan kita malah wis upacara wisuda. Wisuda dhewe minangka dongeng sing kapisah. Aku kelingan yen bandit lan kanca sekelas njupuk jam tanganku. Lan sanalika aku krungu jeneng mburi, ing presentation saka sertifikat, aku cepet-cepet trot kanggo njupuk dokumen lan mabur metu saka sekolah kaya peluru, supaya ora ngalami alangan maneh.

Musim panas wis ngarep. Kanthi Donald Knuth ing lengen ing pantai, segara, srengenge lan kaputusan fateful kanggo nulis project amba dhewe (compiler).
Terus ...

Source: www.habr.com

Add a comment