Kerjaya pengaturcaraan. Bab 2. Sekolah atau pendidikan diri

Sambungan cerita "Kerjaya Pengaturcara".

Tahun itu 2001. Tahun di mana sistem pengendalian paling hebat dikeluarkan - Windows XP. Bilakah rsdn.ru muncul? Tahun kelahiran C# dan .NET Framework. Tahun pertama milenium. Dan setahun pertumbuhan eksponen dalam kuasa perkakasan baharu: Pentium IV, ram 256 mb.

Selepas menamatkan gred 9 dan melihat semangat saya yang tidak habis-habis untuk pengaturcaraan, ibu bapa saya memutuskan untuk memindahkan saya ke kolej untuk mengambil jurusan Pengaturcaraan. Mereka percaya bahawa cara ini lebih baik dan mereka akan mengajar saya di sana. Perkataan kolej, dengan cara itu, tidak sesuai dengan institusi ini, di pinggir bandar perindustrian. Ia adalah sekolah teknik biasa, tidak berbeza dengan sekolah teknik lain yang tidak menggantung label dengan perkataan bergaya "kolej" di muka depan mereka.
Nah. Saya tidak bercanggah dengan ibu bapa saya dan tidak mencabar keputusan mereka. Walau apa pun, saya terlibat dalam pendidikan diri, dan saya fikir di tempat baru ini mereka akan memberi saya pengetahuan tambahan.


Musim panas itu sebelum pergi ke kolej, saya mula mengkaji dengan teliti semua kemungkinan teknologi yang diterbitkan dalam majalah "Penggodam". Saya membaca dan membacanya semula sehingga berkeping-keping. Saya sangat menyukai wawancara dengan penggodam sebenar dan nasihat mereka.
Kebanyakan penggodam hebat berada di Linux. Dan Mazda (Windows) adalah untuk lamers. Sesiapa yang telah membaca majalah itu masih ingat gaya siaran di dalamnya. Oleh itu, dalam fikiran saya yang rapuh, dua idea bertarung sesama sendiri - untuk meninggalkan Windows atau menjadi sejuk dan berpegang pada Linux semata-mata.
Setiap keluaran baharu majalah Hacker memberi saya sebab baharu untuk memformat cakera dan memasang sama ada Linux Red Hat 7 atau Windows Me. Sudah tentu, saya tidak mempunyai sebarang vektor latihan, dan saya melakukan apa yang saya baca dalam majalah atau CD cetak rompak seperti "Rahsia Penggodam." Pemasangan dua sistem operasi secara selari juga dipadamkan, selepas pemadat baru dalam semangat "Windows XP aka parrot - ini untuk suri rumah. Dan jika anda mahu melakukan perkara yang serius, anda perlu bekerja dari konsol Linux dengan mata tertutup.” Sudah tentu, saya ingin menggodam sistem, memahami cara rangkaian berfungsi dan menjadi Anonymous yang paling berkuasa pada masa itu.

Cakera telah diformatkan tanpa sebarang penyesalan, dan kit pengedaran sistem seperti Unix telah dipasang padanya. Ya Ya. Saya pernah membaca wawancara dengan penggodam sebenar yang hanya menggunakan FreeBSD 4.3 dari konsol. Pada masa yang sama, beliau bertanggungjawab menggodam bank dan sistem kerajaan. Ia adalah sambaran petir ke kepala, dan saya memasang OS BSD sebagai sistem utama sebanyak 5 kali. Masalahnya ialah selepas pemasangan, tiada apa-apa di sana kecuali konsol kosong. Malah bunyi. Dan untuk memasang KDE2 dan menghidupkan bunyi, anda perlu banyak menari dengan tamborin, dan membetulkan beberapa konfigurasi.

Kerjaya pengaturcaraan. Bab 2. Sekolah atau pendidikan diri
Pengedaran FreeBSD 4.3 ialah OS paling banyak penggodam

Mengenai sastera

