Programlama kariyeri. Bölüm 2. Okul veya kendi kendine eğitim

Hikayenin devamı "Programcı Kariyeri".

Yıl 2001'di. En havalı işletim sisteminin piyasaya sürüldüğü yıl - Windows XP. Rsdn.ru ne zaman ortaya çıktı? C# ve .NET Framework'ün doğum yılı. Milenyumun ilk yılı. Ve yeni donanımın gücünün katlanarak arttığı bir yıl: Pentium IV, 256 mb ram.

9. sınıfı bitirdikten ve programlamaya olan tükenmez heyecanımı gördükten sonra ailem beni Programlama bölümü için üniversiteye göndermeye karar verdi. Böylesinin daha iyi olacağına ve bana orada eğitim vereceklerine inanıyorlardı. Bu arada, üniversite kelimesi bir sanayi kentinin eteklerinde bulunan bu kuruma pek yakışmıyordu. Cephesine moda olan “kolej” etiketi asmayan diğer teknik okullardan hiçbir farkı olmayan sıradan bir teknik okuldu.
Kuyu. Annemle babama karşı çıkmadım ve kararlarına itiraz etmedim. Her halükarda, kendi kendine eğitimle meşguldüm ve bu yeni yerde bana biraz ek bilgi vereceklerini düşündüm.


O yaz üniversiteye gitmeden önce dergide yayınlanan tüm olası teknolojileri derinlemesine incelemeye başladım. "Hacker". Parça parça okudum ve tekrar okudum. Özellikle gerçek hackerlarla yapılan röportajları ve onların tavsiyelerini çok beğendim.
Havalı bilgisayar korsanlarının çoğu Linux kullanıyordu. Ve Mazda (Windows) amatörler içindi. Dergiyi okuyan herkes, içindeki yazıların üslubunu hatırlar. Bu nedenle, kırılgan zihnimde iki fikir kendi arasında savaştı: Windows'u bırakmak ya da sakin olup tamamen Linux'a bağlı kalmak.
Hacker dergisinin her yeni sayısı bana diski biçimlendirmem ve Linux Red Hat 7 ya da Windows Me kurmam için yeni bir neden verdi. Elbette herhangi bir eğitim vektörüm yoktu ve dergilerde ya da korsan CD'lerde okuduklarımla "Hackerların Sırları" gibi şeyleri yaptım. İki işletim sisteminin paralel kurulumu da “Windows XP yani papağan - bu ev hanımları içindir” ruhuyla yeni bir doldurmanın ardından silindi. Ve eğer ciddi şeyler yapmak istiyorsanız gözleriniz kapalı olarak Linux konsolundan çalışmalısınız.” Elbette sistemleri hacklemek, ağın nasıl çalıştığını anlamak ve o zamanlar çok güçlü bir Anonymous olmak istiyordum.

Disk pişmanlık duymadan formatlandı ve üzerine Unix benzeri bir sistemin dağıtım kiti kuruldu. Evet evet. Bir keresinde konsoldan yalnızca FreeBSD 4.3 kullanan gerçek bir bilgisayar korsanıyla yapılan bir röportajı okudum. Aynı zamanda bankaların ve hükümet sistemlerinin hacklenmesinden de sorumluydu. Kafama yıldırım düştü ve 5 kez ana sistem olarak BSD OS kurdum. Sorun, kurulumdan sonra orada çıplak konsol dışında hiçbir şeyin olmamasıydı. Hatta ses. Ve KDE2'yi kurmak ve sesi açmak için tefle çok dans etmek ve birkaç yapılandırmayı düzeltmek gerekiyordu.

Programlama kariyeri. Bölüm 2. Okul veya kendi kendine eğitim
FreeBSD 4.3 dağıtımı en hacker işletim sistemidir

Edebiyat Hakkında

Bilgisayarım olur olmaz programlamayla ilgili kitaplar almaya başladım. İlki "Turbo Pascal 7.0" kılavuzuydu. Bu şaşırtıcı değil çünkü programlama derslerinden biraz Pascal biliyordum ve kendi başıma öğrenmeye devam edebilirdim. Sorun, Hackerların Pascal'da yazmamasıydı. O zamanlar Perl dili modaydı ya da daha havalı adamlar için C/C++ idi. En azından dergide öyle yazmışlar. Ve sonuna kadar okuduğum ilk kitap Kernighan ve Ritchie'nin yazdığı "C Programlama Dili" idi. Bu arada Linux ortamında okudum
ve kodu yazmak için gcc ve KDE'nin yerleşik düzenleyicisini kullandım.

