Hacker Nedir? Argo Dosyası‘nda pek çok üstat (“hacker”) tanımlaması bulunmaktadır. 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.[55] Bu konuyla ilgili “Python’un gelişimi” adında daha ayrıntılı bir yazı yazmıştım. Python ile ilgili iyi öğretici belgeler Python web sitesinde bulunabilir.Eskiden Java’yı da öğrenmek için iyi bir dil olarak tavsiye ederdim ama bu değerlendirme fikrimi değiştirdi (“The Pitfalls of Java as a First Programming Language” bölümüne bakın). Artık önce C ve Lisp ardından Java öğrenmenin iyi olacağını düşünüyorum.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.
Perl ve LISP gibi bazı diller üstatlar için özel bir önem taşır. Perl öğrenmek pratik sebeplerden dolayı önemlidir. Dinamik web sayfalarında ve sistem yönetiminde çok yaygın bir şekilde kullanılır. Hiç Perl 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 Perl’ü 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++, Perl 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.
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.
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ı. [56] “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 Perl 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. Unix Programlama Sanatı belgesine de göz atmak isteyebilirsiniz.
Bir Linux dağıtımı edinmek için Linux Online! adresi size yardımcı olacaktır. Buradan bir dağıtımı indirebileceğiniz gibi size kurulumda yardımcı olabilecek bir yerel grup da bulabilirsiniz.
Bu NASIL belgesinin ilk on yılında yeni bir linux kullanıcısı için tüm dağıtımların neredeyse aynı olduğunu söyledim. 2006-2007 yıllarında ise en iyi tercih Ubuntu olarak görünmektedir. Diğer dağıtımların kendi güçlü oldukları alanlar olsa da Ubuntu Linux’a yeni başlayanlar için açık ara en kolay ulaşılabilir olanıdır.
BSD Unix hakkında yardım alma ve kaynak edinme için www.bsd.org adresine bakın.
Bu suya ayaklarınızı sokmanın iyi bir yolu da Çalışan CD kullanmaktır. Bu dağıtımlar sabit diskiniz üzerinde bir düzenleme yapmadan kullanabileceğiniz dağıtımlardır. CD okuyucuların yavaşlığından kaynaklanan bir yazaşlıkları olsa da sizi zorlayıcı herhangi bir değişiklik yapmadan bu dünyanın imkanlarına göz atmanız için iyi bir yoldur.
Benim yazdığım Unix ve Internet’in Temelleri elkitabına da bakabilirsiniz.
Eskiden eğer yeni bir kullanıcıysanız Linux veya BSD’yi kendi başınıza kurmanızı önermezdim. Günümüzde ise kurulum araçları yeni başlayanların bile kendi başlarına üstesinden gelebilecekleri kadar iyi hale geldiler. Yine de yerel Linux kullanıcı grubuyla iletişim kurarak onlardan yardım istemenizi öneririm.Bunun zararı olmadığı gibi süreci de kısaltacaktır.
- 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.Tabi “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. (internette 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.
[55] Çevirenin Notu: 3D Studio Max’ e ciddi bir rakip olan Blender, Python ile geliştirilmiştir. [56] Çevirenin Notu (ny): Bu denemenin Türkçe çevirisi de bulunmaktadır.
Ü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,[57] 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.
[57] Çevirenin Notu: Eric Steven Raymond buna yarı-tanrı anlamında “demigod” demiştir.
Ü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ı asosyal 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ın biraz 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, “geek” ismini gurur duyulan bir kimlik olarak benimsemişlerdir — bu onların normal sosyal beklentilerden bağımsız olduklarını (aynı zamanda bilim kurgu ve strateji oyunları gibi şeylere düşkün olduklarını) ifade etmelerinin bir yoludur. ‘Nerd’ 1990’larda bu anlamda kullanılan bir terimdi. ‘Nerd’ biraz aşağılayıcı bir ifade iken ‘geek’ daha sert bir anlamda kullanılıyordu. 2000 yılından sonra kelimelerin anlamları, en azından Amerikan popüler kültüründe, karşılıklı olarak değişti. Hatta günümüzde teknik olmmayan insanlar arasında geek-olmakla övünülen bir kültür bile var.
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’nin farklı formları, Kung Fu, Aikido ve 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.
“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, Nasıl Akıllıca Soru Sorulur (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.
Sıkça Sorulan Sorular
- 6.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ğı yasa dışı 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.
- 6.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.
- 6.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.
- 6.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.
- 6.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. Deneyenlerin pek çoğu eğer yeterince yoğunlaşırlarsa 18 ay ila 2 yıl arasında yeterli bir seviyeye gelmektedir. Bu işin burada son bulduğunu düşünmeyin, (diğer alanlarda olduğu gibi) ustalaşmak yaklaşık on yılınızı alacaktır. 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.
- 6.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 dileri (ö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.
- 6.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.
- 6.8.8. Başka birinin hesabının şifresini nasıl ele geçirebilirim?
- Bu korsanlıktır. Gözüme görünme.
- 6.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.
- 6.8.10. IRC’ de kanal yöneticisi haklarını nasıl çalabilirim?
- Bu korsanlıktır. Gözüme görünme.
- 6.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.
- 6.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
- 6.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.)
- 6.8.14. 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.
- 6.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.
- 6.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.
- 6.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.Bilgisayar seçerken 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 modemler ve kablosuz ağ kartlarıdır. 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 adresinden ulaşabilirsiniz.
- 6.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.
- 6.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
- 6.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.
- 6.8.21. Ücretsiz bir Unix’i nereden alabilirim?
- 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…
Yazan: Eric Steven Raymond
Türkçe çevirisi: Yaşar ŞENTÜRK, Yalçın KOLUKISA, Necdet Yücel
Telif Hakkı © 2005-2008 Necdet Yücel (Türkçe çeviri) <nyucel (at) comu.edu.tr>
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ı © 2001 Eric Steven Raymond <esr (at) thyrsus.com>
Bu belgenin Türkçe çevirisinin kopyalama, dağıtma ve değiştirme izni, GNU GPL lisansı altında verilmiştir.
Çok yararlı oldu tesekkurler anlamadıgım bazı yerler var 1ini soracagım
Ustadlarin beni kınamamasi icin ne tur bi kulanici adi kullanabilirim
Bu sorunun cevabı yukarıda verilmiş kung. Öncelikle, aptalca ve övünme içeren kullanıcı isimleri kullanmamak gerektiği vurgulanmış. İmla ve dilbilgisi hataları konusunun önemli olduğu da belirtilmiş. Paul Graham’in bilgelik üzerine yazdığı denemeler, bu konuda çok ufuk açıcı olmalı. Selamlar.
ben 5 yılımı gözden çıkarırım bu işi öğrenmek için 29 yaşındayım ama hiç bilgim yok yol gösterecek biri lazım yazılanları okuyup anlamak zor hiç bilgim yok sıfır diyebiliriz tafsiyeniz nedir
Oldukça detaylı ve açıklayıcı bir sunum olmuş emeğinize sağlık.