Sebaik sahaja saya mendapat komputer, saya mula membeli buku mengenai pengaturcaraan. Yang pertama ialah panduan kepada "Turbo Pascal 7.0". Ini tidak menghairankan, kerana saya sudah mengetahui sedikit Pascal daripada kursus pengaturcaraan, dan saya boleh terus belajar sendiri. Masalahnya ialah Penggodam tidak menulis dalam Pascal. Kemudian bahasa Perl adalah dalam fesyen, atau, untuk lelaki yang lebih keren, ia adalah C/C++. Sekurang-kurangnya itulah yang mereka tulis dalam majalah itu. Dan buku pertama yang saya baca hingga akhir ialah "The C Programming Language" - oleh Kernighan dan Ritchie. By the way, saya belajar dalam persekitaran Linux
dan menggunakan gcc dan editor terbina dalam KDE untuk menulis kod.

Mengikuti buku ini, Ensiklopedia UNIX telah dibeli. Ia seberat 3 kilogram dan dicetak pada muka surat A3.
Di bahagian hadapan buku itu terdapat gambaran penuh kartun syaitan dengan garpu rumput, dan ia kemudian berharga 125 Hryvnia di Ukraine (iaitu kira-kira $25 pada tahun 2001). Untuk membeli buku itu, saya meminjam wang daripada rakan sekolah, dan ibu bapa saya menambah selebihnya. Kemudian, saya dengan penuh semangat mula mengkaji arahan Unix, editor vim dan emacs, struktur sistem fail dan bahagian dalam fail konfigurasi. Hampir 700 muka surat ensiklopedia telah ditelan dan saya menjadi selangkah lebih dekat dengan impian saya - untuk menjadi seorang Kul-Hatzker.

Kerjaya pengaturcaraan. Bab 2. Sekolah atau pendidikan diri
Ensiklopedia UNIX - Salah satu buku pertama yang saya baca

Saya membelanjakan semua wang yang diberikan oleh datuk nenek dan ibu bapa saya untuk membeli buku. Buku seterusnya ialah C++ dalam 21 Hari. Tajuknya sangat menarik, dan itulah sebabnya saya tidak melihat buku lain yang lebih berkualiti. Walaupun begitu, semua sumber telah disalin daripada buku dalam tempoh 3 minggu ini, dan saya sudah memahami sesuatu dalam C++. Walaupun saya mungkin tidak faham lagi apa yang ditulis dalam penyenaraian ini. Tetapi ada kemajuan.

Jika anda bertanya kepada saya buku mana yang paling mempengaruhi kerjaya anda, saya akan menjawab tanpa teragak-agak - "Seni Pengaturcaraan" - D. Knuth. Ia adalah pendawaian semula otak. Saya tidak dapat memberitahu anda dengan tepat bagaimana buku ini sampai ke tangan saya, tetapi ia mempunyai pengaruh paling mendalam pada kerjaya masa depan saya.

Kerjaya pengaturcaraan. Bab 2. Sekolah atau pendidikan diri
Seni Pengaturcaraan - mesti dibaca

Saya membeli buku terutamanya di pasar radio, yang dibuka hanya pada hari Ahad. Setelah menjimatkan beberapa puluh Hryvnia lagi untuk sarapan, saya pergi untuk buku baharu tentang C++ atau mungkin Perl. Pilihannya agak besar, tetapi saya tidak mempunyai mentor, jadi saya mempelajari segala-galanya. Saya meminta penjual mengesyorkan saya sesuatu tentang pengaturcaraan. Dan seingat saya, dia mengambil "The Art of Programming" dari rak. Jilid Pertama". Buku itu jelas telah digunakan. Sudut kulit muka dibengkokkan, dan terdapat calar besar yang kelihatan di bahagian belakang, tepat di mana Bill Gates meninggalkan ulasannya: "Jika anda membaca buku ini, anda mesti menghantar resume anda kepada saya," yang ditandatangani olehnya. Saya tahu tentang Gates dari majalah, dan saya fikir adalah baik untuk menghantar resume kepadanya, walaupun semua Penggodam mengkritiknya. Buku itu berharga 72 UAH. ($15), dan saya segera bergegas pulang dengan trem untuk mempelajari bahan baharu.

