Programcı, Hacker ve Yazılım Geliştiricisi Arasındaki Farklar Nelerdir?
Programcı, uygulama geliştirici ve hacker kavramları genellikle birbiriyle karıştırılır, biz de bu karışıklığa bir son verelim dedik.
Programcı, uygulama geliştirici ve hacker kavramları genellikle birbiriyle karıştırılır. Hangisinin ne kapasitede çalışabileceği, neye hakim olacağı çok net anlaşılmadığı gibi, genellikle de net bir şekilde birbirlerinden ayrılmaları da mümkün olmaz.
Genel olarak her üç olgunun da tanımları birbiriyle karışabiliyor. Onun için bir açıklık getirmekte fayda var. Bunun için ilk önce programcının en yaptığına, nelere hakim olabildiğine bakmakta fayda var. Çünkü programcılar teknolojik piramidin en üstünde yer alıyorlar.
Yukarıdaki teknolojik yetenek kapsamı grafiğine dikkat edecek olursanız, programcıların hem uygulama geliştiriciliği, hem de hacker katmanlarını kapsadığını görebilirsiniz. Buradan da anlayacağımız gibi uygulama geliştiricileri ve hackerlar programcılarının yeteneklerinin bir "tık" altında kalıyorlar.
Programcı Ne Yapar ve Kime Denir?
Programcılar değişik konularda ve çok miktardaki bilgiyi, bilgisayar ortamında hızlı ve sistematik bir biçimde çözümleyerek ve değerlendirebilen ve sistematik çözümlemeler üretebilen program yazan kişiler olarak tanımlanabilirler.
Programcılar birden fazla bilgisayar programlama dili bilirler. Bu dilleri elindeki verilere dayandırarak en uygun olanı seçecek şekilde analiz edebilirler. Programcılar, programlama dillerinin yazımında kullanılan kodlamaları da yapabilir hatta bunları yeri geldiğinde çeşitlendirerek uygulamaya koyabilirler. Programcılar 3 ana grup altında toplanırlar. Mimarlar, programların yazılması için gerekli teknolojileri belirler. Analistler, programların geliştirilmesi aşamasında, hatanın kaynaklarını bulan ve geliştiricilere raporlayan birimi oluşturur. Son olarak geliştiriciler de hedeflenen programı yazarlar ve teste tabi tutarlar. Çoğu programcı her grupta işlevsel olarak görev alacak kadar bilgili ve yetkilidir.
Kısaca programcılar;
- Kodun önce algoritmasını anlayan,
- Projenin ihtiyacına göre hangi kodun yazılacağını tespit eden,
- Kodu yazmadan önce sağlam ve verimli olacak kod yapısını kurabilen,
- Kodun doğru ve sağlam olduğunu anlamak için testler gerçekleştiren,
- Her yazılım dili hakkında bilgi sahibi insanlardır.
Yazılım Geliştirici Ne Yapar? Kimler Uygulama Geliştirebilir?
Yazılım geliştirici olmak için çok fazla yazılım bilgisine ve bir programcı kadar donanıma sahip olmak gerekmiyor. Mesela mobil yazılım geliştiriciler, Google’ın kullanıldığı açık kaynak kodlu bir yazılım olan Eclipse ve / veya benzeri programları kullanarak uygulama geliştirilebiliyor.
Bu anlattığım işin biraz amatör tarafı. Aslında Android uygulamaları yapılmak isteyenlerin biraz Java kodlama diline hakim olması gerekiyor. Windows uygulamalar için için C++ ya da C# ile tanışık olmak da fayda var. Öte yandan Apple (iOS) için Objective-C, Facebook için PHP ve ASP.NET gibi kodlama dilleri ile tanışık olmak son derece faydalı olabiliyor. Ancak bu kıstaslar bir programcı olmak için yine de yeterli olmuyor.
Öte yandan yazılım geliştiriciler algoritma yaratmak isteyen ve bundan keyif alan insanlar olarak da tanımlanabilir. Yazılım geliştiriciler, ihtiyaca yönelik çözümleri planlayarak ve uygulamaya geçirebilirler.
Ayrıca;
- Kodun nasıl geliştirileceğin
i, nelerin düzenlenmesi gerektiğini araştırır ve denerler. - Mevcut ürünün güçlü ve zayıf yönlerini değerlendirir, test ederler.
- Farklı sistemleri ve yazılım dillerini kullanabilirler.
- Örnek kodları yazmak yerine kodlar üretirler.
- Farklı altyapılar kullanmak ve denemek isterler, hatta çoğunun kendi oluşturduğu yazılım kurgulama altyapıları olabilir.
Hacker Kime Denir?
Hackerlar belli bir seviyeye kadar programlama ve sunucu kurma bilgi seviyesine sahip kişiler olarak tanımlanabilir. Bir hacker kendini geliştiren ve vizyonu açık, sürekli bir şeyler öğrenen insanlar olarak da tanımlanabilir. Bilgisayar programcılığı tabanından bakacak olursak hackerlar, bir exploit'e bir dizi düzeltme uygulayabilirler ve onu amaçları doğrultusunda kullanabilirler. Hazır yazılımları işleyebilir, değiştirebilir ya da yeniden yazabilirler. Yaptıkları aslında "reverse engineering" (tersine mühendislik) olarak tanımlanabilir. Var olan yapıları bozarak başka türlü çalışmalarını sağlayabilirler.
Aslında bundan bir süre önce hackerlarla ilgili detaylı bir yazımızı sizlerle paylaşmıştık. Hacker'ların bir şey ürettiğini söylemek son derece yanlış bir tanımlama olabilir. Çünkü hackerlar çoğunlukla üretilmiş şeyleri bozmakla meşguldürler.
Beyaz Şapkalı Hacker Kime Denir?
Yukarıda hackerların bir şeyleri bozmak için çalıştıklarını ve bir şey üretmediklerini söyledik. Peki iyi niyetli hackerlar da var mıdır? Beyaz şapkalı hacker olarak da bilinen bu kişiler esasında bir hackerın bildiği hemen hemen her şeyi bilir ancak bunu kötüye kullanmaz. Etik hacker da dediğimiz bu kişiler bir hata buldukları zaman bunu kötüye kullanmazlar, aksine ilgili kişileri haberdar ederek bu sorunu fark etmelerini sağlarlar. Beyaz şapkalı hackerlar bu yeteneğini bir misyon olarak benimseyip iyilik yapmak amacıyla kullanabilir ya da ücret karşılığında bu hizmeti verebilir. Genellikle siber güvenlik alanında çalışan beyaz şapkalı hackerlar bağlı oldukları kuruluşun daha güvende ve emniyette olması için çalışırlar.
Programcılardan, yazılım geliştiricilerinden ve hackerlardan bahsettiğimiz yazımızın sonuna geldik. Umuyoruz ki sizler için faydalı olmuştur. Siz programcı mı, yazılım geliştirici mi yoksa hacker mı olmak isterdiniz? Bunun gibi içeriklere, güncel oyun ve teknoloji haberlerine anında ulaşmak için Tamindir'i takipte kalmayı unutmayın.