Hangi Programlama Dilinden Başlamalıyım?

0x1D

Kıdemli Üye
23 Nis 2020
2,652
78
MARS
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 :
indeed-1.jpg



• PYTHON •



opengraph-icon-200x200.png


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.
- Python’da 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 •

140px-Java_Logo.svg.png



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

+ Java’nı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.
- Java’da, 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.
- 2019’dan 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.
- Java’nın ayrıntı düzeyi, kodu oldukça karmaşık hale getirir.

• C PLUS PLUS (C++) •

ISO_C%2B%2B_Logo.svg


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


C # Anders Heljsberg ve ekibi tarafından, Microsoft’un .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 #, Microsoft’un .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.

programming-3186084_960_720.png


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

interface-3614766_960_720.png


• 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 :D :

IMG_20200713_161002.jpg



robot-2027195_960_720.png


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


mobile-phone-illustration-5277385_960_720.png


• 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-dunyasinda-Turkiyenin-ayak-sesleri.jpg



• Oyun Yapmak İçin •


- C++
- C#
- Assembly
- Java

images


• Zararlı Yazılım Analizi İçin •

- C#
- C++
- C
- Assembly

W3Schools_logo.png


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:

Ego1st

Uzman üye
15 Mar 2018
1,112
25
Eline sağlık, yeni başlayacaklar için yararlı bir konu olmuş :))
 

hackishack

Katılımcı Üye
20 Haz 2020
824
158
Liverpool UK
Elinize sağlık. Bu konuya rağmen yarın birgün "Hangi programlama dilinden başlamalıyım?" diye konu açılacak ya, işte ona üzülüyorum. İnsanımız keşke biraz daha araştırmacı olabilse.
 

Patrick Jane

Uzman üye
1 May 2019
1,501
3
Cehennem
Çok yararlı bir konu.

Ellerine Sağlık.

Elinize sağlık. Bu konuya rağmen yarın birgün "Hangi programlama dilinden başlamalıyım?" diye konu açılacak ya, işte ona üzülüyorum. İnsanımız keşke biraz daha araştırmacı olabilse.

Bazı şeyler değişmez :)
İnstagram hesabı nasıl kapatılır.
Kapatılan instagram hesabını nasıl geri açarım.
Hangi dilden başlamalıyım.
Ban yemeyen hosting.

Bu konular mutlaka açılmaya devam etcektir.
İnsanımız hem araştırmacı değil hem de mucize bekliyor.
 
Moderatör tarafında düzenlendi:

SiyahYunus

Katılımcı Üye
4 Ocak 2020
560
2
Makalenin hepsini 1 kere daha okuyunca c# ile zararlı yazılım analizi yani AV (Anti virus) demişsin ama c# bu amaçla kullanılamıyor. Çünkü c# da sezgisel yorumlama denilen şey yok.Bu yüzden eksik bir dil olarak kabul edilir ve kullanılmaz. Antiviruslerde ama analiz gibi (örnek olarak) durumlarda kullanılır.
 

0x1D

Kıdemli Üye
23 Nis 2020
2,652
78
MARS
Eline sağlık, güzel olmuş :)

Elinize sağlık. Bu konuya rağmen yarın birgün "Hangi programlama dilinden başlamalıyım?" diye konu açılacak ya, işte ona üzülüyorum. İnsanımız keşke biraz daha araştırmacı olabilse.

Çok yararlı bir konu.

Ellerine Sağlık.



Bazı şeyler değişmez :)
İnstagram hesabı nasıl kapatılır.
Kapatılan instagram hesabını nasıl geri açarım.
Hangi dilden başlamalıyım.
Ban yemeyen hosting.

Bu konular mutlaka açılmaya devam etcektir.
İnsanımız hem araştırmacı değil hem de mucize bekliyor.

Makalenin hepsini 1 kere daha okuyunca c# ile zararlı yazılım analizi yani AV (Anti virus) demişsin ama c# bu amaçla kullanılamıyor. Çünkü c# da sezgisel yorumlama denilen şey yok.Bu yüzden eksik bir dil olarak kabul edilir ve kullanılmaz. Antiviruslerde ama analiz gibi (örnek olarak) durumlarda kullanılır.

C# ile zararlı yazılım yapılabiliyor. C# kodunun virüs olup olmadığını anlamak için c# bilmek gerekiyor, o anlamda.
çok güzel konu olmuş eline emeğine sağlık.

Güzelmişte öğrenmek için iyi bi bilgisayar ve bolca vakit lazım.

İyi bir bilgisayara ihtiyaç yok :)


Teşekkürler herkese :))
 

MendeburMarul

Katılımcı Üye
17 Haz 2020
659
0
Andromeda
Oyun hilelerinde oyunun yazildigi dilin kullanilmasi daha saglikli olur. Bin kere mesaj attim, Minecraftta ( java Editionda :) ) Bir hileyi C# ile yazin, hypixele girin 15 dakka bir deneyin. Direk ban.

Dedigim gibi, Ya Oyunun dili ile yazilacak ya da oyunun dili bastan duzenlenecek, Bunuda secenleri gormek istiyorum.
 

Ego1st

Uzman üye
15 Mar 2018
1,112
25
Oyun hilelerinde oyunun yazildigi dilin kullanilmasi daha saglikli olur. Bin kere mesaj attim, Minecraftta ( java Editionda :) ) Bir hileyi C# ile yazin, hypixele girin 15 dakka bir deneyin. Direk ban.

Dedigim gibi, Ya Oyunun dili ile yazilacak ya da oyunun dili bastan duzenlenecek, Bunuda secenleri gormek istiyorum.

Merhaba, bu dediğinize katılmıyorum. Örnek olarak Valve'in eskiden geliştirdiği ve çok popüler olan oyunlar Source oyun motoruyla geliştirilmiştir. Source oyun motoru ise C++ temellidir. Ama şu an çoğu Valve oyunundaki hileler C# ve C++ karışık gitmektedir.
 

MendeburMarul

Katılımcı Üye
17 Haz 2020
659
0
Andromeda
Merhaba, bu dediğinize katılmıyorum. Örnek olarak Valve'in eskiden geliştirdiği ve çok popüler olan oyunlar Source oyun motoruyla geliştirilmiştir. Source oyun motoru ise C++ temellidir. Ama şu an çoğu Valve oyunundaki hileler C# ve C++ karışık gitmektedir.

merhabalar, Ben c# ile hile yazilamac demedim.

Hileleri yazmakla bitmiyor. o hileyi kullanacak insanlar ban yememeli demi?

Buna gore konusuyorum ben. Oyunun programla dilinin disinda hile yazilirmi, yazilir.
 

ARSEF7

Katılımcı Üye
29 Şub 2020
853
191
ARS3F
Eline Sağlık tüm yönlerini ve amaçlarını yazman konuyu çok güzel bir hale getirmiş, öncü ve başarılı bir konu.
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.