Betapa dalam dan asas perkara yang saya baca, sudah tentu, saya tidak dapat memahami pada usia 15 tahun. Tetapi saya cuba bersungguh-sungguh untuk menyelesaikan setiap latihan. Pernah juga saya berjaya menyelesaikan masalah dengan betul dengan penarafan kesukaran 25 atau 30. Ia adalah bab aruhan matematik. Walaupun saya tidak menyukai matematik sekolah dan tidak memahaminya dengan baik, saya telah mengatasi tikar itu. Analisis Knuth - Saya duduk berjam-jam.
Seterusnya, dalam bab kedua terdapat struktur data. Imej dan gambar senarai terpaut, pokok binari, tindanan dan barisan ini masih ada di depan mata saya. Dalam kerjaya saya selama 12 tahun dalam pembangunan komersial, saya telah menggunakan kebanyakan bahasa tujuan umum.
Ini ialah C/C++, C#, Java, Python, JavaScript, Delphi. Dan tidak kira apa bahasa itu dipanggil, perpustakaan standardnya mengandungi struktur data dan algoritma yang diterangkan oleh Donald Knuth dalam buku tiga jilidnya. Oleh itu, mempelajari sesuatu yang baru tidak mengambil banyak masa.

Jilid pertama dimakan dengan agak cepat. Saya menulis semula algoritma yang diberikan dalam buku Knuth ke dalam bahasa C. Ia tidak selalu berjaya, tetapi semakin saya berlatih, semakin jelas kejelasan. Tidak ada kekurangan semangat. Setelah selesai dengan jilid pertama, saya tanpa teragak-agak berlari untuk membeli yang kedua dan ketiga. Saya mengetepikan yang kedua buat masa ini, tetapi saya mengambil yang ketiga (Isih dan Cari) dengan teliti.
Saya masih ingat bagaimana saya mengisi keseluruhan buku nota, "mentafsir" pengisihan dan algoritma carian. Sama seperti struktur data, carian binari dan isihan pantas divisualisasikan dalam otak saya pada kelajuan kilat, mengingati bagaimana ia kelihatan secara skematik dalam jilid ketiga Knuth.
Cambuk itu dibaca di mana-mana. Dan walaupun saya pergi ke laut, tanpa PC berdekatan, saya masih menulis algoritma dalam buku nota dan menjalankan urutan nombor melaluinya. Saya masih ingat betapa kesakitan yang saya perlukan untuk menguasai heapsort, tetapi ia berbaloi.

Buku seterusnya yang mempunyai pengaruh yang kuat kepada saya ialah "Buku Naga." Ia juga "Penyusun: Prinsip, Teknologi, Alat" - A. Aho, R. Seti. Dia didahului oleh Herbert Schiltd, dengan tugas lanjutan dalam C++. Di sinilah titik-titik berkumpul.
Terima kasih kepada Schildt, saya belajar menulis penghurai dan penterjemah bahasa. Dan kemudian Book of the Dragon mendorong saya untuk menulis pengkompil C++ saya sendiri.

Kerjaya pengaturcaraan. Bab 2. Sekolah atau pendidikan diri
Buku Naga

Pada masa itu, saya telah diberikan sambungan Internet pengisar modem, dan saya menghabiskan banyak masa di tapak paling popular untuk pengaturcara - rsdn.ru. C++ mendominasi di sana dan setiap pro boleh menjawab soalan yang tidak dapat saya tangani. Ia menyakitkan saya, dan saya faham
bahawa saya jauh dari lelaki berjanggut ini, jadi saya perlu mengkaji bahagian dalam kelebihan "Dari dan Kepada". Motivasi ini membawa saya ke projek serius pertama saya - penyusun piawaian C++ 1998 saya sendiri. Anda boleh mendapatkan sejarah dan sumber yang lebih terperinci dalam siaran ini habr.com/ms/post/322656.

Sekolah atau pendidikan diri

