Karier pemrograman. Bab 2. Sekolah atau pendidikan mandiri

Lanjutan ceritanya "Karier Pemrogram".

Saat itu tahun 2001. Tahun di mana sistem operasi paling keren dirilis adalah Windows XP. Kapan rsdn.ru muncul? Tahun lahirnya C# dan .NET Framework. Tahun pertama milenium. Dan tahun pertumbuhan eksponensial dalam kekuatan perangkat keras baru: Pentium IV, ram 256 mb.

Setelah menyelesaikan kelas 9 dan melihat semangat saya yang tiada habisnya terhadap pemrograman, orang tua saya memutuskan untuk memindahkan saya ke perguruan tinggi untuk mengambil jurusan Pemrograman. Mereka percaya bahwa cara ini akan lebih baik dan mereka akan mengajari saya di sana. Omong-omong, kata perguruan tinggi tidak cocok untuk institusi yang terletak di pinggiran kota industri ini. Itu adalah sekolah teknik biasa, tidak berbeda dengan sekolah teknik lain yang tidak menggantungkan label dengan kata modis “perguruan tinggi” di fasadnya.
Dengan baik. Saya tidak menentang orang tua saya dan tidak menentang keputusan mereka. Bagaimanapun, saya terlibat dalam pendidikan mandiri, dan saya berpikir bahwa di tempat baru ini mereka akan memberi saya pengetahuan tambahan.


Musim panas itu, sebelum kuliah, saya mulai mempelajari secara menyeluruh semua kemungkinan teknologi yang diterbitkan di majalah "Peretas". Saya membaca dan membacanya kembali berkeping-keping. Saya terutama menyukai wawancara dengan peretas sejati dan saran mereka.
Sebagian besar peretas keren menggunakan Linux. Dan Mazda (Windows) ditujukan untuk para lamer. Siapa pun yang pernah membaca majalah itu pasti ingat gaya postingan di dalamnya. Oleh karena itu, dalam pikiran saya yang rapuh, ada dua ide yang saling bertentangan - meninggalkan Windows atau menjadi keren dan tetap menggunakan Linux.
Setiap edisi baru majalah Hacker memberi saya alasan baru untuk memformat disk dan menginstal Linux Red Hat 7 atau Windows Me. Tentu saja, saya tidak memiliki vektor pelatihan apa pun, dan saya melakukan apa yang saya baca di majalah atau CD bajakan seperti “Rahasia Peretas”. Instalasi dua sistem operasi secara paralel juga terhapus, setelah ada isian baru dalam semangat “Windows XP alias parrot - ini untuk ibu rumah tangga. Dan jika Anda ingin melakukan hal-hal serius, Anda harus bekerja dari konsol Linux dengan mata tertutup.” Tentu saja, saya ingin meretas sistem, memahami cara kerja jaringan, dan menjadi Anonymous yang mahakuasa pada saat itu.

Disk diformat tanpa penyesalan, dan kit distribusi sistem mirip Unix diinstal di dalamnya. Ya ya. Saya pernah membaca wawancara dengan seorang hacker sejati yang hanya menggunakan FreeBSD 4.3 dari konsol. Pada saat yang sama, dia bertanggung jawab atas peretasan bank dan sistem pemerintahan. Itu adalah sambaran petir di kepala, dan saya menginstal OS BSD sebagai sistem utama sebanyak 5 kali. Masalahnya adalah setelah instalasi, tidak ada apa pun di sana kecuali konsol kosong. Bahkan terdengar. Dan untuk menginstal KDE2 dan menyalakan suaranya, Anda perlu banyak menari dengan rebana, dan memperbaiki beberapa konfigurasi.

Karier pemrograman. Bab 2. Sekolah atau pendidikan mandiri
Distribusi FreeBSD 4.3 adalah OS yang paling banyak di-hacker

Tentang Sastra

