Sponsor Google

3 Ağustos 2017 Perşembe

HACKING SECURITY

HACKING & SECURITY


Hacker, Cracker vb. Kavramları

Çağımızın başdöndürücü şekilde ilerleyen teknolojisine rağmen ve hacker’ların genellikle cracker yönüyle gündeme gelmesinden dolayı olsa gerek hacker ve cracker kavramları sıkça karıştırılan iki kavram. Ve hacker’ların genellikle sistemlere zarar veren, girdiği sistemlerden veri (bilgi) çalan, kısacası sadece zarar veren bireyler olarak bilinirler. Ancak bu oldukça yanlış bir sanıdır. Eğer hacker’lar zarar verici olsalardı, gerçekten bahsedilen özelliklere sahip olan şahıslar olsalardı şu an internet belki 10 sene öncesinde kalırdı, bu kadar gelişmesi imkansız gibi bir şey olurdu. Örneğin; Bill Gates’in Microsoft’u kurmadığını, Linus Torvalds’ın Linux’ı kodlamadığını, Dennis Ritchie, Ken Thompson gibi dehaların olmadığını düşünelim. İnternetin, sanal dünyanın şu anki aşamada olduğu düşünülebilir miydi?



        Kısacası Hacker, her türlü işletim sistemini tam manasıyla bilen, derinliklerine inen, bilgisayarla derinlemesine ilgilenen, programlamayı profesyonel düzeyde bilen bilgisayar uzmanlarıdır diyebiliriz. Hacker’lar bir yapı üzerinde sistem hatası veya sistem açıkları bulabilir, bu açıkların sebeplerini bilir. Hiçbir zaman öğrendikleriyle yetinmez, daima daha fazla veri öğrenme çabası içerisindedirler. Bu dehalar kasten zarar verme girişimlerinde bulunmazlar.

        Şimdi ise hacker’ların karıştırıldığı, onlarmış gibi anıldıkları kişiler olan cracker’lardan bahsedelim. Cracker’lar, hacker’ların tam aksi bir görevi üstlenmişlerdir   diyebiliriz. Bunlar genellikle kötü niyetli, menfaat ve geliri için çalışan, sistemlere girme amacı, misyonları; veri çalma, zarar verme, işleyişi aksatma... gibi olumsuzluklar olan kullanıcılardır. Bu grup da programlamayı bilen, Reverse Engineering denilen uygulama dosyası halindeki programları değiştirebilen, freeware olmayan yani ücretli olarak kullanıma sunulan programları, yazdıkları programlar vasıtasıyla ücretsiz hale getirebilen, limitleri kaldırabilen kişilerdir.

        Birbirine karıştırılan bu iki grup, aslında birbirinin tam zıttı diyebiliriz. Bu kavramların dışında 1970’lerde John Draper’la birlikte ortaya çıkan Phreaking’te bu alemin olmazsa olmazı. Phreaking adıyla bilinen olay telefon sistemlerinin işleyişini öğrenmek ve kontrol altına almaktır. Phreaker ise bu fiili gerçekleştiren telefon cracker’larıdır. Phreaker’ların ne zaman ortaya çıktığı kesin olarak bilinmemekle beraber, gelişen teknoloji ile beraber bu kavram da sanal alemden kalkmak üzere...
        Bu 3 gruptan sonra en zararsız ve en zavallı olan 2 grup ise Script Kiddie’s ve Lamer’ler.
        Lamer; hacker olma özentisi güden, bu amaç için çalışan, hacking ve güvenlik sitelerinden birkaç makale, döküman..vs öğrenen ve bunlarla yetinen, programlama bilgisi olmayan, herkesin yaptığı sıradan işleri yapan ve bunlar aracılığı ile ün kazanmak, saygınlık kazanmayı hedefleyen kişilerdir.

Script Kiddie ise başkalarının yazdığı programları kullanan, programlama bilgisi olmayan, lamer’in bir üstü diyebileceğimiz grup.

