- 8.1. Bir üstat olduğumu nasıl söylerim?
-
Kendinize aşağıdaki üç soruyu sorun:
-
Akıcı bir biçimde kod konuşabiliyor musunuz?
-
Kimliğinizi üstat toplumunun değerleri ve hedefleri ile mi tanımlıyorsunuz?
-
Üstat toplumunun iyi-bilinen bir üyesi size üstat diye hitap etti mi?
Eğer bu soruların üçüne birden evet cevabını verebiliyorsanız, siz bir üstatsınız. Sadece ikisi yeterli değildir.
İlk test beceri ile ilgilidir. Bu belgede daha önce bahsedilen minimum teknik becerilere sahipseniz muhtemelen bu testi geçersiniz. Eğer bir açık-kaynak geliştirme projesi tarafından kabul edilmiş önemli miktarda kodunuz varsa üstesinden geldiniz demektir.
İkinci test yaklaşım biçimiyle ilgilidir. Eğer
Üstat Felsefesi'nin beş prensibi size aşikar geliyor, bir romandan çok hayat biçiminizi tarif ediyorsa yolun yarısını geçtiniz demektir. Kalan diğer yarısı ise üstat topluluğunun uzun vadeli projelerini tanımlama derecenizdir.
Bu projelerin ayırt edici ama tamamlanmamış bir listesi: Linux'un ilerlemesi ve yayılması sizin için önemli mi? Yazılım özgürlüğü hakkında tutkulu musunuz? Tekellere düşman mısınız? Bilgisayarların dünyayı daha zengin ve insancıl hale getirmenin araçları olduğuna inanıyor musunuz?
Burada bir uyarı yapayım. Üstat topluluğunun bazı özel, temelde koruyucu politik ilgi alanları vardır - bunların ikisi ifade özgürlüğü hakkını savunmak ve açık-kaynağı yasadışı yapacak olan "entellektüel mülkiyet" hakimiyetinden kendini korumaktır. Bu uzun vadeli projelerin bazıları Elektronik Serhat Vakfı gibi kişisel özgürlük örgütlenmeleridir ve yolun kalan yarısı bu örgütlenmeleri desteklemeyi kapsamaktadır. Fakat bunun ötesinde üstatların çoğu üstat felsefesini kesin bir politik programla sistematik hale getirme çalışmalarına şüpheyle yaklaşırlar. Bu tür çalışmaların ayrılıkçı ve meşgul edici olduğu tecrübelerle görülmüştür. Eğer birisi sizi üstat felsefesi adına başkente yürüyüşe çağırıyorsa konunun özünü kaçırıyor demektir. Doğru tepki "Konuşmayı bırak, kodu göster" olabilir.
Üçüncü testin kendisi hakkında ustalık isteyen özyinelemeli bir parçası vardır.
Hacker Nedir? bölümünde üstat olmanın kısmen belirli bir alt kültüre veya ortak geçmişi paylaşan bir sosyal gruba ait olmakla bağlantılı olduğuna dikkat ettim. Çok önceleri üstatlar grubu birbirine bugünkünden daha az bağlı ve kendilerinin bu kadar farkında olmayan bir gruptu. Fakat sosyal-ağ konumunun önemi Internet'in üstat alt kültürünün çekirdek grubu arasındaki bağlantıları sağlayarak geliştirmeyi ve bakımı kolaylaştırmasıyla son otuz yılda arttı. Bu değişimin basit bir göstergesi artık kendi T-shirt'lerimizin olmasıdır.
Üstat kültürü gibi ayırt edici niteliği "görünmez ortaklar" olan ağları inceleyen sosyologlar bu tür ağların karakteristiklerinden birinin ağa yeni üye girişini onaylayan sosyal otoriteye sahip çekirdek grubuna dahil kapı görevlileri olduğunu gözlemlemişlerdir. Üstat kültürü yani "görünmez ortak" gevşek ve gayri-resmi olduğundan kapı görevlisinin rolü de gayri-resmidir. Fakat her üstatın kapı görevlisi olmadığını bütün üstatlar bilirler. Kapı görevlileri üstat ünvanını vermeye başlamadan önce belli bir kıdeme ve başarıya sahip olmalıdırlar. Niceliğini açıklamak ne kadar zor olsa da tüm üstatlar onları gördüklerinde tanırlar.
- 8.2. Bana nasıl kod kotarılacağını öğretecek misiniz?
-
Bu belgenin ilk yayımından beri, günler boyunca, insanlardan "bana kod kotarmak hakkındaki her şeyi öğret" şeklinde e-postalar aldım. Maalesef bunu yapacak yeterli zamanım ve enerjim yok. Kendi projelerim ve açık kaynak yazılımın bir savunucusu olarak yaptığım seyahatler zamanımın %110 unu almaktadır.
Zamanım olsa bile, üstatlık kendi kendinize kolayca öğrenebileceğiniz bir felsefe ve yetenektir. Size yardım etmek isteyen gerçek üstatlardan, bildikleri her şeyi size doğrudan vermelerini istediğinizde, size saygı duymadıklarını göreceksiniz.
İlk önce az da olsa bir şeyler öğrenin. Çabaladığınızı ve kendi başınıza bir şeyler öğrenebildiğinizi gösterin. Daha sonra, özel sorularınız için üstatlara gidin.
Şayet bir üstatdan tavsiye almak için ona e-posta atacaksınız, öncelikle bilmeniz gereken iki önemli nokta vardır. Birincisi; biz üstatlar, yazım ve imlada özensiz ve tembel davranan kişilerin, üstat olmak fikrinde de özensiz ve tembel davranacaklarını düşünmekteyiz. Bu nedenle imlaya, noktalama işaretlerine, söz dizimlerine ve dilbilgisi kurallarına çok dikkat edin. Aksi taktirde e-postanız önemsenmeyebilir. İkinci olarak; e-postayı gönderdiğiniz adres dışında her hangi bir başka adrese cevap vermemizi istemeye cüret etmeyin. Bu tür insanların çalıntı hesapları kullandıkları düşünürüz ve bizim hırsızlar ile işimiz olmaz.
- 8.3.
Öyleyse nasıl başlamalıyım?
-
Başlamak için muhtemel en iyi yol, bir Linux kullanıcıları grubu toplantısına gitmek olabilir. Bu tür grupları
LDP (Linux Documentation Project - Linux Belgeleme Projesi) adresinde bulabilirsiniz. Bir üniversite veya kolej ile bağlantılı, kendinize yakın bir grup bulabilirsiniz. İstediğiniz taktirde, bu gruptakiler size bir Linux dağıtımı vereceklerdir ve kurulumu için de size yardımcı olacaklardır.
- 8.4.
Ne zaman başlamalıyım? Öğrenmek için çok mu geç kaldım?
-
Başlamak için kendinizi hazır hissettiğiniz her yaş, başlamak için en uygun olan yaştır. Pek çok insan 15-20 yaşlarında bu işe başlamaktadır fakat her iki uçta da istisnalar mevcuttur.
- 8.5.
Kod kotarmayı öğrenmek için ne kadar bir süre gerekli?
-
Bu sizin ne kadar yetenekli olduğunuza ve ne kadar çok çalıştığınıza bağlıdır. Pek çok insan 18 ay ila 2 yıl arasında yeterli bir seviyeye gelmektedir. Bu işin burada son bulduğunu düşünmeyin. Eğer iyi bir üstat olduysanız, hayatınızın geri kalan kısmını öğrenmek ve araçlarınızı daha iyi yapmak için harcayacaksınız demektir.
- 8.6.
Visual Basic veya C# dilleri başlamak için uygun mudur?
-
Bu soruyu sorduğunuza göre, kod kotarmaya Windows platformu altında başlayacaksınız demektir. Bu başlı başına kötü bir fikir. Windows platformu altında kod kotarmayı öğrenmek ile zırh giyerek dans etmeyi karşılaştırdığım zaman dalga geçmiyordum. Oraya gitmeyin. Orası son derece çirkindir ve çirkin olmaktan asla vazgeçmeyecektir.
Visual Basic dilinin temel sorunu taşınabilir olmamasıdır. Visual Basic'in bir açık kaynak kodlu gerçeklenimleri bulunsa da uygulanabilir ECMA standartlarının çok küçük bir kısmı bunlar tarafından desteklenmektedir. Windows altındaki kitaplıkların çoğu sadece Microsoft tarafından desteklenmektedir. Şayet bu konuda yeterince dikkatli davranmazsanız, sadece Microsoft'un desteklemeyi istediği platformlara bağımlı kalırsınız. Bu batağa saplanmamak için, kod kotarmaya yeni başlayan her hangi birinden daha dikkatli ve yetenekli olmak zorundasınız. Şayet bu işe Unix üzerinde başlarsanız, kullanabileceğiniz daha iyi kütüphanelere sahip çok daha iyi programlama dilleri (örneğin Python) mevcuttur.
Visual Basic özellikle rezalettir. Tıpkı diğer Basic programlama dillerinde olduğu gibi, oldukça kötü tasarlanmış ve size berbat programlama alışkanlıkları kazandıracak bir dildir. Ayrıntıları tanımlamamı istemeyin, bütün bir kitabı dolduracak kadar çoktur. Bunun yerine iyi tasarlanmış bir dil ögrenin.
Bu kötü alışkanlıklardan birisi, sadece tek bir satıcıya ve onun kitaplıkları ile geliştirme araçlarına bağımlı olmaktır. Genel olarak ifade etmek gerekirse; en az üç işletim sistemi dağıtıcısı tarafından ve/veya Linux ya da BSD'lerin her hangi birisi tarafından tamamen desteklenmeyen her hangi bir programlama dili zavallı ve yetersiz bir dildir. Üstatlığa başlamak için hiç uygun bir dil değildir.
- 8.7.
Bir sistemi kırmama yardım edecek misiniz ya da bana nasıl sistem kırılacağını gösterecek misiniz?
-
Hayır. Bu SSS'ı okuduktan sonra hala bu soruyu sorabilen kişi, yeterli zamanım olsa bile, eğitilemeyecek kadar aptal birisi demektir. Bu tür istekleri içeren e-postalar yok sayılacak veya kaba bir biçimde cevaplanacaktır.
- 8.8.
Başka birinin hesabının şifresini nasıl ele geçirebilirim?
-
Bu korsanlıktır. Gözüme görünme.
- 8.9.
Başka birisinin e-postasını nasıl kırabilirim/okuyabilirim/görüntüleyebilirim?
-
Bu korsanlıktır. Gözüme görünme.
- 8.10.
IRC' de kanal yöneticisi haklarını nasıl çalabilirim?
-
Bu korsanlıktır. Gözüme görünme.
- 8.11.
Korsan saldırısına uğradım. Daha sonraki saldırıları atlatmam için bana yardımcı olacak mısınız?
-
Hayır. Bu güne kadar bu soruyu bana soranlar hep Microsoft Windows kullananlar olmuştur. Windows sistemlerini olası saldırılardan koruyacak etkili bir savunma sistemi kurmak mümkün değildir. Kodlarda ve mimaride o kadar çok hata vardır ki; basitçe, bir Windows sistemininin güvenliğini sağlayamaya çalışmayı, su dolu bir botu kevgir ile boşaltmaya çalışmaya benzetebiliriz. Güvenilebilir tek korunma yöntemi; Linux'a veya güvenliği sağlayabilecek şekilde tasarlanmış bir işletim sistemine geçmektir.
- 8.12.
Windows yazılımımla ilgili sorunlarım var. Bana yardım edecek misiniz?
-
Evet. DOS ortama geç ve format c: yaz. Karşılaştığın bütün problemler birkaç dakika içinde yok olacaktır.
- 8.13.
Konuşacak gerçek üstatları nerede bulabilirim?
-
En iyi yol, çevrenizdeki bir Linux Kullanıcı Grubunun toplantılarına gitmektir.
LDP'nin sitesinde bu konu ile ilgili bağlar ve gruplar bulabilirsiniz.
(Daha önceleri IRC üzerinde gerçek hacker'lar bulamayacağınızı söylemiştim ama bu zamanla değişmekte. GIMP, Perl gibi gerçek hacker gruplarının IRC kanalları bulunmaktadır.)
- 8.14.
Kod kotarmak ile ilgili faydalı kitaplar tavsiye edebilir misiniz?
-
- 8.15.
Üstat olabilmek için matematikte iyi olmak zorunda mıyım?
-
Hayır. Üstatların ileri matematik ve aritmetik ile pek işleri olmaz. Özellikle, trigonometri, hesaplama veya analize ihtiyaç duymazlar (3-D bilgisayar grafikleri gibi istisnalar vardır). Mantık ve Boolean cebri bilmek iyidir. Sınırlı miktarda matematik temeli faydalı olabilir (cebir, sonlu-düzen teorileri, birleşimler ve grafik teorileri).
Daha fazla önemlisi: matematikçilerin yaptığı gibi mantıklı düşünebilmeli ve doğru muhakeme halkalarını takip edebilmelisiniz. Matematik konularının çoğunun içeriği işinize yaramayacak olsa da matematik için gerekli disipline ve zekaya ihtiyacınız olacak. Eğer zeka yönünden eksiğiniz varsa üstat olmanız için pek az ümit vardır; disiplin eksiğiniz varsa geliştirseniz iyi edersiniz.
Gerekenlere sahip olup olmadığınızı öğrenmenin iyi bir yolu bence Raymond Smullyan'ın Bu Kitabın Adı Nedir? isimli kitabını edinmenizdir. Smullyan'ın eğlenceli mantık bilmeceleri üstatlık ruhuna oldukça uygundur. Onları çözebilmek iyiye işarettir, çözmekten zevk almak daha da iyidir.
- 8.16.
İlk olarak hangi dili öğrenmeliyim?
-
Hala öğrenmemişseniz ilk olarak XHTML'yi (HTML'nin en son sürümüdür) öğrenin. Pek çok parlak yüzlü berbat HTML kitapları ve üzücü bir şekilde çok az miktarda iyi HTML kitapları bulunmaktadır. Bence en iyisi
HTML: The Definitive Guide.
Fakat HTML tam bir programlama dili değildir. Programlama için hazır olduğunuzda
Python ile başlamanızı öneririm. Pek çok insanın Perl dilini önerdiğini göreceksiniz ve Perl daha popülerdir. Fakat bence hem öğrenmesi daha zordur, hem de pek iyi düzenlenmemiş bir dildir.
C çok önemli bir dildir ama öğrenmesi hem Perl'den hem de Python'dan daha zordur. İlk olarak C öğrenmeye kalkışmayın.
Windows kullanıcıları sakın Visual Basic ile bu işi çözeceğinizi sanmayın. Size kötü alışkanlıklar öğretecektir. Windows dışına taşınabilir değildir. Uzak durun.
- 8.17.
Ne çeşit bir donanıma ihtiyacım var?
-
Kişisel bilgisayarlar bellek fukarası ve güçsüz makinalardı ve bu nedenle üstat olma sürecine yapay sınırlamalar konmuştu. Geçmişte bunlar doğru iken, Intel 486DX50 ve yukarısı makinalar uygulama geliştirmek, Internet ve X için yeterince güçlüdür ve bu günlerde piyasada bulabileceğiniz en küçük sabit disk sizin için yeterli olacaktır.
Makina seçmekteki en önemli nokta; donanımların Linux veya BSD'ler ile uyumlu olup olmadığıdır. Pek çok modern makinada bu sorun olmaz. Bu konudaki en problemli alan modemlerdir. Bazı makinalar sadece Windows için üretilmiş özel modemler taşırlar ve bu modemler Linux ile çalışmaz.
- 8.18.
Katkıda bulunmak istiyorum. Benim için üzerinde çalışabileceğim bir problem seçer misiniz?
-
Hayır. Çünkü sizin yetenek ve ilgi alanlarınızı bilmiyorum. Bu konuda kendi kendinizi motive etmelisiniz yoksa hiçbir şey ortaya koyamazsınız. Bu yolu seçen insanların pek çoğu başarısız olmuşlardır.
Şunu deneyin: bir kaç gün
freshmeat'te yayınlanan duyuruları izleyin. "
Ben bu işin içinde olmalıyım" dediğiniz bir proje görünce, ona katılın.
- 8.19.
Microsoft'dan nefret etmeli ve sürekli eleştirmeli miyim?
-
Hayır, yapmak zorunda değilsiniz. Microsoft iğrenç değildir ama Microsoft'tan çok önce üstatlar vardı ve Microsoft tarih olduktan sonra da olacaktır. Microsoft'dan nefret etmek için harcayacağınız enerjiyi, araçlarınızı sevmekle harcamak daha iyi olacaktır. İyi kodlar yazın. Böylece ruhunuzu (karmanızı) kirletmemiş olursunuz.
- 8.20.
Fakat açık kaynak yazılımları, programcıların hayatlarını kazanmalarını engellemeyecek mi?
-
Bu pek olası değil. Bugüne kadar açık kaynak yazılım endüstrisi, iş sahalarını yok etmekten ziyade pek çok yeni iş sahası açmıştır. Şayet bir programın ekonomik bir kazancı olur ise, program açık kaynak kodlu olsun ya da olmasın, programcı ücretini alacaktır. Ne kadar çok açık kaynak kodlu yazılım olursa olsun, insanların kişisel ve yeni ihtiyaçları her zaman olacaktır. Bu konu hakkında
Açık Kaynak sayfalarında daha uzun yazmıştım.
- 8.21.
Nasıl başlamalıyım? Ücretsiz bir Unix'i nereden alabilirim?
-
Eğer ilk projenizi arıyorsanız bunu benden istemeyin. Bunun yerine
Freshmeat'teki proje ve sürüm duyurularını izleyerek size ilginç görünen bir tanesine katılın.
Hala bilgisayarınıza kurulu bir Unix'iniz yoksa bu belgenin
bir yerlerinde, ücretsiz popüler Unix sürümlerini bulabileceğiniz yerleri belirtmiştim. Üstat olabilmeniz için motivasyona, kendi başına karar verebilme ve kendinizi eğitme yeteneklerine sahip olmanız gerekmektedir. Şimdi başlayın...