Segera setelah saya mendapatkan komputer, saya mulai membeli buku tentang pemrograman. Yang pertama adalah panduan untuk "Turbo Pascal 7.0". Hal ini tidak mengherankan, karena saya sudah mengetahui sedikit Pascal dari kursus pemrograman, dan saya dapat terus belajar sendiri. Masalahnya adalah Peretas tidak menulis dalam Pascal. Kemudian bahasa Perl sedang populer, atau, untuk yang lebih keren, C/C++. Setidaknya itulah yang mereka tulis di majalah tersebut. Dan buku pertama yang saya baca sampai akhir adalah “Bahasa Pemrograman C” - oleh Kernighan dan Ritchie. Ngomong-ngomong, saya belajar di lingkungan Linux
dan menggunakan gcc dan editor bawaan KDE untuk menulis kode.

Setelah buku ini, Ensiklopedia UNIX dibeli. Beratnya 3 kilogram dan dicetak pada halaman A3.
Di sisi depan buku terdapat gambar kartun setan dengan garpu rumput, dan harganya 125 hryvnia di Ukraina (sekitar $25 pada tahun 2001). Untuk membeli buku tersebut, saya meminjam uang dari teman sekolah, dan orang tua saya menambahkan sisanya. Kemudian, saya dengan antusias mulai mempelajari perintah Unix, editor vim dan emacs, struktur sistem file dan bagian dalam file konfigurasi. Hampir 700 halaman ensiklopedia ditelan dan saya selangkah lebih dekat dengan impian saya - menjadi seorang Kul-Hatzker.

Karier pemrograman. Bab 2. Sekolah atau pendidikan mandiri
Ensiklopedia UNIX - Salah satu buku pertama yang saya baca

Saya menghabiskan semua uang yang diberikan oleh kakek-nenek dan orang tua saya yang tercinta untuk membeli buku. Buku berikutnya adalah C++ dalam 21 Hari. Judulnya sangat menarik, itulah sebabnya saya tidak melihat buku lain yang kualitasnya lebih tinggi. Meskipun demikian, semua sumber disalin dari buku dalam waktu sekitar 3 minggu ini, dan saya sudah memahami sesuatu tentang C++. Meskipun saya mungkin tidak mengerti lagi apa yang tertulis di daftar ini. Tapi ada kemajuan.

Jika Anda bertanya kepada saya buku mana yang paling memengaruhi karier Anda, saya akan menjawab tanpa ragu - “The Art of Programming” - D. Knuth. Itu adalah perbaikan otak. Saya tidak dapat memberi tahu Anda secara pasti bagaimana buku ini sampai ke tangan saya, tetapi buku ini memiliki pengaruh paling besar terhadap karier saya di masa depan.

Karier pemrograman. Bab 2. Sekolah atau pendidikan mandiri
Seni Pemrograman - harus dibaca

Saya membeli buku terutama di pasar radio, yang hanya buka pada hari Minggu. Setelah menghemat beberapa puluh hryvnia lagi untuk sarapan, saya membeli buku baru tentang C++ atau mungkin Perl. Pilihannya cukup besar, tapi saya tidak punya mentor, jadi saya mempelajari semuanya. Saya meminta penjual untuk merekomendasikan saya sesuatu tentang pemrograman. Dan sejauh yang saya ingat, dia mengambil “The Art of Programming” dari rak. Jilid Pertama". Buku itu jelas sudah digunakan. Sudut sampulnya bengkok, dan ada goresan besar yang terlihat di bagian belakang, tepat di tempat Bill Gates meninggalkan ulasannya: “Jika Anda membaca buku ini, Anda harus mengirimkan resume Anda kepada saya,” yang ditandatangani olehnya. Saya tahu tentang Gates dari majalah, dan saya pikir akan lebih baik jika mengirimkan resume kepadanya, meskipun semua Peretas mengkritiknya. Buku itu berharga 72 UAH. ($15), dan saya segera bergegas pulang dengan trem untuk mempelajari materi baru.

