5/4/2008 - Hacker Nedir? -3 (devamı)
Tarz İçin Bazı Noktalar
Yine,
üstat olmak için, üstat kafa yapısında olmalısınız. Bu konuda yardımcı
olacak ve bilgisayar başında olmanızı gerektirmeyen bazı şeyler var.
Bunlar, kod kotarmanın gerekleri değiller (hiçbiri değil) ama birçok
üstat bunları yapar ve bunların kod kotarmanın özü ile temelden bir
bağlantısı oladuğunu hisseder.
* Ana dilinizi iyi yazmayı
öğrenin. Programcıların iyi yazamayacağı yönünde yaygın bir klişe olsa
da (tanıdığım en becerikli üstatlar dahil) şaşırtıcı sayıda üstat
oldukça iyi yazabilir. * Bilim-kurgu okuyun. Bilim-kurgu toplantılarına gidin (üstatlar ve çırakları ile tanışmanın iyi bir yoludur). *
Bir dövüş sanatı öğrenin. Dövüş sanatları için gerekli zihinsel
disiplin üstatlık için gerekli olanla önemli benzerlikler gösterir.
Üstatlar arasında en popüler olanları Tae Kwon Do, Karate, Wing Chun,
Aikido veya Ju Jitsu gibi aletsiz yapılanlarıdır. Batılı eskrim ve
Asyalı kılıç sanatlarının takipçileri de görülmektedir. 1990'ların
sonlarından itibaren yasal olduğu yerlerde tabanca ile ateş etmek de
yaygınlaşmaktadır. Üstatlığa en uygun dövüş sanatları saf kuvvet,
atletizm veya fiziksel dayanıklılık değil zihinsel disiplin, gerilimsiz
farkındalık ve kontrol üzerinde duranlardır. * Gerçek bir
meditasyon öğretisi öğrenin. Üstatların daimi favorisi Zen'dir (önemli:
Zen'i bir din olarak benimsemeden ya da mensubu olduğunuz dinden
çıkmadan Zen'den faydalanmak mümkündür). Başka tarzlar da işe
yarayabilir ama çılgınca şeylere inanmanızı gerektirmeyecek birini
seçmeye çalışın. * Analitik bir müzik kulağı geliştirin. Özel
müzik türlerini anlamayı öğrenin. Bazı müzik aletlerini iyi bir şekilde
çalmayı veya şarkı söylemeyi öğrenin. * Sözcük oyunlarını anlama yeteneğinizi geliştirin.
Bunların
ne kadar çoğunu zaten yapıyorsanız üstatlığa o kadar yatkın bir
hamurunuz var demektir. Bunların ayrıntıları ile tamamen açık olmayıp
sol ve sağ beyin yeteneklerinin uyuşumu ile ilişkili olmasını nedeni;
üstatların problemlerin çözümünde aynı zamanda hem mantıksal hem de
açıkça görülenin dışında uslamlamaya ihtiyaç duymalarıdır.
Oynadığınız
kadar sert çalışın, çalıştığınız kadar sert oynayın. Gerçek üstatlar
için, "oynamak", "çalışmak", "bilim" ve "sanat" arasındaki sınırlar,
yok olmaya yakındır veya yüksek seviyeli yaratıcı oyunbazlıkla
birleşmiştir. Asla dar kapsamlı bilgi ve niteliklerle yetinmeyin pek
çok üstat kendisini programcı olarak tanımlamasına rağmen, ilgili bir
kaç alanda önemli bilgi dağarcıkları vardır -- Sistem yönetimi,
sanaldoku tasarımı ve PC donanımı sorunlarını giderme bunlardan yaygın
olanlardır. Sistem yöneticisi olan bir üstat, genelde betik programlama
ve sanaldoku tasarımı konularında da yetkindir. Üstatlar hiç bir işi
yarım yamalak yapmaz, eğer bir konuya girerlerse, bu konu ile ilgili
çok iyi yetkinliğe ulaşırlar.
Son olarak, yapmamanız gereken birkaç şey var.
* Aptalca veya övünme içeren kullanıcı isimleri kullanmayın. * Usenet'de veya herhangi bir yerde sidik yarışına girişmeyin. * Kendinize "sibermanyak" demeyin, diyen kişilerle de zamanınızı harcamayın. * İmla ve dilbilgisi hatalarıyla dolu e-postalar yazmayın.
Bunları
yaparak sağlayacağınız tek tanınırlık, aptal olduğunuz olacaktır.
Üstatların hafızaları kuvvetlidir başlangıçta yaptığınız hataları
unutturmanız/affettirmeniz bir kaç yıl alabilir.
Kullanıcı
adları veya takma adlar ile ilgili olası problemler biraz açıklama
gerektirebilir. Gerçek kimliğinizi bir rumuzun arkasında saklamak,
korsan, warez d00z ve diğer daha düşük hayat formlarının yapacağı,
çocukca ve aptalca bir davranıştır. Üstatlar bunu yapmaz; yaptıklarıyla
gurur duyar ve yaptıklarının gerçek isimleriyle özdeşleşmesini
isterler. Eğer bir takma adınız varsa, atın gitsin. Üstatlar arasında
bu sizi, hep kaybeden yapacaktır.
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.
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.
Ö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.
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.
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.
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.
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.
Başka birinin hesabının şifresini nasıl ele geçirebilirim?
Bu korsanlıktır. Gözüme görünme.
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.
IRC' de kanal yöneticisi haklarını nasıl çalabilirim?
Bu korsanlıktır. Gözüme görünme.
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.
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.
Konuşacak gerçek üstatları nerede bulabilirim? En
iyi yol, çevrenizdeki bir Linux Kullanıcı Grubunun toplantılarına
gitmektir. LDP'nin sitesiinde 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.)
Kod kotarmak ile ilgili faydalı kitaplar tavsiye edebilir misiniz?
Faydalı
bulacağınızı düşündüğüm Linux Okuma Listesi NASIL (Linux Reading list
HOWTO )belgesini güncellemeye devam ediyorum. Ayrıca Loginataka da iyi
bir tercih olabilir.
Python'a giriş için de http://www.python.org/doc/Intros.html adresine göz atabilirsiniz.
Ü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.
İ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.
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.
Donanım uyumu konusunda SSS'ın son sürümüne http://en.tldp.org/HOWTO/Hardware-HOWTO/index.html[/url ]adresinden ulaşabilirsiniz.
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.
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.
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
Kaynaksayfalarında daha uzun yazmıştım.
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...
|
|
Yorum yaz!
|
|
Hakkımda
Kategoriler
Arkadaşlarım
|