Tetapi mari kita kembali kepada realiti di luar IDE. Walaupun, pada masa itu, saya semakin menjauh dari kehidupan sebenar dan menyelami alam maya, namun usia saya dan norma yang diterima umum memaksa saya untuk pergi ke kolej. Ia adalah penyeksaan sebenar. Saya langsung tidak tahu apa yang saya lakukan di pertubuhan ini dan mengapa saya mendengar maklumat ini. Saya mempunyai keutamaan yang berbeza di kepala saya. Belajar Visual Studio 6.0, mencuba dengan WinApi dan Delphi 6.
Tapak yang indah, firststeps.ru, yang membolehkan saya bergembira pada setiap langkah yang saya ambil, walaupun saya tidak memahami gambaran keseluruhannya. Contohnya, dalam teknologi yang sama MFC atau ActiveX.
Bagaimana dengan kolej? Ia adalah satu pembaziran masa. Secara umumnya, jika kita menyentuh topik pengajian, saya belajar dengan teruk. Sehingga gred 6 saya adalah pelajar yang cemerlang, dan kemudian saya mendapat gred C, dan pada gred 8-9, saya sering melangkau kelas, yang mana saya menerima tali pinggang ilusi daripada ibu bapa saya.
Oleh itu, apabila saya datang ke kolej, terdapat juga sedikit semangat.
- Di manakah pengaturcaraan? Saya bertanya kepada diri sendiri satu soalan. Tetapi dia tidak berada di sana pada separuh pertama tahun ini. Tetapi terdapat sains komputer dengan MS-DOS dan Office, serta mata pelajaran pendidikan am.

Selain itu, saya mempunyai personaliti introvert dan sangat sederhana. Krew motley baharu ini jelas tidak menimbulkan keyakinan. Dan ia adalah bersama. Oleh itu, pelbagai jenis ejekan tidak lama datang. Saya menahannya untuk masa yang lama, sehingga saya tidak tahan dan menumbuk salah seorang pesalah di muka tepat di dalam kelas. Ya, jadi dia terbang ke mejanya. Terima kasih kepada ayah saya - dia mengajar saya untuk melawan sejak kecil, dan jika saya benar-benar mahu, saya boleh menggunakan kekerasan fizikal. Tetapi ini berlaku sangat jarang; lebih kerap saya mengalami ejekan, menunggu takat didih maksimum.
By the way, pesalah, sangat terkejut dengan apa yang berlaku, tetapi masih merasakan keunggulannya, mencabar saya untuk melawan balas. Sudah berada di tanah kosong di belakang institusi pendidikan.
Ini bukan lambaian penumbuk kanak-kanak, seperti yang berlaku di sekolah. Terdapat makhach yang mulia dengan hidung patah dan banyak darah. Lelaki itu juga bukan seorang yang pemalu dan mahir menyampaikan cangkuk dan pukulan atas. Semua orang masih hidup, dan sejak itu tiada siapa yang membuli saya lagi.
di "kolej untuk pengaturcara" ini. Saya tidak lama lagi kehilangan keinginan untuk pergi ke sana sepenuhnya. Oleh itu, saya berhenti pergi ke sana, dan tiada ancaman daripada ibu bapa saya memberi kesan kepada saya. Dengan satu keajaiban, masa tinggal saya di kolej dikira untuk gred ke-10 sekolah, dan saya mempunyai hak untuk pergi ke kelas ke-11.

Semuanya akan baik-baik saja, tetapi gred 11 ternyata tidak jauh lebih baik daripada kolej. Saya kembali ke sekolah asal saya, bertemu dengan beberapa lelaki yang saya kenali yang telah saya belajar sejak darjah satu, dan berharap semuanya akan baik-baik saja di kampung halaman saya. Terdapat hanya satu nuansa: Lelaki itu kelihatan lebih seperti penyamun dari siri TV daripada lelaki yang berkawan dengan saya di sekolah rendah. Semua orang berpusu-pusu ke gim untuk mendapatkan jisim otot. Saya menyerupai buluh. Kurus dan sangat kurus. Sudah tentu, rakan sekelas pembuli seperti itu boleh mengikat saya dengan sebelah tangan kiri.
Inilah yang mula berlaku dari semasa ke semasa. Di sini kemahiran berlawan saya tidak lagi memberi kesan. Kategori berat sangat berbeza untuk saya dan budak lelaki lain dalam kelas asal saya yang dahulu. Juga, keanehan pemikiran saya membuatkan diri mereka terasa.