Betapa dalam dan mendasarnya hal-hal yang saya baca, tentu saja tidak dapat saya pahami di usia 15 tahun. Namun saya berusaha tekun menyelesaikan setiap latihan. Saya bahkan pernah berhasil menyelesaikan soal dengan benar dengan tingkat kesulitan 25 atau 30. Itu adalah bab tentang induksi matematika. Meskipun aku tidak menyukai matematika sekolah dan tidak memahaminya dengan baik, aku sudah menguasainya. Analisis Knuth - Saya duduk berjam-jam.
Selanjutnya pada bab kedua terdapat struktur data. Gambar-gambar dan gambar-gambar daftar tertaut, pohon biner, tumpukan dan antrian masih ada di depan mata saya. Dalam 12 tahun karir saya di bidang pengembangan komersial, saya telah menggunakan sebagian besar bahasa tujuan umum.
Ini adalah C/C++, C#, Java, Python, JavaScript, Delphi. Dan apa pun sebutan bahasanya, perpustakaan standarnya berisi struktur data dan algoritme yang dijelaskan oleh Donald Knuth dalam buku tiga jilidnya. Oleh karena itu, mempelajari sesuatu yang baru tidak memakan banyak waktu.

Jilid pertama dilahap dengan cukup cepat. Saya menulis ulang algoritme yang diberikan dalam buku Knuth ke dalam bahasa C. Itu tidak selalu berhasil, tetapi semakin banyak saya berlatih, semakin jelas hasilnya. Semangatnya tidak pernah berkurang. Setelah menyelesaikan jilid pertama, saya tanpa ragu berlari untuk membeli jilid kedua dan ketiga. Saya mengesampingkan yang kedua untuk saat ini, tetapi saya mengambil yang ketiga (Penyortiran dan Pencarian) secara menyeluruh.
Saya ingat betul bagaimana saya mengisi seluruh buku catatan, "menafsirkan" algoritma penyortiran dan pencarian. Sama seperti struktur data, pencarian biner dan quicksort divisualisasikan di otak saya secepat kilat, mengingat tampilan skematisnya di volume ketiga Knuth.
Cambuk itu terbaca dimana-mana. Dan bahkan ketika saya pergi ke laut, tanpa PC di dekatnya, saya masih menuliskan algoritma di buku catatan dan menjalankan urutan angka melalui algoritma tersebut. Saya masih ingat betapa susahnya saya untuk menguasai heapsort, tapi itu sepadan.

Buku berikutnya yang mempunyai pengaruh kuat pada saya adalah “Kitab Naga”. Ini juga merupakan “Penyusun: Prinsip, Teknologi, Alat” - A. Aho, R. Seti. Dia didahului oleh Herbert Schiltd, dengan tugas-tugas lanjutan di C++. Di sinilah titik-titik itu bersatu.
Berkat Schildt, saya belajar menulis parser dan penerjemah bahasa. Dan kemudian Kitab Naga mendorong saya untuk menulis kompiler C++ saya sendiri.

Karier pemrograman. Bab 2. Sekolah atau pendidikan mandiri
Kitab Naga

Pada saat itu, saya telah diberi koneksi Internet yang berfungsi sebagai modem, dan saya menghabiskan banyak waktu di situs paling populer untuk programmer - rsdn.ru. C++ mendominasi di sana dan setiap profesional dapat menjawab pertanyaan yang tidak dapat saya tangani. Itu menyakitkan saya, dan saya mengerti
bahwa saya jauh dari orang-orang berjanggut ini, jadi saya perlu mempelajari seluk-beluk kelebihan “Dari dan Ke”. Motivasi ini membawa saya ke proyek serius pertama saya - kompiler standar C++ 1998 saya sendiri. Anda dapat menemukan sejarah dan sumber lebih rinci di posting ini habr.com/en/post/322656.

Sekolah atau pendidikan mandiri

Tapi mari kita kembali ke kenyataan di luar IDE. Meskipun pada saat itu saya semakin menjauh dari kehidupan nyata dan membenamkan diri dalam dunia maya, namun usia dan norma-norma yang berlaku umum memaksa saya untuk melanjutkan kuliah. Itu sungguh penyiksaan. Saya sama sekali tidak tahu apa yang saya lakukan di tempat ini dan mengapa saya mendengarkan informasi ini. Saya memiliki prioritas yang sangat berbeda di kepala saya. Belajar Visual Studio 6.0, mencoba dengan WinApi dan Delphi 6.
Situs yang luar biasa, firststeps.ru, yang membuat saya bersukacita di setiap langkah yang saya ambil, meskipun saya tidak memahami gambaran keseluruhannya. Misalnya pada teknologi yang sama MFC atau ActiveX.
Bagaimana dengan kuliah? Itu hanya membuang-buang waktu. Secara umum, jika kita menyentuh topik studi, saya belajar dengan buruk. Sampai kelas 6 saya adalah siswa yang berprestasi, kemudian saya mendapat nilai C, dan pada kelas 8-9 saya sering membolos, dan saya menerima sabuk ilusi dari orang tua saya.
Oleh karena itu, ketika saya masuk perguruan tinggi, antusiasmenya juga sedikit.
- Di mana programnya? Saya bertanya pada diri sendiri sebuah pertanyaan. Tapi dia tidak ada di sana pada paruh pertama tahun ini. Tapi ada ilmu komputer dengan MS-DOS dan Office, serta mata pelajaran pendidikan umum.

Selain itu, saya memiliki kepribadian yang tertutup dan sangat rendah hati. Awak beraneka ragam baru ini jelas tidak membangkitkan rasa percaya diri. Dan itu saling menguntungkan. Oleh karena itu, berbagai macam ejekan tidak lama lagi akan datang. Saya menahannya dalam waktu yang lama, sampai saya tidak tahan dan meninju wajah salah satu pelanggar tepat di kelas. Ya, jadi dia terbang ke mejanya. Terima kasih kepada ayah saya - dia mengajari saya bertarung sejak kecil, dan jika saya benar-benar menginginkannya, saya dapat menggunakan kekuatan fisik. Namun hal ini sangat jarang terjadi, lebih sering saya menahan ejekan, menunggu titik didih maksimal.
Ngomong-ngomong, pelaku, sangat terkejut dengan apa yang terjadi, tapi masih merasakan superioritasnya, menantangku untuk melakukan pertarungan balasan. Sudah di lahan kosong di belakang lembaga pendidikan.
Ini bukan lambaian tangan anak-anak, seperti yang terjadi di sekolah. Ada seorang makhach bangsawan dengan hidung patah dan banyak darah. Pria ini juga bukanlah seorang pria yang penakut dan dengan terampil melancarkan pukulan hook dan pukulan atas. Semua orang tetap hidup, dan sejak itu tidak ada lagi yang menindas saya.
di “perguruan tinggi untuk pemrogram” ini. Saya segera kehilangan keinginan untuk pergi ke sana sepenuhnya. Oleh karena itu, saya berhenti pergi ke sana, dan tidak ada ancaman dari orang tua saya yang berdampak apa pun terhadap saya. Secara ajaib, masa kuliah saya dihitung sebagai kelas 10 sekolah, dan saya berhak melanjutkan ke kelas 11.

Semuanya akan baik-baik saja, tetapi kelas 11 ternyata tidak lebih baik dari kuliah. Saya kembali ke sekolah asal saya, bertemu dengan beberapa orang yang saya kenal yang telah belajar dengan saya sejak kelas satu, dan berharap semuanya akan baik-baik saja di kampung halaman saya. Hanya ada satu perbedaan: Laki-laki itu lebih mirip bandit dari serial TV dibandingkan laki-laki yang berteman dengan saya di sekolah dasar. Semua orang berbondong-bondong ke gym untuk menambah massa otot. Saya mirip bambu. Kurus dan sangat kurus. Tentu saja, teman sekelas pengganggu seperti itu bisa mengikatku dengan satu tangan kiri.
Inilah yang mulai terjadi seiring berjalannya waktu. Di sini kemampuan bertarungku tidak lagi berpengaruh. Kategori berat badan sangat berbeda bagi saya dan anak laki-laki lain di kelas asal saya. Juga, kekhasan pemikiran saya membuat dirinya terasa.

Tanpa membiarkan pikiranku mengembara, aku pun meninggalkan sekolah. Di mana saya merasa nyaman berada di depan monitor komputer, dengan pintu kamar saya tertutup. Itu masuk akal dan secara intuitif saya merasa melakukan hal yang benar. Dan sekolah ini adalah kegiatan yang tidak berguna, dan bahkan menanggung ejekan ini, yang setiap hari menjadi semakin canggih... Itu saja, aku sudah muak.
Setelah konflik lain di kelas, dengan saya sebagai pemeran utama, saya meninggalkan sekolah dan tidak pernah bersekolah lagi.
Selama kurang lebih 3 bulan saya duduk di rumah, menghabiskan waktu luang saya dengan mempelajari C++/WinAPI/MFC dan rsdn.ru.
Pada akhirnya, direktur sekolah tidak tahan dan menelepon ke rumah.
- “Denis, apakah kamu berpikir untuk belajar? Atau kamu akan pergi? Memutuskan. Tidak ada yang akan meninggalkanmu dalam ketidakpastian.” - kata sutradara
“Aku akan pergi,” jawabku percaya diri.

Dan lagi, cerita yang sama. Saya memiliki waktu setengah tahun lagi untuk menyelesaikan studi saya sebelum lulus sekolah. Jangan tinggalkan aku tanpa kerak. Orang tuaku menyerah dan menyuruhku untuk bernegosiasi dengan direktur sendiri. Saya datang ke kepala sekolah. Dia berteriak padaku untuk melepas topiku ketika aku masuk. Lalu dia dengan tegas bertanya, “Apa yang harus saya lakukan denganmu?” Sejujurnya, saya sendiri tidak tahu harus berbuat apa. Saya cukup senang dengan keadaan saat ini. Akhirnya dia angkat bicara:
- “Kalau begitu ayo lakukan ini. Saya akan membuat perjanjian dengan direktur sekolah malam kita dan Anda akan pergi ke sana.”
- "Ya"

Dan sekolah malam adalah surga nyata bagi para freestyler seperti saya. Pergilah jika kamu mau, atau jangan pergi. Ada 45 orang di kelas, dan hanya 6-7 orang yang hadir di kelas. Saya tidak yakin semua orang dalam daftar itu masih hidup dan juga bebas. Karena hanya di hadapanku teman sekelasku mencuri sepeda motor orang lain. Namun faktanya tetap menjadi fakta. Saya dapat meningkatkan keterampilan pemrograman saya tanpa batas, dan pergi ke sekolah ketika saya benar-benar membutuhkannya. Saya akhirnya menyelesaikannya dan lulus ujian akhir saya. Mereka tidak menuntut banyak, dan kami bahkan mengadakan upacara wisuda. Wisuda sendiri merupakan dongeng tersendiri. Saya ingat bandit lokal dan teman sekelas mengambil jam tangan saya. Dan begitu saya mendengar nama belakang saya, saat penyerahan sertifikat, saya bergegas mengambil dokumen tersebut dan terbang keluar sekolah seperti peluru, agar tidak mendapat masalah lagi.

Musim panas sudah dekat. Dengan Donald Knuth di bawah lengannya di pantai, laut, matahari, dan keputusan penting untuk menulis proyek besarnya sendiri (kompiler).
Untuk dilanjutkan ...

Sumber: www.habr.com

Tambah komentar