Programlama alanlarına genel bir bakış

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
21,539
Bilgisayar programlama faaliyetleri, genel olarak aşağıdaki başlıklar altında sınıflandırılabilir
 
=== SCRİPT PROGRAMLAMA ===
Yorumlamalı çalışan programlama dillerinde program geliştirme faaliyetleri olarak özetlenebilir. Örneğin, Perl, Python, Bash Shell, PHP, Ruby, Lisp, Javascript, Node-js, TCL/TK ve başka birçok çeşit script programlama kullanılmaktadır. Eğer işlem performansı çok kritik değilse, veya kısa zamanda iş gören bir yazılım ortaya çıkarılması gerekiyorsa, veya programın kolaylıkla değiştirilebilmesi önemli ise, script programları yaygın olarak kullanılır.
 
=== WEB PROGRAMLAMA ===
Web programlama, aslında script programlama gibidir. Bir web sunucusunda çalışan ve bir tarayıcı ile erişilen program, alt katmanında gene script dillerinden birisini kullanır. PHP, Perl, Python, Javascript gibi diller yaygın olarak kullanılmaktadır. Web uygulamasının görsellik ile ilgili bölümleri ise HTML ve CSS gibi dillerle gerçekleştirilir.
 
=== UYGULAMA PROGRAMLAMA ===
Bir kişisel bilgisayar üzerinde çalışan, kullanıcı ile ya klayve/ekran/fare arayüzü üzerinden iletişim kuran, veya komut satırından çalıştırılıp belli bir işi tamamlayıp komut satırına geri dönen programlar. Bu programlar, işletim sisteminin sunduğu kütüphanelerle, belli bir amaca yönelik geliştirilmiş üçüncü parti kütüphaneler kullanabilir (örneğin grafik arayüzü var ise, bu arayüzün kütüphaneleri kullanılacaktır).
 
=== SİSTEM PROGRAMLAMA ===
Sistem programlama ile, uygulama programlarının kullanacağı kütüphaneler, işletim sisteminin parçası olan ve arka planda çalışan servis yazılımları geliştirilir. Aynı şekilde, işletim sisteminin bir parçası gibi çalışan, ve bilgisayar ağı üzerinde belli hizmetleri sunan servis yazılımları da sistem programlama kategorisine girer. Örneğin DNS hizmeti veren "Bind" yazılımı, bir sistem programıdır. Şifreleme hizmetleri sunan openssl kütüphanesinin geliştirilmesi de bir sistem programlama faaliyetidir.
 
=== KERNEL PROGRAMLAMA ===
İşletim sisteminin çekirdeğinde çalışacak aygıt sürücülerinin geliştirilmesi, veya işletim sistemi çekirdeğinin amaca uygun hale getirilmesi, özelleştirilmesi, çekideğe dahil edilecek özelliklerin belirlenip derlenmesine kernel programlama denir. Esasında kategori olarak düşünüldüğünde, bu faaliyet de sistem programlamaya girer. Ama kernel programlama son derece kapsamlı bir konu olduğu, ve API kütüphaneleri, arka planda çalışan servis yazılımları geliştirme usullerinden çok farklı bir şekilde çalışıldığı için, bunu ayrı bir kategoride incelemek daha faydalı olur.
 
=== FİRMWARE PROGRAMLAMA ===
Bir elektronik sistemin mikroişlemcisi veya mikrokontrolleri üzerinde çalışan, elektronik donanımı doğrudan yöneten, ve normal şartlarda kullanıcı tarafında müdahale edilemeyen kontrol yazılımlarına firmware denir. Zengin özellikleri sunan birçok elektronik devre artık firmware barındırır. Bir kısmında firmware güncellemesi mümkün değil iken, bir kısmında özel süreçlerle firmware güncellenebilmektedir.

Firmware programlama ile uğraşan bir programcı, yukarıda saydığımız bütün yazılım geliştirme kategorilerine az çok bulaşacaktır. Hepsi hakkında işini tamamlayabilecek düzeyde bilgi sahibi olması gerekir. Bunun dışında, firmware yazılımları elektronik donanım ile çok yakından etkileştikleri için, bir firmware programcısının elektronik konusunda da yeterince bilgisi/tecrübesi olması lazım.
 
Programlamaya yeni gönül vermiş birisi olarak, bu disiplinlerin hangisinden başlamak gerekir? Bu, tamamen yazılım geliştirmenin hangi alanlarında çalışmak istediğinize bağlı. Eğer web arayüzü ve web bazlı çalışan uygulamalar ile uğraşmak istiyorsanız, script programlama ve web programlama konuları üzerinde kendinizi geliştirmeniz lazım.

Eğer grafik arayüzü olan (örneğin muhasebe veya stok takip programı) veya komut satırından çalışan (Örneğin verilen bir dosyayı LZO algoritması ile sıkıştıran bir program) bir uygulama programı yazacaksanız, faaliyet alanınız uygulama programlama olacaktır.

Firmware programlama ile de işe başlayabilirsiniz. Arduino'nun programlama dili ve PIC Basic bu işi yeni başlayanlar için oldukça kolay hale getiriyor. Ama ileri düzeyde firmware geliştirme oldukça zor bir disiplindir ve bütün programlama disiplinlerinde belli bir düzeyde bilgi gerektirir.

Yani özeltle, script programlama, uygulama programlama, veya Arduiono/PIC gibi geliştirme kartları ile işe başlayabilirsiniz. Bunlarla belli bir bilgi/tecrübe seviyesine geldikten sonra, sistem programlama ve kernel programlama konularında uzmanlaşmak için çalışmaya başlayabilirsiniz. Yeni başlayan birisinin sistem programlama veya kernel programlamaya direkt başlaması hiç mantıklı değildir, başarılı da olamaz.
 
Benim programlamaya başlamam, okuduğum üniversitenin bilgisayar laboratuvarında bulunan ZX Spectrum bilgisayarlarda BASIC ile oldu. Ama kısa süre sonra bilgisayar'ın donanımı daha fazla ilgimi çekmeye başladı ve bu bilgisayar'da kullanılan Z80 mikroişlemcisinin assembly'sini öğrendim. Sonra bilgisayar laboratuvarına ilk PC'ler gelmeye başladığında, C dilini öğrenmeye başladım ve değişik öğrenme amaçlı programlar ve basit oyun programları geliştirdim. Yani uygulama programlama şeklinde başlamış oldum.

Okul bitip ilk işe girdiğimde, "digital signal processor, DSP" denen ve matematiksel işlemler için optimize edilmiş özel mikroişlemciler üzerinde assembly dilinde firmware yazılımı geliştirdim. Sonra C dilinde linux ve windows altında sistem programlama, kernel programlama şeklinde devam ettim.
 

Çevrimiçi personel

Forum istatistikleri

Konular
5,654
Mesajlar
97,284
Üyeler
2,438
Son üye
İbrahimSönmez

Son kaynaklar

Son profil mesajları

cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Kesici/Spindle hızı hesaplamak için SpreadSheet UDF'leri kullanın, hesap makinesi çok eski kalan bir yöntem :)
Dr. Bülent Başaran,
Elektrik ve Elektronik Mühendisi
Yonga Tasarım Özdevinimcisi
Üç güzel "çocuk" babası
Ortahisar/Ürgüp/Konya/Ankara/Pittsburgh/San Francisco/Atlanta/Alaçatı/Taşucu...

Back
Top