Merhabalar. Bugün, "hangi programlama dilinden başlamalıyım ?" sorusuna araştırmalarım sonucunda yanıt vermeye çalışacağım. Öncelikle kendi fikirlerim ile başlamak isterim.
Şunu söylemeliyim ki: Hangi dili seçeceğiniz sizin amacınıza, hangi platformda çalışmak istediğinize, yaşınıza ve ne kadar zaman ayırabileceğinize göre değişir. Örneğin:
Yazılımda kendini aşmak isteyen bir kişiye visual basic çok basit kalır. Konumuz hangi dilden başlamalıyım olduğu için haliyle yazılıma yeni başlayanlara hitaben olacak.
Bu yüzden de yeni başlayanara bir kaç şey söyleyeceğim:
2-3 Günde Yazılım Öğrenilmez:
Bu işe kısa sürede oldu bitti yapmak için giriyorsanız hiç girmeyin. Hem vaktinize hem emeğinize yazık olur. Çünkü bu işler iki üç günlük işler değil.
Bolca zaman ve emek ister. Profesyönel bir yazılımcı olmak yıllarımızı alacaktır.
En iyi programlama dili diye bir şey yoktur :
En iyi programlama dili diye bir şey yoktur çünkü tüm dillerin farklı bir amacı vardır. Bu farklı amaçlardan kaynaklı olarak da farklı üstünlükleri vardır.
Bazıları hız, bazıları kütüphane, bazıları platform çokluğu, bazıları tool eklentilerinin uyumluluğu
Hangi dili seçeceğimize karar vermeden önce hangi dilin ne işe yaradığını, popülerliğini inceleyelim. Sonra da bu dilleri amaçlarına göre ayırırız ve kendimize en uygun
dili seçmemizde yardımcı olur. Burada haliyle tüm dilleri sayamayacağım. En popülerlere bir bakalım :
PYTHON
Python, birçok dilin aksine derlemeye gerek kalmadan çalıştırılabilir. (Yorumlanan)
Object Oriented Programming(OOP)i destekler ama Class açma zorunluluğu yoktur.
Kolay öğrenilebilir, kolayca okunabilir bir programlama dilidir.
Çapraz platform desteğine sahiptir, bir çok farklı platformda çalışılabilir.
Artı Yönleri
+ Python, tutarlı sözdizimine ve Django da dahil olmak üzere popüler çerçevelere sahip açık kaynaklı bir programlama dilidir.
+ Python, C / C ++ ile birinci sınıf entegrasyona sahiptir ve CPU ağır görevlerini C / C ++ a sorunsuz bir şekilde yükleyebilir.
+ OOP özellikleri sayesinde sınıflar ve nesneler oluşturmak ve kullanmak kolaydır.
+ Kapsamlı kütüphane desteği sunan Python; NumPy, Pandas, SciPy, Scikit-Learn gibi çeşitli kütüphanelerle matematik ve istatistik için güçlü bir araç seti sağlar.
+ Makine Öğrenimi, Derin Öğrenme ve Veri Bilimi gibi bilimsel alanlara hakimdir.
+ Başlangıç aşamasında öğrenilecek en iyi programlama dili olarak kabul edilir. Öğrenmesi ve kullanması çok kolaydır.
+ Kod okunabilirliğine odaklanır.
+ En karmaşık uygulamaları bile ölçeklendirme yeteneğine sahiptir
+ Prototip oluşturmak ve fikirleri daha hızlı test etmek için idealdir.
+ Sürekli büyüyen bir geliştirici topluluğuna sahiptir.
+ Çok sayıda platform ve sistem için destek sağlar
+ Geniş iş fırsatları vadeder.
Eksi Yönleri
- Mobil bilgi işlem için uygun değildir.
- Python kod yürütülürken fazladan iş yapmak zorundadır. Bu nedenle, hız projenizin için önemliyse önerilmez.
- Büyük miktarda bellek kullanır.
- Pythonda programlama kolay ve stressizdir ancak veritabanı erişim katmanı, JDBC ve ODBC gibi popüler teknolojilere kıyasla daha az gelişmiştir.
- Python dinamik olarak yazılan bir dildir, bir değişkenin veri türü her zaman değişebilir.
Tamsayı içeren bir değişken gelecekte bir dizeyi tutabilir ve bu da hatalara (Runtime Errors) yol açabilir.
Bu nedenle Python programcılarının, uygulamaların kapsamlı testlerini yapmaları gerekir.
Kullanıldığı Alanlar
Machine Learning
Web Uygulamaları
Örümcek türü yazılımlar
Bilimsel
Veri Analizi
Ağ ve Soket programcılığı
Sistem Yönetimi
JAVA
Java, açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye,
adım adım işletilen (yorumlanan - interpreted) bir dildir.
Java'nın sık kullanılan sloganlarından biri olan, çevirisi "bir defa yaz, her yerde çalıştır" olan "write once, run anywhere - WORA",Java'nın;
derlenmiş Java kodunun, Java'yı destekleyen bütün platformlarda tekrar derlenmeye ihtiyacı olmadan çalışabileceğini ima eder.
Artı Yönleri
+ Javanın son derece kararlı olduğu bilinmektedir
+ Yüksek kaliteli kod derleme ve yüksek stabilite sunar.
+ Çok sayıda açık kaynaklı kütüphane sunar.
+ Otomatik bellek ayırma ve çöp toplama özelliğine sahiptir.
+ OOP paradigmasını takip eder.
+ Yığın tahsis sistemi bulunur.
+ JVM yüksek derecede platform bağımsızlığı sunar.
+ Açık işaretçinin hariç tutulması ve sınıfların erişimini tanımlamaktan sorumlu bir güvenlik yöneticisinin dahil edilmesi nedeniyle son derece güvenlidir.
+ Dağıtılmış bilgi işlem için idealdir.
+ Veritabanı bağlantısı, ağ oluşturma, yardımcı programlar ve XML ayrıştırma gibi farklı görevleri gerçekleştirmek için çok sayıda API sunar.
+ Çoklu kullanım desteği sunar.
+ İşletim sistemleri arasında taşınabilir
+ Öğrenmesi kolaydır.
+ Geniş iş fırsatları vadeder.
Eksi Yönleri
- Java programları, yerel olarak derlenmiş olan C veya C ++ ile yazılmış programlardan, daha yavaştır.
- Javada, bellek çöp toplama yoluyla yönetilir, bu nedenle çöp toplayıcı her çalıştığında uygulamanın performansını bozar.
Bunun ana nedeni, çöp toplayıcının yalnızca diğer tüm dişler çalışmadığında çalışmasıdır.
- 2019dan beri Oracle, kullanıcıların iş, ticaret ve üretim gibi amaçlarla kullanıldığında Java Standard Edition 8 için ödeme yapmasını bekliyor.
Dolayısıyla, güncellemelere ve hata düzeltmeye ihtiyacınız olduğunda, sahip olduğunuz kullanıcı sayısı veya işlemci için ücretlendirilebilirsiniz.
- Şablonların olmaması yüksek kaliteli veri yapıları oluşturmayı sınırlar.
- Javanın ayrıntı düzeyi, kodu oldukça karmaşık hale getirir.
C PLUS PLUS (C++)
C++ 1979 yılından itibaren Bjarne Stroustrup tarafından geliştirilen genel amaçlı, orta seviyeli, Nesne Yönelimli Programlama,
Generic Programlama gibi programlama yöntemlerine imkan veren bir programlama dilidir.
Programlama dili ilk olarak C with Classess olarak adlandırılmış 1983 yılında C++ olarak değiştirilmiştir.
C++ C dilinden türemiştir bundan dolayı her C programı bir C++ programı olarak ifade edilir.
Bu özelliği sayesinde Nesne Yönelimli Programlamada yer alan kapsülleme, çok biçimlilik, kalıtım gibi imkanlara sahiptir.
C++ dili C programlama dilinin devamı niteliğinden olduğundan ve bellek yönetimi yapmaya imkan verdiğinden orta seviyeli programlama dilidir.
Artı Yönleri
+ C++, zengin derleyici ve kütüphane desteğine sahiptir.
+ C ++ ile oluşturulan programlar çoğu programlama dilinden daha hızlı yürütülür.
+ C ++, daha karmaşık programlama dillerini anlamanın temelini oluşturur.
+ Çok cihazlı, çok platformlu uygulama geliştirmek için C ++ tercih edilir.
+ Yüksek derecede taşınabilirlik sunan C, bir grup fonksiyon modülü ve bloğu ile prosedüre yönelik bir dildir.
Bunlar, hata ayıklama, test etme ve programların bakımını kolaylaştırır.
+ C ++ ile programlar daha verimli ve kolay anlaşılır.
+ C ++ , sistem donanımına yakın çalışır ve bu nedenle düşük bir soyutlama düzeyi sunarlar.
+ C ++, özel durum işleme ve işlev aşırı yüklemesi desteği sunar.
Kullanıldığı Alanlar
-Gömülü Sistemler
-Elekronik Kartlar
-Masaüstü Uygulamaları
-Hesaplama Uygulamaları
-Web Tarayıcı Oluşturma
-Oyun Programlama
-Derleyici Geliştirme
-Yeni Programlama Dili Geliştirme
-Yeni İşletim Sistemi Geliştirme
C SHARP
C # Anders Heljsberg ve ekibi tarafından, Microsoftun .NET platformu için geliştirilen nesne yönelimli bir programlama dilidir.
C# dili güçlü nesne yaklaşımlı (object-oriented) yapısı ile Microsoft .NET platformunun temelini oluşturur.
Söz dizimi bakımından C ve C++ benzemesi programcılar tarafından öğrenilmesini kolaylaştırmaktadır.
Artı Yönleri
+ C #, C tarafından takip edilen neredeyse benzer sözdizimini kullanır, böylece C dilini bilenler için anlaşılması kolaydır.
+ Windows ile derinlemesine entegrasyon sunar.
+ Dinamik değişkenlere sahiptir.
+ Yerel kaynak yönetimi deyimlerini destekler.
+ Numaralandırma desteği sunar.
+ Bir işlevsellik ve destek havuzuna erişim sağlayan .NET kitaplığıyla tam olarak tümleşiktir.
C #, Microsoftun .NET frameworküyle masaüstü Windows uygulamaları geliştirmek için yaygın olarak kullanılır.
+ İşaretçi türlerine izin verilmediği için C / C++dan daha güvenlidir.
Eksi Yönleri
- C # tamamen Microsoft .Net çerçevesine dayanmaktadır, bu nedenle esnek bir dil değildir.
- C # yazılı kodunda bir şeyi değiştirmeden önce derlememiz gerekir. C #ın yavaş çalışmasının nedeni budur.
- "Güvensiz" bloklarda işaretleyicilere izin verir.
Kullanıldığı Alanlar
- Konsol uygulaması geliştirme
- Windows uygulaması geliştirme
- NET uygulaması geliştirme
- Web servisleri yazma
- Mobil uygulama geliştirme (PDA, cep telefonları vb. için)
- DLL yazma
-- Amaç Ve Platforma Göre Ayırmak Gerekirse --
Yukarda da dediğim gibi hangi platformda ve hangi amaçla çalışmak istediğinize göre öğrenmeniz gereken dil de değişir.
Masaüstü Uygulama Geliştirmek için
Masaüstü uygulamalar konsolda değil de belli bir arayüzde çalışan programlardır.
- C ve C++
- C# (.NET ile gelen .NET' e özgü çok popüler bir dildir)
- Java
- Python (Pyqt5 ve Tkinter kütüphaneleri)
- Delphi (Pascal dilinin gelişmişidir.)
Web Uygulamaları İçin
- HTML
Sayfanın temelini oluşturan, kaç buton olacağı , kaç kutu olacağı gibi şeyleri belirttiğiniz dildir.
- CSS
Html ile sayfada belirttiğiniz şeylerin, konumunu, rengini, büyüklüğünü vs. belirlediğiniz dildir. Css ile elementlere hareket dahi verebilirsiniz.
- Java / JavaScript
Sayfanın dinamikliğini sayğlamak istiyorsanız mutlaka javascript kullanın.
- ASP
- PHP
Sitede işlemler için asp.net veya php kullanmanız gerekiyor.
- C#
Html ile css arasındaki köprüyü sağlıyor.
- Bir Veritabanı dili (Örnek : SQL)
Örneğin bir kayıt sistemi için şifre ve passleri tutmak için veritabanı dili öğrenmeniz gerekmekte.
Bu dilleriden bazıları olmadan site yapılır mı ? Tabii ki yapılır ama kaliteli olur mu bilinmez. Kullandığınız diller arttıkça yapabileceğiniz şeylerin sayısı da artıyor
ve doğal olarak daha güzel bir site elde ediyorsunuz.
Şu örneği bırakmadan geçemeyeceğim :
Yapay Zeka İçin
- Python
- R dili
- Java
- Lisp
- Haskell
Oyun Hileleri İçin
- C++
- C#
Oyun hilelerinde genellikle bu diller kullanılır.
Eğer istediğiniz hile basit tıklamalar vs. ise çoğu dilde yapabilirsiniz. Eğer oyun dosyalarına etki edecek iseniz üstteki diller işinizi görecektir.
Mobil Programlama
- Java
- Swift
- Kotlin
Mobil Programlamada kullanılan en popüler diller bunlardır. Eğer IOS için bir program yapmayı düşünüyor iseniz Java kullanamazsınız.
Eğer hem Android hem de IOS platformlarda program yazmak istiyorsanız Kotlin'i tercih edebilirsiniz.
Oyun Yapmak İçin
- C++
- C#
- Assembly
- Java
Zararlı Yazılım Analizi İçin
- C#
- C++
- C
- Assembly
Artık hangi dili seçeceğinizi biliyorsunuz. Peki nasıl öğreneceğim diyorsanız:
Öncelikle şunu söylemeliyim ki elimizin altında çok büyük bir nimet var, internet. Basit bir Google'lama ile milyonlarca sonuca ulaşabiliyorsunuz.
Ben öğrenirken kitap kullanmadım o yüzden kitap önerisi yapamayacağım. Aslında kitap alıp almamak biraz da sizin çalışma tarzınız ile alakalı.
Forumda programlama kategorileri var her dil için. Onlara da bakabilirsiniz.
Türkçe bir kaynak olarak BTK Akademi'yi önerebilirim. Kurslara girmek için e-devlet şifreniz olmalı. Sertifika da alabiliyorsunuz.
Bunların dışında :
https://www.youtube.com/channel/UCioGsGsoicTWp0tTTRpC_Ow
https://www.youtube.com/user/sadikturan41
https://sanalkurs.net/
https://www.youtube.com/channel/UCZNZj3mkdCGJfCoKyl4bSYQ/playlists
https://www.w3schools.com/
Şunu söylemeliyim ki: Hangi dili seçeceğiniz sizin amacınıza, hangi platformda çalışmak istediğinize, yaşınıza ve ne kadar zaman ayırabileceğinize göre değişir. Örneğin:
Yazılımda kendini aşmak isteyen bir kişiye visual basic çok basit kalır. Konumuz hangi dilden başlamalıyım olduğu için haliyle yazılıma yeni başlayanlara hitaben olacak.
Bu yüzden de yeni başlayanara bir kaç şey söyleyeceğim:
2-3 Günde Yazılım Öğrenilmez:
Bu işe kısa sürede oldu bitti yapmak için giriyorsanız hiç girmeyin. Hem vaktinize hem emeğinize yazık olur. Çünkü bu işler iki üç günlük işler değil.
Bolca zaman ve emek ister. Profesyönel bir yazılımcı olmak yıllarımızı alacaktır.
En iyi programlama dili diye bir şey yoktur :
En iyi programlama dili diye bir şey yoktur çünkü tüm dillerin farklı bir amacı vardır. Bu farklı amaçlardan kaynaklı olarak da farklı üstünlükleri vardır.
Bazıları hız, bazıları kütüphane, bazıları platform çokluğu, bazıları tool eklentilerinin uyumluluğu
Hangi dili seçeceğimize karar vermeden önce hangi dilin ne işe yaradığını, popülerliğini inceleyelim. Sonra da bu dilleri amaçlarına göre ayırırız ve kendimize en uygun
dili seçmemizde yardımcı olur. Burada haliyle tüm dilleri sayamayacağım. En popülerlere bir bakalım :
PYTHON
Python, birçok dilin aksine derlemeye gerek kalmadan çalıştırılabilir. (Yorumlanan)
Object Oriented Programming(OOP)i destekler ama Class açma zorunluluğu yoktur.
Kolay öğrenilebilir, kolayca okunabilir bir programlama dilidir.
Çapraz platform desteğine sahiptir, bir çok farklı platformda çalışılabilir.
Artı Yönleri
+ Python, tutarlı sözdizimine ve Django da dahil olmak üzere popüler çerçevelere sahip açık kaynaklı bir programlama dilidir.
+ Python, C / C ++ ile birinci sınıf entegrasyona sahiptir ve CPU ağır görevlerini C / C ++ a sorunsuz bir şekilde yükleyebilir.
+ OOP özellikleri sayesinde sınıflar ve nesneler oluşturmak ve kullanmak kolaydır.
+ Kapsamlı kütüphane desteği sunan Python; NumPy, Pandas, SciPy, Scikit-Learn gibi çeşitli kütüphanelerle matematik ve istatistik için güçlü bir araç seti sağlar.
+ Makine Öğrenimi, Derin Öğrenme ve Veri Bilimi gibi bilimsel alanlara hakimdir.
+ Başlangıç aşamasında öğrenilecek en iyi programlama dili olarak kabul edilir. Öğrenmesi ve kullanması çok kolaydır.
+ Kod okunabilirliğine odaklanır.
+ En karmaşık uygulamaları bile ölçeklendirme yeteneğine sahiptir
+ Prototip oluşturmak ve fikirleri daha hızlı test etmek için idealdir.
+ Sürekli büyüyen bir geliştirici topluluğuna sahiptir.
+ Çok sayıda platform ve sistem için destek sağlar
+ Geniş iş fırsatları vadeder.
Eksi Yönleri
- Mobil bilgi işlem için uygun değildir.
- Python kod yürütülürken fazladan iş yapmak zorundadır. Bu nedenle, hız projenizin için önemliyse önerilmez.
- Büyük miktarda bellek kullanır.
- Pythonda programlama kolay ve stressizdir ancak veritabanı erişim katmanı, JDBC ve ODBC gibi popüler teknolojilere kıyasla daha az gelişmiştir.
- Python dinamik olarak yazılan bir dildir, bir değişkenin veri türü her zaman değişebilir.
Tamsayı içeren bir değişken gelecekte bir dizeyi tutabilir ve bu da hatalara (Runtime Errors) yol açabilir.
Bu nedenle Python programcılarının, uygulamaların kapsamlı testlerini yapmaları gerekir.
Kullanıldığı Alanlar
Machine Learning
Web Uygulamaları
Örümcek türü yazılımlar
Bilimsel
Veri Analizi
Ağ ve Soket programcılığı
Sistem Yönetimi
JAVA
Java, açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye,
adım adım işletilen (yorumlanan - interpreted) bir dildir.
Java'nın sık kullanılan sloganlarından biri olan, çevirisi "bir defa yaz, her yerde çalıştır" olan "write once, run anywhere - WORA",Java'nın;
derlenmiş Java kodunun, Java'yı destekleyen bütün platformlarda tekrar derlenmeye ihtiyacı olmadan çalışabileceğini ima eder.
Artı Yönleri
+ Javanın son derece kararlı olduğu bilinmektedir
+ Yüksek kaliteli kod derleme ve yüksek stabilite sunar.
+ Çok sayıda açık kaynaklı kütüphane sunar.
+ Otomatik bellek ayırma ve çöp toplama özelliğine sahiptir.
+ OOP paradigmasını takip eder.
+ Yığın tahsis sistemi bulunur.
+ JVM yüksek derecede platform bağımsızlığı sunar.
+ Açık işaretçinin hariç tutulması ve sınıfların erişimini tanımlamaktan sorumlu bir güvenlik yöneticisinin dahil edilmesi nedeniyle son derece güvenlidir.
+ Dağıtılmış bilgi işlem için idealdir.
+ Veritabanı bağlantısı, ağ oluşturma, yardımcı programlar ve XML ayrıştırma gibi farklı görevleri gerçekleştirmek için çok sayıda API sunar.
+ Çoklu kullanım desteği sunar.
+ İşletim sistemleri arasında taşınabilir
+ Öğrenmesi kolaydır.
+ Geniş iş fırsatları vadeder.
Eksi Yönleri
- Java programları, yerel olarak derlenmiş olan C veya C ++ ile yazılmış programlardan, daha yavaştır.
- Javada, bellek çöp toplama yoluyla yönetilir, bu nedenle çöp toplayıcı her çalıştığında uygulamanın performansını bozar.
Bunun ana nedeni, çöp toplayıcının yalnızca diğer tüm dişler çalışmadığında çalışmasıdır.
- 2019dan beri Oracle, kullanıcıların iş, ticaret ve üretim gibi amaçlarla kullanıldığında Java Standard Edition 8 için ödeme yapmasını bekliyor.
Dolayısıyla, güncellemelere ve hata düzeltmeye ihtiyacınız olduğunda, sahip olduğunuz kullanıcı sayısı veya işlemci için ücretlendirilebilirsiniz.
- Şablonların olmaması yüksek kaliteli veri yapıları oluşturmayı sınırlar.
- Javanın ayrıntı düzeyi, kodu oldukça karmaşık hale getirir.
C PLUS PLUS (C++)
C++ 1979 yılından itibaren Bjarne Stroustrup tarafından geliştirilen genel amaçlı, orta seviyeli, Nesne Yönelimli Programlama,
Generic Programlama gibi programlama yöntemlerine imkan veren bir programlama dilidir.
Programlama dili ilk olarak C with Classess olarak adlandırılmış 1983 yılında C++ olarak değiştirilmiştir.
C++ C dilinden türemiştir bundan dolayı her C programı bir C++ programı olarak ifade edilir.
Bu özelliği sayesinde Nesne Yönelimli Programlamada yer alan kapsülleme, çok biçimlilik, kalıtım gibi imkanlara sahiptir.
C++ dili C programlama dilinin devamı niteliğinden olduğundan ve bellek yönetimi yapmaya imkan verdiğinden orta seviyeli programlama dilidir.
Artı Yönleri
+ C++, zengin derleyici ve kütüphane desteğine sahiptir.
+ C ++ ile oluşturulan programlar çoğu programlama dilinden daha hızlı yürütülür.
+ C ++, daha karmaşık programlama dillerini anlamanın temelini oluşturur.
+ Çok cihazlı, çok platformlu uygulama geliştirmek için C ++ tercih edilir.
+ Yüksek derecede taşınabilirlik sunan C, bir grup fonksiyon modülü ve bloğu ile prosedüre yönelik bir dildir.
Bunlar, hata ayıklama, test etme ve programların bakımını kolaylaştırır.
+ C ++ ile programlar daha verimli ve kolay anlaşılır.
+ C ++ , sistem donanımına yakın çalışır ve bu nedenle düşük bir soyutlama düzeyi sunarlar.
+ C ++, özel durum işleme ve işlev aşırı yüklemesi desteği sunar.
Kullanıldığı Alanlar
-Gömülü Sistemler
-Elekronik Kartlar
-Masaüstü Uygulamaları
-Hesaplama Uygulamaları
-Web Tarayıcı Oluşturma
-Oyun Programlama
-Derleyici Geliştirme
-Yeni Programlama Dili Geliştirme
-Yeni İşletim Sistemi Geliştirme
C SHARP
C # Anders Heljsberg ve ekibi tarafından, Microsoftun .NET platformu için geliştirilen nesne yönelimli bir programlama dilidir.
C# dili güçlü nesne yaklaşımlı (object-oriented) yapısı ile Microsoft .NET platformunun temelini oluşturur.
Söz dizimi bakımından C ve C++ benzemesi programcılar tarafından öğrenilmesini kolaylaştırmaktadır.
Artı Yönleri
+ C #, C tarafından takip edilen neredeyse benzer sözdizimini kullanır, böylece C dilini bilenler için anlaşılması kolaydır.
+ Windows ile derinlemesine entegrasyon sunar.
+ Dinamik değişkenlere sahiptir.
+ Yerel kaynak yönetimi deyimlerini destekler.
+ Numaralandırma desteği sunar.
+ Bir işlevsellik ve destek havuzuna erişim sağlayan .NET kitaplığıyla tam olarak tümleşiktir.
C #, Microsoftun .NET frameworküyle masaüstü Windows uygulamaları geliştirmek için yaygın olarak kullanılır.
+ İşaretçi türlerine izin verilmediği için C / C++dan daha güvenlidir.
Eksi Yönleri
- C # tamamen Microsoft .Net çerçevesine dayanmaktadır, bu nedenle esnek bir dil değildir.
- C # yazılı kodunda bir şeyi değiştirmeden önce derlememiz gerekir. C #ın yavaş çalışmasının nedeni budur.
- "Güvensiz" bloklarda işaretleyicilere izin verir.
Kullanıldığı Alanlar
- Konsol uygulaması geliştirme
- Windows uygulaması geliştirme
- NET uygulaması geliştirme
- Web servisleri yazma
- Mobil uygulama geliştirme (PDA, cep telefonları vb. için)
- DLL yazma
-- Amaç Ve Platforma Göre Ayırmak Gerekirse --
Yukarda da dediğim gibi hangi platformda ve hangi amaçla çalışmak istediğinize göre öğrenmeniz gereken dil de değişir.
Masaüstü Uygulama Geliştirmek için
Masaüstü uygulamalar konsolda değil de belli bir arayüzde çalışan programlardır.
- C ve C++
- C# (.NET ile gelen .NET' e özgü çok popüler bir dildir)
- Java
- Python (Pyqt5 ve Tkinter kütüphaneleri)
- Delphi (Pascal dilinin gelişmişidir.)
Web Uygulamaları İçin
- HTML
Sayfanın temelini oluşturan, kaç buton olacağı , kaç kutu olacağı gibi şeyleri belirttiğiniz dildir.
- CSS
Html ile sayfada belirttiğiniz şeylerin, konumunu, rengini, büyüklüğünü vs. belirlediğiniz dildir. Css ile elementlere hareket dahi verebilirsiniz.
- Java / JavaScript
Sayfanın dinamikliğini sayğlamak istiyorsanız mutlaka javascript kullanın.
- ASP
- PHP
Sitede işlemler için asp.net veya php kullanmanız gerekiyor.
- C#
Html ile css arasındaki köprüyü sağlıyor.
- Bir Veritabanı dili (Örnek : SQL)
Örneğin bir kayıt sistemi için şifre ve passleri tutmak için veritabanı dili öğrenmeniz gerekmekte.
Bu dilleriden bazıları olmadan site yapılır mı ? Tabii ki yapılır ama kaliteli olur mu bilinmez. Kullandığınız diller arttıkça yapabileceğiniz şeylerin sayısı da artıyor
ve doğal olarak daha güzel bir site elde ediyorsunuz.
Şu örneği bırakmadan geçemeyeceğim :
Yapay Zeka İçin
- Python
- R dili
- Java
- Lisp
- Haskell
Oyun Hileleri İçin
- C++
- C#
Oyun hilelerinde genellikle bu diller kullanılır.
Eğer istediğiniz hile basit tıklamalar vs. ise çoğu dilde yapabilirsiniz. Eğer oyun dosyalarına etki edecek iseniz üstteki diller işinizi görecektir.
Mobil Programlama
- Java
- Swift
- Kotlin
Mobil Programlamada kullanılan en popüler diller bunlardır. Eğer IOS için bir program yapmayı düşünüyor iseniz Java kullanamazsınız.
Eğer hem Android hem de IOS platformlarda program yazmak istiyorsanız Kotlin'i tercih edebilirsiniz.
Oyun Yapmak İçin
- C++
- C#
- Assembly
- Java
Zararlı Yazılım Analizi İçin
- C#
- C++
- C
- Assembly
Artık hangi dili seçeceğinizi biliyorsunuz. Peki nasıl öğreneceğim diyorsanız:
Öncelikle şunu söylemeliyim ki elimizin altında çok büyük bir nimet var, internet. Basit bir Google'lama ile milyonlarca sonuca ulaşabiliyorsunuz.
Ben öğrenirken kitap kullanmadım o yüzden kitap önerisi yapamayacağım. Aslında kitap alıp almamak biraz da sizin çalışma tarzınız ile alakalı.
Forumda programlama kategorileri var her dil için. Onlara da bakabilirsiniz.
Türkçe bir kaynak olarak BTK Akademi'yi önerebilirim. Kurslara girmek için e-devlet şifreniz olmalı. Sertifika da alabiliyorsunuz.
Bunların dışında :
https://www.youtube.com/channel/UCioGsGsoicTWp0tTTRpC_Ow
https://www.youtube.com/user/sadikturan41
https://sanalkurs.net/
https://www.youtube.com/channel/UCZNZj3mkdCGJfCoKyl4bSYQ/playlists
https://www.w3schools.com/
Son düzenleme: