Hacker Nasıl Olunur?
23 Kasım 2009 Yazan admin
Â
Â
 Bunlar genellikle kod üstatlarını teknik beceri sahibi, problem çözmeden zevk alan ve sınırları aşan kişiler olarak tanımlarlar. Eğer nasıl üstat olunacağını öğrenmek istiyorsanız, bu tanımlardan sadece iki tanesi ilgi sahamızda olacaktır.
Uzman programcılar ve aÄŸ sihirbazlarının, ilk zaman paylaşımlı mini bilgisayarlara ve en eski ARPAnet deneylerine kadar uzanan onlarca yıllık bir toplulukları ve ortak bir kültürleri vardır. “üstat” (“hacker”) kavramını bu kültürün üyeleri ortaya çıkarmışlardır. İnternet’i kuran, üstatlardır. Unix iÅŸletim sistemini bugünkü haline getirenler, üstatlardır. Halen Usenet’i çalışır halde tutanlar, üstatlardır. Webi ayakta tutanlar, üstatlardır. EÄŸer bu kültürün bir parçasıysanız, bu kültüre katkıda bulunduysanız ve insanlar sizin kim olduÄŸunuzu biliyor ve size “üstat” diye hitap ediyorsa, siz bir üstatsınız.
Üstatlık sadece yazılım konusu ile sınırlı değildir. Üstat düşünce yapısını elektronik veya müzik gibi diğer şeylere uygulayan insanlar vardır. Herhangi bir bilim veya sanat dalının en üst seviyelerinde de bunu görebilirsiniz. Yazılım üstatları farklı konularda çalışan bu yakın ruhları tanır ve onlara da üstat diyebilirler. Bazıları, üstatlık doğasının üstatların yaptığı işlerden bağımsız soyut bir kavram olduğunu iddia ederler. Ama bu belgede yazılım üstatlarının nitelikleri, yaklaşım tarzları ve üstat kavramını oluşturan kültürün gelenekleri üzerinde odaklanacağız.
Kendilerine üstat (“hacker”) diyen ama gerçekte üstat olmayan bir grup daha vardır. Bunlar (genellikle genç erkeklerden oluÅŸurlar) bilgisayar sistemlerini bozan ve telefon sistemini izinsiz kullanan insanlardır. Gerçek üstatlar bunlara “korsan”(“cracker”) der ve onlarla muhatap bile olmak istemezler. Gerçek üstatlar, korsanların genellikle tembel, sorumsuz ve güvenilmez olduklarını ve çok da zeki olmadıklarını düşünürler. Nasıl arabaları düz kontakt ile çalıştırmak sizi otomotiv mühendisi yapmıyorsa, güvenlik sistemini kırmak da sizi üstat yapmaz. Maalesef birçok gazeteci ve yazar, “üstat” (“hacker”) kelimesini korsanları (“cracker”) da içine alacak ÅŸekilde kullanıyor ve büyük bir yanılgıya düşüyorlar.
Temel fark şudur: üstat birşeyler yapar, korsanlar ise bunları bozar.
Eğer üstat olmak istiyorsanız okumaya devam edin. Eğer korsan olmak istiyorsanız, gidin alt2600
haber grubunu okuyun ve düşündüğünüz kadar zeki olmadığınızı anladığınızda kafanızı oraya buraya vurmaya hazır olun. Korsanlar hakkında tüm söyleyeceklerim bunlar.
Üstat Felsefesi
Üstatlar, problemleri çözer, yeni şeyler yapar, özgürlüğe, paylaşıma ve yardımlaşmaya inanırlar. Üstat olarak kabul edilmeniz için bu felsefeye uygun davranmanız gerekir. Davranışınızı bu felsefeye tam anlamıyla uygun hale getirebilmek için ise, bu felsefeye gerçekten inanmalısınız.
Ama bunu sadece üstat olarak kabul edilmek için gerekli bir ÅŸart gibi düşünürseniz, asıl noktayı kaçırmış olursunuz. Çünkü, bu felsefeye inanmak sizin açınızdan önemli olacaktır – sizin öğrenmeniz ve motive olmanız için gereklidir. Bütün yaratıcı sanatlarda olduÄŸu gibi, ustalaÅŸmak için en etkin yol ustaları taklit etmektir – sadece entellektüel olarak deÄŸil, duygusal olarak da.
Şu modern Zen şiiri bu yaklaşımı anlatır:
To follow the path Yolu izlemek için:
look to the master, ustaya bak,
follow the master, ustayı izle,
walk with the master, ustayla yürü,
see through the master, usta gibi gör,
become the master. usta ol.
Eğer üstat olmak istiyorsanız şunları, inanana kadar tekrar edin:
Dünya çözülmeyi bekleyen hayranlık verici problemlerle doludur.
Üstatlık çok eğlencelidir. Ama bu eğlence, çaba ister. Çaba da motivasyon gerektirir. Başarılı atletler, vücutlarını formda tutmak için fiziksel sınırlarını zorlayan şeyler yaparlar ve bundan zevk alırlar. Böylelikle motivasyonlarını da korumuş olurlar. Benzer şekilde üstat olmak için, problem çözme, becerilerinizi şekillendirme ve zekanızı geliştirmekten haz duymalısınız.
Eğer bunu doğal yollarla yapamıyorsanız, kendinize bir zorlayıcı etken bulmalısınız. Aksi takdirde, üstatlık potansiyelinizin seks, para ve sosyal olaylar gibi dikkat dağıtıcı şeyler tarafından yok edildiğini göreceksiniz.
(Ayrıca kendi öğrenme yeteneğinize karşı bir güven geliştirmelisiniz. Bir problemi çözmek için ihtiyacınız olan herşeyi bilmeseniz bile onun bir parçası ile uğraşarak öğrendikleriniz sıradaki parçayı çözmenize yetecektir. Böylece problemin tamamını çözebilirsiniz.)
Hiçbir problem iki defa çözülmemelidir.
Yaratıcı beyinler değerli ve sınırlı kaynaklardır. Çözülmeyi bekleyen birçok problem varken, tekerleği yeniden icat etmekle harcanmamalıdırlar.
Üstatlar gibi davranmak için, diÄŸer üstatların da zamanlarının deÄŸerli olduÄŸuna inanmalısınız. Bilgiyi ve çözülen problemlerin çözümlerini paylaÅŸarak, diÄŸer hacker’ların eski problemler yerine yeni problemler üzerinde çalışmalarını saÄŸlamak sizin için ahlaki bir görev sayılır.
Bununla birlikte “Hiçbir problem iki defa çözülmemelidir” demek varolan çözümlerin tümünü kutsal kabul etmelisiniz ya da verilen bir problemin sadece bir doÄŸru çözümü vardır diye düşünmelisiniz anlamına gelmez. Genellikle problemin çözümünü öğrenmeye çalıştığımızda problem hakkında daha önce bilmediÄŸimiz ÅŸeyler öğreniriz. Daha iyisini yapabileceÄŸimizi düşünmek normaldir ve hatta gereklidir. Normal OLMAYAN ise yapay teknik, yasal veya kurumsal engellerin (kapalı kaynak-kod gibi) iyi bir çözümün yeniden kullanılmasına engel olması ve insanları tekerleÄŸi yeniden icat etmeye zorlamasıdır.
(Diğer üstatlardan daha fazla saygı görmek için bütün yaratıcı ürünlerinizi vermeye mecbur olduğunuza inanmanız gerekmiyor. Ürününüzü satarak geçiminizi sağlamak üstatlık değerleri ile çelişmez. Sanatınıza ve diğer üstat arkadaşlarınıza sadakatinizi unutmadığınız sürece yazılım kotarma yeteneklerinizi kullanarak ailenizi desteklemek ve hatta zengin olmak üstatlık değerleriyle çelişmez.)
Sıkıcı ve tekrar eden işler günahtır.
Üstatlar (ve genelde yaratıcı insanlar), sıkılmamalı ve tekrar eden aptal ve can sıkıcı işlerde çalıştırılmamalıdır, çünkü bu tür işleri yaparken asıl yapmaları gereken işi; yani problem çözme işini yapamayacaklardır. Bu israf herkese zarar verir. Bu yüzden sıkıntı ve gereksiz can sıkıcı işlerde çalışmak hoş değildir ve gerçekten israf ve hatta günahtır.
Üstat gibi davranmak için, küçük sıkıcı şeyleri, otomatikleştirerek sizden ve diğer insanlardan (özellikle diğer üstatlardan) olabildiğince uzaklaştırmak istemelisiniz.
(Bu konuda bir istisna vardır. Üstatlar bazen, dışarıdan sıkıcı veya tekrar eden işler gibi görülen şeyleri, kafalarını boşaltmak, yeni bir konuda beceri elde etmek veya başka türlü kazanamayacakları bir deneyim kazanmak için yaparlar. Ama bu seçime bağlı birşeydir. Düşünme yeteneği olan hiç kimse, bu tür şeyler yapmak zorunda kalmamalıdır. )
Özgürlük iyidir.
Üstatlar doÄŸaları gereÄŸi otorite karşıtı kimselerdir. Size emir verebilen kiÅŸiler, sizi, büyüleyici bulduÄŸunuz bir problemi çözmekten alıkoyabilir – ve bunun için de pek çok garip sebep bulabilir. Bu nedenle otoriter tavırlarla mücadele etmek gerekebilir, aksi bir durum siz ve diÄŸer üstatlar için solunacak özgür hava kalmaması demektir.
(Bu bütün otoritelere karşı savaşmak ile aynı şey değildir. Çocuklar korunmalı ve suçlular zaptedilmelidir. Bazı zamanlarda, bir üstat, emirleri yapmak için harcayacağı zamandan daha çok önem verdiği bir şeyi elde etmek için otoriteye boyun eğebilir. Fakat bu sınırlı ve bilinçli bir anlaşmadır, otoriteler tarafından arzulanan türde kişisel teslimiyetler önerilmez.)
Otorite, sansürcülük ve gizlilik sayesinde yaÅŸar, gönüllü iÅŸbirliÄŸi ve bilgi paylaşımından hoÅŸlanmaz. Tek sevdiÄŸi ÅŸey kendi kontrolü altında gerçekleÅŸen “iÅŸbirlikleri”dir. Bu nedenle, üstatlar gibi davranmak için; sansüre ve gizli kapaklı iÅŸlere, sorumlu yetiÅŸkinleri aldatmaya yönelik eylemlere ve zorlamalara karşı içgüdüsel bir kin geliÅŸtirmeli ve bu inanç doÄŸrultusunda çalışmaya gönüllü ve arzulu olmalısınız.
Yaklaşım biçimi, yetkinlik demek değildir.
Üstat olmak için bu yaklaşım biçimlerini geliştirmelisiniz. Ancak, sadece bir yaklaşım biçimini alıp uygulamak sizi üstat yapmaz, tıpkı şampiyon bir atlet veya bir rock yıldızı yapmayacağı gibi. Üstat olmak aynı zamanda zeka, deneyim, kendini adama ve ciddi çalışma gerektirir.
Bu yüzden karşınızdakileri sadece davranışa bakarak değerlendirmemeyi ve yetkinliğe saygı duymayı öğrenmelisiniz. Üstatlar, içi boş kişilerin vakitlerini harcamasına izin vermez fakat her konuda yetkinliğe saygı duyar. Zor öğrenilen ve az kişinin sahip olduğu becerilerde yetkin olmak iyi; akıl gücü, hüner ve konsantrasyon gerektiren zor becerilerde yetkinlik en iyisidir.
EÄŸer yetkinliÄŸe saygı duyarsanız, yetkinlik kazanmaktan zevk alırsınız – bunun için gereken çalışma ve kendini adama süreci sıkıcı olmaktan çıkar, kendi başına bir zevk unsuru haline gelir. Bu yaklaşım, üstat olabilmek için hayati derecede önemlidir.
Temel Yazılım Kotarma Becerileri
Üstat davranış biçimleri önemlidir, ama gerekli becerilere sahip olmak daha da önemlidir. Davranış biçimi, yetkinliğin yerini tutamaz ve sahip olmadığınız müddetçe kimsenin size üstat demeyi hayal bile etmeyeceği bazı temel beceriler vardır:
Teknoloji değiştikçe bu beceri kümesi de zaman içinde değişmektedir. Örneğin önceleri makina dilinde programlama yapabilmek önemli idi ve yakın zamana kadar HTML bilmek önemli bir beceri değildi.
Şu sıralarda, üstat olmak için gerekli temel beceri listesi şunlardan oluşmaktadır:
Program yazmayı öğrenin.
Bu, elbette ki üstat olmak için temel önÅŸarttır. EÄŸer bir programlama dili bilmiyorsanız, size Python ile baÅŸlamanızı öneririm. Python, tasarımı temiz, belgelendirmesi iyi yapılmış ve yeni baÅŸlayanlara kolaylık tanıyan bir dildir. Öğrenebilecek ilk dil olarak iyi bir seçim olmasına raÄŸmen, oyuncak deÄŸil, güçlü ve esnek bir dildir ve büyük projeler geliÅŸtirmek için de çok uygundur.[71] Bu konuyla ilgili “Python’ da geliÅŸim”
adında daha ayrıntılı bir yazı yazmıştım. Python ile ilgili iyi öğretici belgeler
Python web
sitesinde bulunabilir.
Java da programlamayı öğrenmek için iyi bir dildir. Python’dan daha zordur ama ürettiÄŸi kod daha hızlıdır. İkinci dil olarak öğrenebilecek en iyi dil olduÄŸunu düşünüyorum. Ne yazık ki, Sun’ın referans uygulamaları hala tescillidir. Bu Java dilinin kendisiyle çok fazla ilgili bir konu deÄŸildir; yüksek kaliteli, açık-kaynak kodlu Java yorumlayıcılar mevcuttur, esas problem Java ile birlikte gelen sınıf kütüphaneleridir. Açık kaynak kodlu sınıf kütüphaneleri Sun’ın kütüphanelerinin gerisinde kalmaktadır. EÄŸer Java öğrenmeye karar verirseniz bunu Sun’ın tescilli kodlarına bağımlı kalmak yerine açık-kaynak kodlu uygulamalar ile yapın.
Ancak, sadece bir veya iki dil öğrenerek tam bir programcı olamayacağınızı ya da üstat seviyesine ulaşamayacağınızı da bilmeniz gerekiyor. Herhangi bir dilden bağımsız olarak programlama problemleri hakkında düşünmeyi öğrenmelisiniz. Gerçek bir üstat olabilmek için, yeni bir dili, el kitabında yazanlarla, bildiklerinizi bağdaştırarak bir kaç gün içerisinde öğrenebilir durumda olmalısınız. Bu, birbirinden çok farklı bir kaç dil bilmeniz gerektiği anlamına geliyor.
EÄŸer ciddi programlamaya girecekseniz, Unix’in ana dili olan C’yi öğrenmelisiniz. C++, C ile alakalıdır; birini öğrenirseniz, diÄŸerini öğrenmek zor olmayacaktır. Her iki dil de, ilk dil olarak öğrenmek için uygun deÄŸildir ve C programlamasından ne kadar kaçınırsanız, veriminiz o kadar artar.
C, kaynak kullanımında tutumlu ve verimli bir dildir. Maalesef, C, bu verimliliÄŸi, pek çok kaynağın (bellek gibi) yönetimini doÄŸrudan size bırakarak elde eder. Bu düşük seviyeli (donanıma yakın) kodlama karmaşık ve hataya açıktır ve hata ayıklamak için pek çok zamanınıza mal olur. Makinaların güçlü olduÄŸu günümüzde, makinanın çalışma verimliliÄŸi yerine sizin çalışma verimliliÄŸinize öncelik tanıyan bir dil ile program yazmak daha akıllıca olacaktır. Sonuç olarak Python’u tercih etmenizi öneririm.
Per l ve LISP gibi bazı diller üstatlar için özel bir önem taşır. Per l öğrenmek pratik sebeplerden dolayı önemlidir. Dinamik web sayfalarında ve sistem yönetiminde çok yaygın bir ÅŸekilde kullanılır. Hiç Per l kodu yazmayacak olsanız dahi okumasını öğrenmelisiniz. C’nin makine verimliliÄŸine ihtiyaç duyulmayan iÅŸlerde C kullanmaktan imtina eden birçok kiÅŸi, size Python’u önerdiÄŸim nedenlerle Per l’ü kullanır. Onların yazdıkları kodları anlamanız gerecektir.
LISP öğrenmek baÅŸka bir sebepten dolayı önemlidir – sonunda anladığınız zaman elde edeceÄŸiniz aydınlanma deneyiminden dolayı. Bu deneyim, bir daha hiç LISP kullanmasanız dahi, hayatınızın kalan kısmında çok daha iyi bir programcı olmanızı saÄŸlayacaktır. (Emacs metin düzenleyicisi için basit düzenleme modları yazarak ya da varolanları deÄŸiÅŸtirerek veya GIMP için Script-Fu eklentileri yazarak küçük LISP deneyimleri kazanabilirsiniz.)
En iyisi, bahsettiğim bu beş dilin (Python, Java, C/C++, Per l ve LISP) hepsini öğrenmektir. Bu diller, en önemli kotarım dilleri olmalarının yanında, programlamaya farklı yaklaşımlarıyla size önemli bir eğitim kazandırır.
Google’ın en önemli üstatlarından ve yaygın olarak kullanılan AI kitabının yazarlarından biri olan Peter Norvig On Yılda Programlama Öğrenin
baÅŸlıklı harika bir deneme yazdı.[72] “Programcılıkta baÅŸarı için tavsiyeleri” dikkate deÄŸerdir.
Size burada nasıl programlama yapılacağına dair tam bir yönerge listesi sunamam ama, bunu kitapların ve kursların da vermeyeceÄŸini söyleyebilirim (en iyi üstatların büyük çoÄŸunluÄŸu kendi kendine öğrenmiÅŸtir). Dil özelliklerini — bilginin küçük bir kısmı — kitaplardan öğrenebilirsiniz, ama o bilgiyi yaÅŸayan bir beceri haline getiren ÅŸey, pratik yapmak ve çıraklıktır. Bunu da, program okumak ve program yazmak ile edinirsiniz.
Programlamayı öğrenmek, bir doÄŸal dilde iyi yazmayı öğrenmek gibidir. En iyi yöntem, bu iÅŸin ustalarının yazdıklarını okumak, kendiniz bir ÅŸeyler yazmak, biraz daha okumak, biraz daha yazmak… Ve yazdıklarınız, örnek aldıklarınızda gördüğünüz kuvvet ve iktisadı gösterene kadar tekrar etmektir.
Önceleri okumak için iyi kod bulmak zordu, çünkü üstatlık yolunda ilerlemek isteyenlerin kaynak kodlarını okuyabileceği ve üzerinde deneme yapabileceği az sayıda büyük program vardı. Bu durum dramatik bir şekilde son buldu: Açık kaynak kodlu yazılımlar, programlama araçları ve işletim sistemleri (hepsi de üstatlar tarafından geliştirilmiş) artık yaygın bir şekilde bulunabilmekte.
Açık kodlu Unix’lerden birini edinin, kullanmasını ve çalıştırmasını öğrenin.
Bir kişisel bilgisayarınızın bulunduğunu ya da kullanabileceğiniz bir tane olduğunu varsayıyorum (zamane çocuklarının hayatı kolay
). Yeni baÅŸlayan birinin ustalık yolundaki en önemli adımı, Linux veya BSD Unix’lerden birinin kopyasını edinmesi, kurması ve çalıştırmasıdır.
Evet dünyada Unix’ler dışında baÅŸka iÅŸletim sistemleri de var ama, onlar ikilik düzendeki (binary) kodlarıyla dağıtılırlar — kodlarını okuyamaz ve deÄŸiÅŸtiremezsiniz. Windows, MacOS veya baÅŸka bir kapalı kaynak sistemde ustalaÅŸmaya çalışmak, üzerinizde zırh varken dans etmeye benzer.
Mac OS X altında ustalaÅŸmak mümkündür ama sistemin sadece bir parçası açık kaynak kodludur – pek çok duvarla karşılaşırsınız ve Apple’a ait sahipli kodlara muhtaç duruma düşmemek için özel gayret sarfetmeniz gerekir. EÄŸer Unix’ e yoÄŸunlaşırsanız, kaportanın altına girerek iÅŸe yarar ÅŸeyler öğrenebilirsiniz.
Unix, Internet’in iÅŸletim sistemidir. Unix’i bilmeden Internet’i kullanabilirsiniz ama Unix’i anlamadan bir Internet üstadı olamazsınız. Bu nedenle, bugün hacker kültürü yoÄŸun olarak Unix merkezlidir. (Bu her zaman böyle deÄŸildi ve bazı eski zaman üstatları bundan halen hoÅŸnut deÄŸil, ama Unix ile Internet arasındaki iliÅŸki, bugün Microsoft’un bile diÅŸ geçiremeyeceÄŸi kadar güçlüdür.)
Bir Unix edinin — ben ÅŸahsen Linux’u severim ama baÅŸka yollar da var (ve evet, Linux ve Windows’u aynı makinede çalıştırabilirsiniz). Öğrenin. Çalıştırın. Kurcalayın. Internet’e baÄŸlanmakta kullanın. Kodlarını okuyun. DeÄŸiÅŸtirin. Linux ile herhangi bir Microsoft iÅŸletim sisteminin sunmayı hayal edebileceÄŸinden çok daha iyi programlama araçlarına (C, LISP, Python ve Per l dahil) sahip olacaksınız. HoÅŸ zaman geçireceksiniz ve günün birinde bir üstat olarak geriye baktığınızda farketmeden pek çok ÅŸey öğrenmiÅŸ olduÄŸunuzu göreceksiniz.
Unix öğrenme ile ilgili daha fazla bilgi için The Loginataka’ya
bakın.
Linux kopyası edinmek için “Nereden Linux Bulurum?”
‘a bakın[73]
BSD Unix hakkında yardım alma ve kaynak edinme için www.bsd.org
adresine bakın.
Benim yazdığım Unix ve Internet’in Temelleri
elkitabına da bakabilirsiniz.
Not
EÄŸer yeniyseniz, Linux veya BSD’yi tek başınıza kurmanızı tavsiye etmem. Linux için yerel bir Linux Kullanıcıları Grubu (www.linux.org.tr) bulun ve yardım isteyin veya Open Projects Network (Açık Projeler Ağı) ile iletiÅŸim kurun. LISC, yardım alabileceÄŸiniz IRC kanalları da sunmaktadır.[74]
World Wide Web’i kullanmayı ve HTML kodu yazmayı öğrenin.
Üstatlar tarafından üretilen pekçok ÅŸey, üstat olmayan insanların hayatına yaptığı etkiler doÄŸrudan görülmeyecek ÅŸekilde, arka planda, fabrikaları, iÅŸ yerlerinin ve üniversiteleri çalıştırmakta kullanılırlar. Buna tek istisna, dünyayı deÄŸiÅŸtirdiÄŸi politikacılar tarafından bile kabul edilen, parlak üstat oyuncağı sanaldokudur (‘web’). Sadece bu bile (pek çok baÅŸka nedenin yanısıra) sanaldokuyu çalıştırmayı öğrenmenizi gerektirir.
Tabii “sanaldokuyu çalıştırmayı öğrenmek” den kasıt, bir sanaldoku istemcisini kullanmayı öğrenmek deÄŸil (bunu herkes yapıyor) sanaldokunun dili olan HTML’i öğrenmenizdir. Programlamayı bilmiyorsanız, HTML kodu yazmak, programlamayı öğrenmenize yardımcı olacak düşünce alışkanlıklarını kazanmanızı saÄŸlayacaktır. Dolayısıyla, kendinize bir ev sayfası hazırlayın. Klasik HTML’den daha temiz bir dil olan XHTML’i kullanmaya çalışın. (Sanaldokuda iyi öğretici belgeler var; biri burada
.)
Bir ev sayfasına sahip olmak sizi üstat yapmaz. Sanaldokuda zaten birçok ev sayfası var. Bunların çoÄŸu içeriÄŸi sıfır, amaçsız sayfalar – pek çoÄŸunun görüntüleri güzel, ama bu, bomboÅŸ oldukları gerçeÄŸini deÄŸiÅŸtirmez (daha fazla bilgi için The HTML Hell Page adresine bakabilirsiniz).
Sayfanızın kaydadeÄŸer olabilmesi için içeriÄŸe sahip olması gerekir — diÄŸer üstatların ilgisini çekebilecek veya onlara faydalı olabilecek bir içerik. Bu da bizi bir sonraki konuya götürür:
İngilizce bilmiyorsanız, öğrenin.
Ana dili İngilizce olan bir Amerikalı olarak, önceleri kültür emperyalizmi olarak anlaşılmasından çekindiÄŸimden bunu tavsiye etmekten kaçınıyordum. Ama, ana dilleri farklı olan bir kaç kiÅŸi, üstat kültürünün ve Internet’in çalışma dilinin İngilizce olduÄŸunu ve üstat topluluÄŸunda bulunmak için İngilizce bilmek gerektiÄŸini söylememde ısrar etti.
1991′de, ikinci dil olarak İngilizce bilen üstatların, ortak bir baÅŸka ana dilleri olmasına raÄŸmen, birbirleriyle yaptıkları teknik tartışmalarda İngilizce kullandıklarını öğrendim. Bu bana İngilizcenin diÄŸer dillerden daha zengin bir teknik sözlüğe sahip olduÄŸu ve bu yüzden bu iÅŸ için daha iyi bir araç olduÄŸu anlatılırken söylenmiÅŸti. Benzer nedenlerle İngilizce yazılmış teknik kitapların çevirileri de genellikle tatmin edici deÄŸildir.
Linus Torvalds, kod açıklamalarını İngilizce yazan bir Finlidir. Kendisinin İngilizceyi kullanım kabiliyeti, Linux için dünya çapında bir geliştiriciler topluluğu oluşturmasında önemli etken olmuştur. Bu İngilizce bilme ile ilgili önemli bir örnektir.
Anadilinizin İngilizce olması bir üstat için yeterli dil becerilerine sahip olduÄŸunuzu garanti etmez. EÄŸer yarı okur-yazar gibi; gramere uymadan yazım hatalarıyla dolu yazarsanız üstatların çoÄŸu (ben dahil) sizi görmezden gelecektir. Özensiz yazmak deÄŸiÅŸmez birÅŸekilde özensiz düşünmek anlamına gelmese bile genellikle aralarındaki iliÅŸkinin güçlü olduÄŸu görülmüştür – ve özensiz düşüncelilerle iÅŸimiz olmaz. Yeterince iyi yazamıyorsanız, öğrenin
Üstat Kültüründe Statü
Para kullanmayan pek çok kültürde olduğu gibi üstatlık da şöhret üzerine kuruludur. İlginç problemleri çözmeye çalışırsınız fakat bu problemlerin ne kadar ilginç olduğuna ve çözümünüzün iyi olup olmadığına ancak sizin teknik düzeyinize sahip ya da sizden daha üstün olan üstatlar karar verebilir.
Üstatlık oyununda, skoru, başka üstatların sizin becerileriniz hakkında ne düşündüğüne göre tutmayı öğrenirsiniz (işte bu sebeple, size başka üstatlar üstat diyene kadar üstat olunmaz). Bu gerçek, üstatlığın yalnız bir uğraş olduğu sanısı ve ego veya dış etkenlerin bir motivasyon kaynağı olabileceğini reddetme alışkanlığı yüzünden bazen açıkça belirtilmez.
Üstatlık, antropologların “hediye kültürü” olarak tanımladıkları bir kültürdür. Bu kültürde şöhret ve statü, diÄŸer insanlara egemen olmak, güzel olmak veya baÅŸkalarının istediÄŸi ÅŸeylere sahip olmakla saÄŸlanmaz, bir ÅŸeyler vererek saÄŸlanır. Özellikle de, zamanınızı, yaratıcılığınızı ve becerilerinizin ürününü vererek.
Üstatlar tarafından saygı duyulan biri olmak için yapabileceğiniz şeyler beş maddede toplanabilir:
Açık kaynak kodlu yazılım geliştirin.
Üstatların hoş veya kullanışlı olduğunu düşündükleri programlar yazmak ilk sırada gelir (en temel ve en geleneksel yol). Programınızın kaynak kodlarını kullanmaları için tüm üstatlara açın.
(Biz bu çalışmalara “free software” (özgür yazılım) derdik. Ama, “free” kelimesini hangi anlamda kullandığımızdan emin olmayan birçok kiÅŸinin kafası karıştı. BirçoÄŸumuz artık bunun yerine “açık kaynak”
(open source) yazılım kavramını kullanıyoruz.)
En saygın üstatlar,[75] geniş kapsamlı ihtiyaçları karşılayabilen, büyük ve kabiliyetli programlar yazan ve bunları herkesin kullanımı için veren kişilerdir.
Fakat burada tarihi bir noktayı da belirtmek gerekir. Üstatların aramızdaki açık-kaynak geliÅŸtiricilerine her zaman topluluÄŸumuzun en sert özü olarak bakmalarına raÄŸmen 1990′ların ortalarından önce üstatların çoÄŸu kapalı kaynak kodlu yazılımlar üzerine çalışıyorlardı. Bu NASIL belgesinin ilk sürümünü yazdığım 1996′da bu hala geçerliydi. 1997′de açık-kaynak yazılımların genel kabul görmesi bu durumu deÄŸiÅŸtirdi. Bugün “üstat topluluÄŸu” ve “açık-kaynak geliÅŸtiricileri” aynı kültürü ve insanları tarif etmektedir – ama bunun her zaman böyle olmadığını hatırlamakta yarar var.
Açık kaynaklı yazılımların testlerine ve hata ayıklamalarına yardım edin.
Açık kaynaklı yazılımların hatalarını ayıklayanlara da saygı duyulur. Bu mükemmel olmayan dünyada, yazılım geliştirme zamanımızın büyük çoğunluğunu kaçınılmaz bir şekilde hata ayıklama ile geçiriyoruz. Herhangi bir açık kaynak yazılım geliştiricisi için iyi beta denetleyiciler (belirtileri tanımlamayı bilen, problemlerin çıkış noktasını tespit edebilen, çabucak çıkartılan bir sürümdeki hatalara katlanabilen ve birkaç tanıma yordamı uygulayabilen), ağırlıkları kadar yakut ederler. Bunlardan bir tanesi bile hata ayıklama sürecini bir kabus olmaktan rutin bir can sıkıntısına dönüştürebilir.
Eğer yeniyseniz, geliştirilmekte olan, ilginizi çekebilecek bir program bulun ve iyi bir beta denetleyicisi olun. Program denetimine yardımdan hata ayıklamaya, hata ayıklamadan programların değiştirilmesine kadar giden doğal bir ilerleme süreci vardır. Bu yolda birçok şey öğreneceksiniz ve size de ileride yardımcı olabilecek insanlarla iyi ilişkiler kuracaksınız.
Kullanılabilir bilgi yayınlayın.
Bir başka güzel şey de, SSS (Sıkça Sorulan Sorular) listeleri gibi belgeler düzenlemek veya sanaldoku sayfalarında kullanışlı ve ilginç bilgileri toplamak ve düzenlemektir.
Önemli teknik SSS’leri yönetenler, hemen hemen açık kaynak yazarları kadar saygı görürler.
Altyapı çalışmalarının devamına yardım edin.
Üstat kültürü gönüllülerce yaÅŸatılır. Birçok zorunluluk vardır, ama bu zorunlu ve gözönünde olmayan sıkıcı çalışmalar, üstat kültürünün yaÅŸatılmasını saÄŸlar — posta listeleri ve haber grupları yönetmek, büyük yazılım arÅŸivleri içeren sitelerini iÅŸletmek, RFC’ler ve diÄŸer teknik standartlar geliÅŸtirmek gibi.
Bu işleri yapan insanlar büyük saygı toplarlar, çünkü, bu işlerin çok zaman aldığını ve kod ile oynamak kadar zevkli olmadığını herkes bilir. Bu işleri yapmak kendini adamışlığa işarettir.
Üstat kültürüne hizmet edin.
Son olarak, kültüre hizmet edebilir ve bu kültürü yayabilirsiniz (örneğin, nasıl üstat olunacağına dair bir belge yazarak
). Bu konuma ancak bir süredir ortalardaysanız ve yukarıdaki dört maddeden birinden dolayı bilinen biriyseniz gelebilirsiniz.
Üstat kültürünün liderleri yoktur ama, tarihe mal olmuş kahramanları, büyükleri ve sözcüleri vardır. Siperlerde yeteri kadar uzun zaman kaldıktan sonra, belki siz de bunlardan biri olacaksınız. Sakının: üstatlar, kültürlerindeki büyük kişilerde yükseklik egosu olmasını sevmezler ve onlara güvenmezler. Bu tarz bir şöhret oldukça tehlikelidir.
Üstat/Dörtgöz (“Nerd”) BaÄŸlantısı
Popüler kanının aksine, üstat olmak için dörtgöz (“nerd”) (bilim/teknoloji takıntılı anti-sosyal kiÅŸi) olmanız gerekmez. Fakat, dörtgöz olmak, üstat olmak için faydalı bir ÅŸeydir ve bir çok üstat, dörtgözdür. Sosyal hayat dışında olmak, düşünmek ve kod kotarmak gibi gerçekten önemli ÅŸeyler üzerinde yoÄŸunlaÅŸmanıza yardımcı olur.
Bu nedenle birçok üstat, dörtgöz ismini kabullenmiÅŸ ve hatta daha sert bir ifade ile kendilerini “geek” ismi ile onurlandırmışlardır — bu onların normal sosyal beklentilerden bağımsız olduklarını ifade etmelerinin bir yoludur.
EÄŸer, kod kotarmak üzerine yeterince yoÄŸunlaÅŸabiliyorsanız ve halen bir hayatınız varsa, iÅŸte bu çok güzel. Bugün bu, 1970′lerde ben henüz bir çırakken olduÄŸundan çok daha kolay birÅŸey. Normal hayat, ÅŸimdilerde tekno-dörtgözlere çok daha dostça yaklaşıyor. Üstatların yüksek kaliteli bir aşık ve bir eÅŸ olduÄŸunun farkında olan birçok insan var.
Kod kotarmak sizi kendine çektiyse ve bir sosyal hayatınız yoksa, bu daha iyi — hiç olmazsa konsantrasyon probleminiz olmayacak. İleride bir hayatınız olabilir.
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.
DiÄŸer Kaynaklar
Paul Graham’mın bilgelik üzerine yazdığı Great Hackers
ve Undergraduation
isimli iki denemesi bulunmaktadır.
Peter Seebach, üstatlar ile nasıl baÅŸ edeceÄŸini bilemeyen yöneticiler için mükemmel bir “Üstat SSS” (Hacker FAQ
) hazırlamıştır.
“Nasıl Programcı Olunur?” (How to Be A Programmer) adında mükemmel bir belge daha vardır. Bu belge yalnızca kodlama ya da teknik nitelikler hakkında deÄŸil, aynı zamanda bir programlama ekibinde nasıl davranılması gerektiÄŸi konusunda da deÄŸerli öğütler içerir.
“Hacker’lığın Kısa Tarihçesi”
(A Brief History Of Hackerdom
) adında bir belge de yazmış bulunuyorum.
Linux ve Açık Kaynak kültürleri hakkında birçok açıklama içeren “Katedral ve Pazar” (The Cathedral and the Bazaar
) adında bir belge yazmış bulunuyorum. Bu belgenin devamı niteliÄŸinde “Noosferi İskana Açmak”
(Homesteading the Noosphere) adında bir belge de bulunmaktadır.
Rick Moen, “Linux Kullanıcı Grubu Nasıl İşletilir?” (How to Run A Linux User Group) adında mükemmel bir belge yazmıştır.
Yine Rick Moen ve ben, Doğru Düzgün Soru Sormanın Yolları (How to Ask Smart Questions) adında bir belge yazmış bulunuyoruz.
EÄŸer kiÅŸisel bilgisayarların temelleri, Unix ve Internet hakında bilgiye ihtiyacınız varsa, Unix ve Internet’in Temelleri Nasıl (The Unix and Internet Fundamentals HOWTO
) belgesine bakın.
Yazılımınızı insanlara sunarken veya bir yazılım için yamalar yazarken, “Yazılım Dağıtım PratiÄŸi NASIL” (Software Release Practice HOWTO
) belgesindeki yönergeleri izleyin.
Zen şiiri ilginizi çektiyse, Rooties Root: The Unix Koans of Master Foo
belgesine bakabilirsiniz.
Yazan: Eric Steven Raymond
Thyrsus Enterprises
Çeviren: Yaşar ŞENTÜRK, Yalçın KOLUKISA
Güncelleyen: Necdet Yücel
Telif Hakkı © 2001, 2006 Eric Steven Raymond <esr (at) thyrsus.com>
Telif Hakkı © 2003 Yaşar ŞENTÜRK (Türkçe çeviri) <yasarix (at) yahoo.com>
Telif Hakkı © 2003 Yalçın KOLUKISA (Türkçe çeviri) <yalcink01 (at) yahoo.com>
Telif Hakkı © 2006 Necdet Yücel (Türkçe çeviri) <nyucel (at) comu.edu.tr>
Yasal Uyarı
Bu belgenin Türkçe çevirisinin kopyalama, dağıtma ve değiştirme izni, GNU GPL lisansı altında verilmiştir.
<!–The Coders Script v2.0 çok yakında–>
<!–Bana balık vermeyin balık tutmayı öğretin
Popularity: 100% [?]

slm arkadasım ellerine saglık ama bence hackedlige merak salanlar yaziyla degil kendi beyinleriyle is yapsinlar programı hazirliyanın bunyesinde buyumektense tek buyumeyi tercih edin not:is bilmez umt
mrb bana bir konuda yardımcı olacak bir hacker arkadaş lazım yardımcı olurmusunuz???
evet oluruz güzel kardeşim bizim bilgilerimiz içerisindeyse oluruz
kusura bakmayında sizin biligleriniz içerisinde derken tam anlamadim,msn den daha rahat konusabilirmiyiz?
sizin soracağınız sorunun cevabını bilirsek biliyorsak yardımcı oluruz
bir ÅŸifreni kırmak lazım …