Bu kitabın ardından UNIX Ansiklopedisi satın alındı. 3 kilo ağırlığındaydı ve A3 sayfalara basılmıştı.
Kitabın ön tarafında dirgenli bir şeytanın tam uzunlukta bir tasviri vardı ve o zaman Ukrayna'da 125 Grivnası'na mal oluyordu (bu, 25'de yaklaşık 2001 dolardı). Kitabı satın almak için bir okul arkadaşımdan borç aldım ve geri kalanını ailem ekledi. Daha sonra heyecanla Unix komutlarını, vim ve emacs editörünü, dosya sisteminin yapısını ve config dosyalarının içlerini incelemeye başladım. Ansiklopedinin neredeyse 700 sayfası tükendi ve ben de Kul-Hatzker olma hayalime bir adım daha yaklaştım.

Programlama kariyeri. Bölüm 2. Okul veya kendi kendine eğitim
UNIX Ansiklopedisi - Okuduğum ilk kitaplardan biri

Sevgili büyükannem ve büyükbabamın bana verdiği tüm parayı kitaplara harcadım. Bir sonraki kitap 21 Günde C++ idi. Başlık çok ilgi çekiciydi ve bu yüzden daha kaliteli diğer kitaplara bakmadım. Buna rağmen yaklaşık 3 hafta gibi bir sürede kitaptan tüm kaynaklar kopyalandı ve C++'da zaten bir şeyler anladım. Her ne kadar bu listelerde yazılanları muhtemelen daha fazla anlamadım. Ama ilerleme vardı.

Bana kariyerinizi en çok hangi kitabın etkilediğini sorarsanız tereddüt etmeden cevap verirdim: "Programlama Sanatı" - D. Knuth. Bu, beynin yeniden yapılandırılmasıydı. Bu kitabın elime nasıl geçtiğini size tam olarak anlatamam ama gelecekteki kariyerim üzerinde en derin etkiye sahipti.

Programlama kariyeri. Bölüm 2. Okul veya kendi kendine eğitim
Programlama Sanatı - mutlaka okumalısınız

Kitapları ağırlıklı olarak sadece pazar günleri açık olan radyo pazarından satın alırdım. Kahvaltıda birkaç on Grivnası daha biriktirdikten sonra, C++ ya da belki Perl üzerine yeni bir kitap almaya gittim. Seçim oldukça büyüktü ama bir akıl hocam yoktu, bu yüzden her şeyi çalıştım. Satıcıdan bana programlamayla ilgili bir şeyler önermesini istedim. Ve hatırladığım kadarıyla “Programlama Sanatı”nı raftan almıştı. Birinci Cilt". Kitabın zaten kullanılmış olduğu açıkça görülüyor. Kapağın köşeleri kıvrılmıştı ve arkasında büyük bir çizik vardı, tam da Bill Gates'in yorumunu bıraktığı yerde: "Bu kitabı okursanız bana özgeçmişinizi mutlaka göndermelisiniz" imzasını atmıştı. Gates'i dergilerden biliyordum ve tüm Hackerlar onu eleştirse de ona bir özgeçmiş göndermenin iyi olacağını düşündüm. Kitabın maliyeti 72 UAH. (15 $) ve yeni materyaller çalışmak için hızla tramvayla eve koştum.

Ne kadar derin ve temel şeyler okuduğumu elbette 15 yaşında anlayamadım. Ama her egzersizi özenle tamamlamaya çalıştım. Bir keresinde zorluk derecesi 25 veya 30 olan bir problemi doğru çözmeyi bile başardım. Bu, matematiksel tümevarımla ilgili bir bölümdü. Her ne kadar okul matematiğini sevmesem ve iyi kavrayamasam da, konuyu aşmıştım. Knuth'un analizi: Saatlerce oturdum.
Daha sonra ikinci bölümde veri yapıları vardı. Bağlantılı listelerin, ikili ağaçların, yığınların ve kuyrukların bu görüntüleri ve resimleri hala gözlerimin önünde. Ticari geliştirme alanındaki 12 yıllık kariyerim boyunca genel amaçlı dillerin çoğunu kullandım.
Bunlar C/C++, C#, Java, Python, JavaScript, Delphi'dir. Ve dilin adı ne olursa olsun, standart kütüphanesi Donald Knuth'un üç ciltlik kitabında anlattığı veri yapılarını ve algoritmaları içeriyordu. Bu nedenle yeni bir şey öğrenmek fazla zaman almaz.

İlk cilt oldukça hızlı bir şekilde tükendi. Knuth'un kitabında verilen algoritmaları C diline yeniden yazdım, her zaman işe yaramadı ama ne kadar çok pratik yaparsam o kadar netlik geldi. Coşku eksikliği yoktu. Birinci cildi bitirdikten sonra hiç tereddüt etmeden ikinci ve üçüncüyü almaya koştum. Şimdilik ikincisini bir kenara koydum ama üçüncüsünü (Sıralama ve Arama) iyice ele aldım.
Sıralama ve arama algoritmalarını “yorumlayarak” bir not defterinin tamamını nasıl doldurduğumu çok iyi hatırlıyorum. Tıpkı veri yapılarında olduğu gibi, ikili arama ve hızlı sıralama beynimde ışık hızıyla görselleşiyor ve Knuth'un üçüncü cildinde şematik olarak nasıl göründüklerini hatırlıyorum.
Kırbaç her yerde okundu. Ve yakınlarda bir bilgisayar olmadan denize gittiğimde bile, bir not defterine algoritmalar yazıyor ve bunların üzerinden sayı dizilerini çalıştırıyordum. Yığın sıralamada ustalaşmanın ne kadar acı çektiğini hâlâ hatırlıyorum ama buna değdi.

Beni derinden etkileyen bir sonraki kitap ise “Ejderhanın Kitabı” oldu. Aynı zamanda “Derleyiciler: İlkeler, Teknolojiler, Araçlar” - A. Aho, R. Seti. Ondan önce C++'da ileri düzey görevlere sahip Herbert Schiltd geldi. Noktaların birleştiği yer burası.
Schildt sayesinde ayrıştırıcılar ve dil tercümanları yazmayı öğrendim. Ve sonra Ejderhanın Kitabı beni kendi C++ derleyicimi yazmaya teşvik etti.

Programlama kariyeri. Bölüm 2. Okul veya kendi kendine eğitim
Ejderhanın Kitabı

O zamana kadar bana modemle çalışan bir İnternet bağlantısı verilmişti ve programcılar için en popüler site olan rsdn.ru'da çok zaman geçirdim. Burada C++ hakimdi ve her profesyonel benim çözemediğim soruları yanıtlayabiliyordu. Canımı acıttı ve anladım
Bu sakallı adamlardan uzağım, bu yüzden "Kimden ve Kime"nin avantajlarının içini araştırmam gerekiyor. Bu motivasyon beni ilk ciddi projeme, yani 1998 C++ standardını derleyen kendi derleyicime götürdü. Bu yazıda daha ayrıntılı tarih ve kaynakları bulabilirsiniz. habr.com/en/post/322656.

Okul veya kendi kendine eğitim

Ancak IDE dışındaki gerçekliğe dönelim. Her ne kadar o zamana kadar gerçek hayattan giderek uzaklaşıyor ve kendimi sanal hayata kaptırıyor olsam da, yaşım ve genel kabul görmüş normlar beni üniversiteye gitmeye zorladı. Gerçek bir işkenceydi. Bu kurumda ne yaptığım ve bu bilgileri neden dinlediğim hakkında hiçbir fikrim yoktu. Kafamda tamamen farklı önceliklerim vardı. Visual Studio 6.0'ı öğrenmek, WinApi ve Delphi 6 ile denemek.
Genel resmi anlamasam da attığım her adımda sevinmemi sağlayan harika bir site,firststeps.ru. Örneğin, aynı MFC veya ActiveX teknolojisinde.
Peki ya üniversite? Bu bir zaman kaybıydı. Genel olarak çalışma konusuna değinecek olursak, kötü çalıştım. 6. sınıfa kadar mükemmel bir öğrenciydim, sonra C notları aldım ve 8-9. sınıfa gelindiğinde ailemden hayali kemerler aldığım dersleri sık sık atlıyordum.
Bu nedenle üniversiteye geldiğimde de çok az heyecan vardı.
- Programlama nerede? Kendime bir soru sordum. Ancak yılın ilk yarısında orada değildi. Ancak genel eğitim konularının yanı sıra MS-DOS ve Office ile bilgisayar bilimi de vardı.

Üstelik içe dönük bir kişiliğe sahiptim ve çok mütevazıydım. Bu yeni rengarenk ekip açıkça güven uyandırmadı. Ve bu karşılıklıydı. Bu nedenle çeşitli türden alayların gelmesi uzun sürmedi. Buna uzun süre katlandım, ta ki dayanamayıp sınıfta suçlulardan birinin suratına yumruk atıncaya kadar. Evet, o da masasına doğru uçtu. Babam sayesinde çocukluğumdan beri bana dövüşmeyi öğretti ve eğer gerçekten istersem fiziksel güç kullanabilirdim. Ancak bu çok nadiren oldu; çoğu zaman maksimum kaynama noktasını bekleyerek alay konusu oldum.
Bu arada, olup bitenler karşısında çok şaşıran ama hâlâ üstünlüğünü hisseden suçlu, beni misilleme amaçlı bir kavgaya davet etti. Zaten eğitim kurumunun arkasındaki boş arsada.
Bu, okulda olduğu gibi çocukların yumruk sallaması değildi. Burunları kırık ve çok kanlı asil bir makhaç vardı. Adam aynı zamanda çekingen bir adam değildi ve ustalıkla kancalar ve aparkatlar yapıyordu. Herkes hayatta kaldı ve o zamandan beri artık kimse bana zorbalık yapmadı.
bu “programcılar kolejinde”. Yakında oraya gitme arzumu tamamen kaybettim. Bu nedenle oraya gitmeyi bıraktım ve ailemin hiçbir tehdidinin üzerimde hiçbir etkisi olmadı. Bir mucize eseri, üniversitede kaldığım süre okulun 10. sınıfına sayıldı ve 11. sınıfa gitme hakkım oldu.

Her şey yoluna girecekti ama 11. sınıfın üniversiteden pek de iyi olmadığı ortaya çıktı. Kendi okuluma döndüm, birinci sınıftan beri birlikte çalıştığım tanıdığım bazı çocuklarla tanıştım ve memleketimde her şeyin yolunda olacağını umdum. Tek bir nüans vardı: Adamlar, ilkokulda arkadaş olduğum çocuklardan çok, dizilerdeki haydutlara benziyorlardı. Kas kütlesi kazanmak için herkes spor salonuna akın etti. Bambuya benziyordum. Uzun boylu ve çok ince. Elbette bu kadar zorba bir sınıf arkadaşım beni sol elimle bağlayabilir.
Zamanla bu olmaya başladı. Burada dövüş becerilerimin artık hiçbir etkisi kalmadı. Ağırlık kategorileri benim ve bir zamanlar ana sınıfımdaki diğer çocuklar için çok farklıydı. Ayrıca düşüncemin tuhaflıkları da kendini hissettirdi.

Düşüncelerimin dağılmasına izin vermeden ben de okuldan ayrıldım. Kendimi rahat hissettiğim yer bilgisayar monitörünün önüydü ve odamın kapısı kapalıydı. Mantıklıydı ve sezgisel olarak doğru şeyi yaptığımı hissettim. Ve bu okul işe yaramaz bir faaliyet, hatta her geçen gün daha da sofistike hale gelen bu sataşmalara katlanmak... İşte bu kadar, artık yeter.
Başrolde olduğum başka bir sınıf çatışmasının ardından okulu bıraktım ve bir daha oraya gitmedim.
Yaklaşık 3 ay boyunca evde oturup boş zamanlarımı C++/WinAPI/MFC ve rsdn.ru öğrenerek geçirdim.
Sonunda okul müdürü dayanamayıp evi aradı.
- “Denis, ders çalışmayı mı düşünüyorsun? Yoksa gidecek misin? Karar vermek. Kimse seni yarı yolda bırakmayacak." - dedi yönetmen
"Gideceğim." dedim kendimden emin bir şekilde.

Ve yine aynı hikaye. Okuldan mezun olmadan önce eğitimimi tamamlamam için yarım yılım kalmıştı. Beni kabuksuz bırakma. Ailem benden vazgeçti ve yönetmenle bizzat görüşmemi söyledi. Okul müdürünün yanına geldim. İçeri girdiğimde şapkamı çıkarmam için bana bağırdı. Daha sonra sert bir şekilde "Seninle ne yapmalıyım?" diye sordu. Açıkçası ben de ne yapacağımı bilmiyordum. Şu anki durumdan oldukça memnundum. Sonunda söz aldı:
- “O zaman şunu yapalım. Akşam okulumuzun müdürüyle bir anlaşma yapacağım ve sen de oraya gideceksin.”
- "Evet"

Ve akşam okulu benim gibi serbest stil tutkunları için gerçek bir cennetti. İstersen git, ya da gitme. Sınıfta 45 kişi vardı, bunlardan sadece 6-7'si derslere geliyordu. Listedeki herkesin hayatta ve özgür olduğundan emin değilim. Çünkü sınıf arkadaşlarım yalnızca benim huzurumda başka birinin motosikletini çaldılar. Ancak gerçek bir gerçek olarak kaldı. Programlama becerilerimi sınırsızca geliştirebiliyor ve gerçekten ihtiyacım olduğunda okula gidebiliyordum. Bitirdim ve final sınavlarımı geçtim. Fazla bir şey istemediler, hatta mezuniyet törenimizi bile yaptık. Mezuniyet başlı başına ayrı bir masaldır. Yerel haydutların ve sınıf arkadaşlarımın saatimi aldığını hatırlıyorum. Ve soyadımı duyar duymaz, sertifikaların takdimi sırasında, belgeyi almak için koştum ve bir daha sorun yaşamamak için okuldan kurşun gibi uçtum.

Yaz öndeydi. Donald Knuth kolunun altında kumsalda, denizde, güneşte ve kendi büyük projesini (derleyici) yazma konusundaki kader kararı.
Devam edecek ...

Kaynak: habr.com

Yorum ekle