Hacker, Cracker vb. Tarihi

        1969 Öncesi. Önce bir telefon şirketi vardı: Bell Telephone. Ve zamane hacker’ları. Tabii, 1878’de onlara hacker denmiyordu henüz. Telefon santrallerine operatör olarak alınmış, onun telefonunu buna, bununkini ona bağlayan şakacı birkaç genç delikanlı.

        Artık telefon santrallerinde neden bayan operatörler tercih edildiğini anlıyorsunuz : )
        Şimdi, 1960’larda ortaya çıkan gerçek bilgisayar hacker’larına gelelim. ABD’nin dahiler çıkaran ünlü üniversitesi MIT’de (Massachusetts Institute of Technology) bilgisayarlar kullanılmaya başlandığında, bazı öğrenci ve asistanlar, bu makinelerin nasıl çalıştığını çok merak ettiler, bu yeni teknoloji hakkında ne varsa öğrenmeye çalıştılar. O günlerde bilgisayarlar, ısı kontrollü cam odalarda kilitli olan devasa makinalardı. Bu ağır metal yığınlarını çalıştırmak binlerce dolara mal oluyordu. Programcılar bu dinozorları pek de kolay kullanamıyordu. Bu yüzden, zeki olanlar, hesaplama işlemlerini daha çabuk yapabilmek için “hack” dedikleri programlama kısayolları yarattılar. Bazen bu kısayollar orjinal programdan daha iyi tasarlanmış oluyordu. 

        Belki de bütün zamanların en iyi hack’lerinden biri, 1969’da, Bell laboratuarlarındaki iki çalışanın, Dennis Ritchie ve Ken Thompson’un bilgisayarların artık açık kurallarla çalıştırılması gerektiğini düşünmesiyle yaratıldı. İkili, geliştirdikleri bu yeni standart işletim sistemine UNIX ismini verdiler. 
        1970-1979. 1970’lerde siber cephe alabildiðine açıldı. Bu işle ilgilenen herkes, kablolarla bağlanmış bir dünyanın nasıl çalıştığını araştırmaya ve bulmaya çalışıyordu. 1971’de, John Draper isimli bir Vietnam gazisi, Cap’n’Crunch (mısır gevreği markası) kutusundan çıkan promosyon düdüklerin 2600 MHz tonda ses çıkarttığını fark etti. Bedava telefon görüşmesi yapmak için düdüğü telefonun alıcısına üflemek yeterliydi. 
        O zamanın hacker’ları, “phreaking” adı verilen bu tür yöntemlerin kimseyi incitmediğini, telefon hizmetinin sınırsız bir kaynak olduğunu ileri sürüyorlardı. Hackerlar dünyasında tek eksik sanal bir kulüp binası idi. Dünyanın en iyi hacker’ları nasıl tanışacaklardı? 1978 de, Chicago’lu iki genç, Randy Seuss ve Ward Christiansen, ilk kişisel BBS’i (Bulletin Board System - Bülten Panosu Sistemi) kurdular. BBS’ler günümüzde halen çalışıyor. 
        1980-1986. Bildiðiniz gibi IBM firması, 1981’de bağımsız işlemcisi, yazılımı, belleği ve depolama birimleri olan yeni bir bilgisayarı duyurdu. Bu modele PC (Personal Computer-Kişisel bilgisayar) adını verdiler. Bu makinelerden biriyle istediğinizi yapabilirdiniz. Gençlerin Chevrolet’lerini bırakıp PC’lere, “Commie 64” (Commodore64) ve “Trash-80”lere (TRS80-Tandy) düştükleri zamanlardı bunlar. 
        1983 yılında çevrilen War Games (Savaş Oyunları) adlı film, hacker’lığı farklı bir cepheden ele aldı: Bu film izleyicileri hacker’ların her bilgisayar sistemine girebileceği konusunda uyarıyordu. Ama alttan alta, hacker’ların çevresinde hep güzel kızların olduðu mesajı da alınıyordu. 

        Her geçen gün daha fazla kişi online dünya ile tanışıyordu. Askeri amaçlarla kurulan, sonradan üniversiteler arasında bir ağ haline gelen ARPANET, artık Internet’e dönüşüyordu; BBS’lere karşı tam bir ilgi patlaması yaşanıyordu. Milwaukee’de kendilerine The 414’s diyen bir hacker grubu, Los Alamos Laboratuarlarından Manhattan’daki Sloan-Kettering Kanser Merkezi’ne kadar değişen pek çok kurumun sistemine girdiler. Artık polisin işe karışma zamanı gelmişti! 
        Büyük Hacker Savaşı. 1984’te, kendisine Lex Luthor adını veren bir kişi Legion Of Doom (LOD - Kıyamet Lejyonu) adlı hacker grubunu kurdu. Adını bir çizgi filmden alan LOD, en iyi hackerlara sahip siber-çete olarak ün saldı. Ta ki grubun en parlak üyelerinden Phiber Optik isimli gencin, grubun bir diğer üyesi Erik Bloodaxe ile kavga edip kulüpten atılmasına kadar.

        Phiber’in arkadaşları rakip bir grup kurdular: Masters Of Deception (MOD). 1990’dan itibaren, LOD ve MOD, iki yıl boyunca online savaşlarını sürdürdüler, telefon hatlarını kilitlediler, telefon görüşmelerini dinlediler, birbirlerinin özel bilgisayarlarına girdiler. Sonra Federaller (FBI) olaya el attı, Phiber ve arkadaşları tutuklandı. Bu olay, bir dönemin sonunun geldiğini haber veriyordu. 


        Yasaklar (1986-1994). Devlet de online olunca, eğlence bitti. Kongre, ciddi olduklarını göstermek için, 1986’da Federal Computer Fraud and Abuse Act (Federal Bilgisayar Sahtekarlığı ve Kötüye Kullanma) adı altında bir yasa çıkardı. Bu boyutta hacker’lık ağır bir suç oldu! 
        1988’de Robert Morris Internet worm (Internet solucanı) adını verdiği bir hack yöntemi ile ortaya çıktı. Net’e bağlı 6000 bilgisayarı göçerterek, yeni yasayla yargılanan ilk kişi olma şerefine erişti. Sonuç: 10.000 dolar para cezası ve uzun süreli toplum hizmeti. 
        Bir süre sonra, tutuklananları saymak için parmaklar yetmemeye başladı. Aynı yıl Condor takma adıyla tanınan ünlü hacker Kevin Mitnick, Digital Equipment Company şirketinin bilgisayar ağına girdi. Yakalandı ve 1 yıl hapis cezasına mahkum oldu. Sonra adaşı Kevin Poulsen telefon hatlarına girmekle suçlandı. Kevin hemen ortadan kaybolarak adaletin uzun kolundan 17 ay boyunca saklandı. 
        Sundevil Operasyonu, ABD hükümetinin ülkedeki tüm hacker’ları (LOD dahil) ele geçirmek için 1990’da başlattığı bir operasyondur. Bu girişim bir işe yaramadı; ancak bir yıl sonraki Credux operasyonun MOD’un 4 üyesinin hapisle cezalandırılmasıyla sonuçlandı. Phiber Optik federal hapishanede bir yıl geçirdi. 

        1994’den Bugüne. 1994 yazında, Rus mafyasının eline düştüğü ileri sürülen Vladimir Levin adlı bir genç, Citibank’ın bilgisayarlarına girerek müşterilerin hesaplarından, bir söylentiye göre 10 milyon dolardan fazla parayı (resmi açıklamaya göre 2.5 milyon dolar) İsrail’deki banka hesaplarına transfer etti. Levin, 95 yılında Interpol tarafnndan Heatrow Havaalanında tutuklandı; Citibank yaklaşık 400.000 dolar haricinde tüm parasını geri aldı.

        Hackerların ardarda tutuklanması siber ortamda ani bir dolandırıcılık azalmasına neden oldu. 

        Bazı insanlar önceki hatalarından ders almadılar tabii. 1995 Şubatında Kevin Mitnick tekrar tutuklandı. Bu sefer FBI onu 20 bin kredi kartı çalmakla suçladı. Daha sonra çalınmış cep telefonu numaralarını kullanması nedeniyle dava açıldı. Davası 1999 Ocak ayında görülecek olmasına karşın, mahkeme onu kefaletle serbest bırakmama kararı aldı ve hapisteyken lehine delil toplamak için olsa bile bilgisayar kullanmasını yasakladı. Kevin Mitnick serbest kaldığında bile büyük olasılıkla göz altında tutularak bilgisayarlara erişimi engellenecek.

        Mitnick’in zincirlerle götürüldüğünü devlet televizyonunda görmek, online kanunsuzlarına karşı toplumun sempatisini azalttı. Net kullanıcıları “password sniffer” gibi araçlar kullanarak özel bilgilere sızan veya “spoofing” gibi bir makineyi kandırarak hacker’a giriş izni veren araçlar kullanan hacker’lardan dehşete kapıldılar. 

        Bunu ister anarşinin sonu, ister serbestliğin ölümü olarak adlandırın, artık hacker’lar romantik anti-kahramanlar, sadece bir şeyler öğrenmek isteyen farklı (tuhaf) insanlar olarak kabul edilmiyorlardı. Dünya piyasasını Net üzerinden yönetme vaadiyle filizlenen online ticaret, korunmaya ihtiyaç duyuyordu. Hacker’lar birden dolandırıcı niteliği kazandılar. Gerçi bazıları Mitnick’i kahraman ilan ettiler, yargılanmadan infaz edildiğini ileri sürerek serbest bırakılması için kampanyalar başlattılar ancak Mitnick dışında hiçbir hacker bu ölçüde benimsenmedi.

        Peki şimdilerde neler oluyor? Internet dünyasında yasadışı yöntemlere sıkça başvuruluyor, ancak eskisi gibi efsaneleşmiş isimler çıkmıyor. 

        Yine de Aldous Huxley’in bir zamanlar söylediği gibi, olaylar görmezlikten gelinmekle yok olmazlar. Bilgisayar yer altı dünyasında hep söylenen şu sözü de unutmayın: İyi bir hacker isen, ismini herkes bilir. Ama büyük bir hacker isen kimse kim olduğunu bilmez.    

Ü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.

        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.

        ğ 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.

        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.

        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 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.

        Linux kopyası edinmek için "Nereden Linux Bulurum?"’a bakın

        BSD Unix hakkında yardım alma ve kaynak edinme için www.bsd.org adresine bakın. 

        ğ 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.

        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, 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.

Yazının hazırlanmasında Olympos & Belgeler.Org’dan faydalanılmıştır.

Yazan: x-Master

Hiç yorum yok:

Yorum Gönder

Yorumlarınız bizim için önemlidir. Konu hakkında sormak istediklerinizi yazabilirsiniz.
Istanbul ithalat - ithal Çin ürünleri