Tanpa membiarkan fikiran saya melayang, saya juga meninggalkan sekolah. Tempat yang saya rasa selesa ialah di hadapan monitor komputer, dengan pintu bilik saya tertutup. Ia masuk akal dan secara intuitif saya rasa saya melakukan perkara yang betul. Dan sekolah ini adalah aktiviti yang sia-sia, malah untuk menahan ejekan ini, yang setiap hari menjadi lebih canggih ... Itu sahaja, saya sudah cukup.
Selepas satu lagi konflik dalam kelas, dengan saya dalam peranan utama, saya meninggalkan sekolah dan tidak pernah pergi ke sana lagi.
Selama kira-kira 3 bulan saya duduk di rumah, menghabiskan masa lapang saya belajar C++/WinAPI/MFC dan rsdn.ru.
Akhirnya, pengarah sekolah tidak tahan dan memanggil pulang.
- "Denis, adakah anda berfikir untuk belajar? Atau adakah anda akan pergi? buat keputusan. Tiada siapa yang akan meninggalkan awak dalam keterbatasan.” - kata pengarah
"Saya akan pergi," jawab saya yakin.

Dan sekali lagi, cerita yang sama. Saya mempunyai baki setengah tahun lagi untuk menamatkan pengajian sebelum tamat sekolah. Jangan tinggalkan saya tanpa kerak. Ibu bapa saya menyerah kepada saya dan menyuruh saya pergi berunding dengan pengarah sendiri. Saya datang kepada pengetua sekolah. Dia menjerit kepada saya untuk menanggalkan topi saya apabila saya masuk. Kemudian dia dengan tegas bertanya, "Apa yang harus saya lakukan dengan awak?" Terus terang, saya sendiri tidak tahu apa yang perlu dilakukan. Saya cukup gembira dengan keadaan semasa. Akhirnya dia mengambil lantai:
- "Kalau begitu mari kita lakukan ini. Saya akan membuat perjanjian dengan pengarah sekolah petang kita dan awak akan pergi ke sana."
- "Ya"

Dan sekolah petang adalah syurga sebenar untuk gaya bebas seperti saya. Pergi jika anda mahu, atau jangan pergi. Terdapat 45 orang dalam kelas, yang mana hanya 6-7 orang yang hadir untuk kelas. Saya tidak pasti bahawa semua orang dalam senarai itu masih hidup dan juga bebas. Kerana hanya di hadapan saya rakan sekelas mencuri motosikal orang lain. Tetapi fakta itu tetap menjadi fakta. Saya boleh meningkatkan kemahiran pengaturcaraan saya tanpa had, dan pergi ke sekolah apabila saya benar-benar memerlukannya. Saya akhirnya menamatkannya dan lulus peperiksaan akhir saya. Mereka tidak menuntut banyak, dan kami juga mengadakan majlis graduasi. Pengijazahan itu sendiri adalah dongeng yang berasingan. Saya masih ingat bahawa penyamun tempatan dan rakan sekelas mengambil jam tangan saya. Dan sebaik sahaja saya mendengar nama keluarga saya, semasa penyampaian sijil, saya bergegas untuk mendapatkan dokumen itu dan terbang keluar dari sekolah seperti peluru, supaya tidak menghadapi masalah lagi.

Musim panas telah mendahului. Dengan Donald Knuth di bawah lengannya di pantai, laut, matahari dan keputusan yang menentukan untuk menulis projek besarnya sendiri (penyusun).
Perlu diteruskan ...

Sumber: www.habr.com

Tambah komen