Programlamaya Başlangıç – Hangi Dil – Kitap Önerisi

gamze hoca web gelecegin programlama

Merhabalar , diğer programlamaya başlangıç rehber yazılarımdan bu zamana bir çok yeni bilgi edindim, farklı dillerde tecrübeler kazandım. Haliyle diğer yazılarıma ekleme yapmak gerekti, bende baştan daha kapsamlı bir yazı yazmaya karar verdim.

Şimdi arkadaşların sorusu ısrarla şu oluyor ”Programlamaya nereden başlamalıyım , hangi dil ? ”
ve verilen cevapta ısrarla ”C# başla sonra C ye geç sonra Python öğren onu yala yut Java ile tabağı sıyır , he bak üstüne html css javascript koy , birde tatlı tabağıyla assembly ekle yanına, a dur dur hepsini boşver vb öğren kesinlikle” okurken gerçekten bazen bu kadar saçmalığa dayanamıyorum. Elimden geldiğince gördüğüm bu konulara yanıtlarını veriyorum, fakat bu tarz cevap veren çok kişi olduğu için , kişiler sürü psikolojisine kapılıyor.

Öncelikle şunu kesin bir şekilde oturtalım arkadaşlar, yeni başlayacak bir kişi ”kesinlikle” ayda bir dil değiştirmemeli. Hatta ve hatta 3 4 ay bir dile çalışıp, ben bunu öğrendim diyip başka dile geçmemeli. Bütün o öğrendikleri heba olur. Nedenine gelecek olursak , her dilin kendine has özellikleri vardır, programlamaya yeni başlayan biri dilden ziyade yazılım geliştirmeyi öğrenmelidir, veri yapılarını ve algoritmaları öğrenmelidir (eğer ki bu işi kariyer olarak gerçekleştirecekse).

Ha tamamen hobi amaçlı, boş vaktinde bir kaç satır kod yazıp hevesini tatmin etmek için öğrenecekse direk basit bir dilden başlayıp onun üzerine yoğunlaşabilir, böyle birisinede C C++ yok efendim assembly önerilmez.

Bir kişiye programlama dili tavsiyesi menüden yemek tavsiyesi verir gibi verilmez, şeker hastasına ekmek kadayıfı yedirilir mi ?

Öncelikle kişinin ilgilenmek istediği alanı belirlemesi istenir, eğer kişi kendisine hedef belirlediyse diller bir süzgeçten geçirilir, üzerinde çalışılacak alanla daha ilgili dillerden tavsiyeler verilir.

Şimdi gelin hep beraber bu alanları ve dillerin hangi alanlarda kullanilabileceğine örnekler verelim.

Alan seçmesi ilk başta bellidir, Web Programlama / Masaüstü Programlama / Mobil Programlama / Web Tasarım , bunlar programlamaya başlamak isteyenlerin genel hedefidir daha detaya inersek , Gömülü Sistem / IoT / Devre Tasarımı / Robotik (ve aklıma gelmeyen bir çok sistem) gibi alanlara ayrılır.

Şimdi bu sefer şöyle bir şey yapacağız , dilleri sıralayacağım , kendi tecrübelerimden de edindiğim kadarıyla bu diller nerelerde kullanılabilir , artıları eksileri nelerdir , sektörde yeri nedir ve bu dille ilgili önerebileceğim kitaplar nelerdir şeklinde açıklayacağım.
Dil sıralamasında aktif olarak kullandıklarımdan başlayıp aşağılara doğru ineceğim yani objektif yazacağım , ilk yazdığım dil en iyi dildir bunu öğrenin gibi bir durum yok arkadaşlar.

1 – ) PHP

Kullanım alanı : Web programlama

Arkadaşlar php nin kullanım alanı bariz bellidir, ”ben web programlama öğrenmek istiyorum, kolay olsun bol kaynak olsun bu kaynaklar Türkçe olsun” diyorsanız kesinlikle php öğrenmelisiniz.

Sektör : Php yi Türkiye’de bir çok küçük-orta çaplı şirket kullanır. Maaş oranı diğer dillere göre daha azdır. Fakat senior developersanız maaşınız biraz daha yükselir buna takılmayın, maaş oranı sizin ne kadar iyi bir yazılımcı olduğunuza göre değişir.

Veritabanı : Php ile en yaygın kullanılan veritabanı mysqldir. Veritabanı bağlantısı için PDO kullanmanızı tavsiye ederim.

Artılar : Öğrenmesi kolay , kaynak bol , örnek bol , freelance iş alabilirsiniz , sektörde işte bulabilirsiniz

Eksiler : Php yi biliyorum diyen çok kişi var , maaş oranı birazcık daha düşük

Kitaplar :http://www.dr.com.tr/Kitap/Adan-Zye-PHP/Riza-Celik/Egitim-Basvuru/Bilgisayar/urunno=0000000414134 Bende de mevcut olan php kitabıdır, hem php yi hem frameworklerini anlatır güzel bir kaynak.

2 – ) Java

Kullanım alanı : Enterprise Web , Masaüstü , Mobil Platform , Gömülü Sistemler , ML (machine learning)

Arkadaşlar Java uzun yıllardır popüler bir dildir, write once run everywhere mantığından dolayı ilk çıktığı günden beri çok tutulmuştur. Asıl hedefi daima enterprise üzerinedir.

Javayı öğrenecekseniz mutlaka web tarafını öğrenin tabii öncesinde sağlam bir core java bilgisi edinin.

Android sistemiyle beraber java çok daha fazla yaygınlaşmıştır, androidin ne kadar büyük bir pazar olduğunu söyleme gereği duymuyorum.

Bunun yanında java machine learning uygulamalarında da kullanılır , örneğin java ile yazılmış weka buna büyük bir örnektir.

Java için yapılmış proje örneği vermeyeceğim , ne kadar güçlü ve yaygın bir dil olduğu ortada.


Sektör : Gerek Türkiye’de gerekse dünyada Java çok fazla kullanılan maaş oranı en yüksek dillerden birisidir. Sektörde Java Web taraflı (enterprise) ve mobil alanda kullanılır.

Veritabanı : Oracle. Bunun yanında Java bir çok RDMBs ile çalışabilir. (mysql , sqlite , mongodb , mssql ) . ORM aracı olarak Hibernate en popüleridir. Tabiki JPA bilginizinde olması gerekir.

Artılar : Bir çok platforma yazılım geliştirebilirsiniz , başlangıç için kaynak çoktur , maaşları yüksektir , sektörde iş bulabilirsiniz bunun yanında freelance desktop ve mobil uygulama yapabilirsiniz

Eksiler : Enterprise Web taraflı başlangıcı gerçekten karışık gelebilir, karşınızda bir çok web frameworkü ve kavramı (spring,jee,struts, jsf, jsp, servlet, primefaces ,richfaces,), orm tool u , veritabanı , application server , web server seçeneği vardır bunlar içinde boğulabilirsiniz. Web taraflı kaynak daha azdır.

Kitaplar :
Kim Korkar Java’dan | D&R – Kültür, Sanat ve Eğlence Dünyası

Java ile Nesne Programlama | D&R – Kültür, Sanat ve Eğlence Dünyası

Java Collections Framework – Java Veri Yapıları | D&R – Kültür, Sanat ve Eğlence Dünyası

Bu Yazımızda Okuyun :   Policy Falsified Hatası Ne Demek? (2023)

3 – ) Python

Kullanım alanı : Web , Masaüstü scriptler (özellikle *nix sistemler) , ML (machine learning)

Arkadaşlar python hem web taraflı hemde masaüstü kullanabileceğiniz yazımı ve öğrenmesi kolay bir dildir. Yerli ve yabancı bir çok kaynak bulabilirsiniz. Programlamaya yeni başlayacak birisi için uygun bir dildir.

Python dili , machine learning data mining gibi uygulamalarda da kullanılır , scikit kütüphanesi matplotlib pandas gibi güçlü kütüphaneleri mevcuttur.

Python ile yapılmış bir çok büyük proje vardır, pythonu güçlü bir dil olarak görmeyenlere , instagram , dropbox, quora ve daha bir çok örnek gösterilebilir.

Python için learning curve diğer dillere göre daha yüksektir.

Web frameworkü olarak django/flask tavsiyemdir.

Sektör : Pythonu startup şirketler çok sever, kullanırlar. En son çalıştığım startupta python-django kullanarak geliştiriyordum web projesini. Onun dışında data mining , market basket analysis gibi bir çok işimizi python ile hallediyorduk.

Türkiyede diğer dillere göre daha az tercih edilir, ama genede sektörde yeri vardır, örneğin markafoni python kullanır. Bir çok teknoparkta python kullanan şirket mevcuttur. Ülkemizde daha çok web üzerine kullanılır.

Veritabanı : Sqlite , mongodb , mysql gibi bir çok db ile etkileşime geçebilir. ORM aracını sizin tercihinize bırakıyorum.

Artılar : Örğenmesi kolay , kaynak bol , alan geniş , kod yazması kolay ve zevkli bir dil. Maaş oranı php den yüksek , javadan düşük , ortalamanın biraz üzerinde diyebiliriz.

Eksiler : Türkiyede kullanımı diğer dillere göre daha az

Kitaplar : istihza.com

Python 3 | D&R – Kültür, Sanat ve Eğlence Dünyası

Django | D&R – Kültür, Sanat ve Eğ
lence Dünyası Bu kitap biraz eski , django 1.9 a uygun değil ama djangoya başlamak için fena sayılmaz. Djangonun kendi dökümantasyonuda iyi bir kaynak.

4 – ) C#

Kullanım alanı : Web , Masaüstü , Mobil (çok az)

Ülkemizde en çok kullanılan dillerden birisidir c# , gerek web taraflı gerekse masaüstünde gayet güçlü bir dildir. Çok fazla kaynak vardır , hem masaüstü hem web için istediğiniz kaynağa ulaşabilirsiniz.

Bir çok windows programı c# ile yazılır , orta ve büyük ölçekli şirketler hem web hem masaüstü uygulamalarını c# ile yapar.

Web tarafı için kesinlikle Asp.net MVC öğrenin ve yanında da tabiki entity framework.
Sektörde web taraflı olarak asp.net mvc daha fazla kullanılır ve rağbet görür. (Yıldız teknoparktan asp.net mvc developer olarak staja çağırmışlardı, gitsemiydim acaba :P)

Veritabanı : Mssql ve diğer RDBMs ile etkileşime geçebilir. ORM aracı olarak entity framework kullanılır.

Artılar : C# için kaynak boldur , bir çok şirket tarafından kullanılır , c# ile freelance iş alabilirsiniz , öğrenmesi de çok zor değildir.

Eksiler : C# için pek fazla – yok, ülkemizde yaygın bir dil olmasıda iş bulma olanağınızı kolaylaştırıyor , maaş oranı normaldir, kişinin bilgi ve tecrübesine göre artar.
Çok iyi c# bilen yeni mezun birisi iyi bir maaş ile işe başlayabilir.

Kitaplar :

Asp.Net Mvc5 | D&R – Kültür, Sanat ve Eğlence Dünyası Bende de bulunan mvc kitabı, oldukça güzel bir kaynaktır tavsiye ederim.

Her Yönüyle C# 6.0 | D&R – Kültür, Sanat ve Eğlence Dünyası

Bu Yazımızda Okuyun :   Programlama için En İyi Dizüstü Bilgisayar Nasıl Seçilir? 2020

5 – ) Javascript

Kullanım alanı : Web(frontend – backend), Mobil (Hybrid) , Masaüstü

Eveeet gelelim son zamanların popüler dili javascripte. Yanlış duymadınız, javascript artık mobil ve masaüstü programlamada da kullanılıyor. Hemde gayet güçlü. Ve web taraflı artık backend dili olarakta kullanılabiliyor.(Nodejs)

Nodejs den biraz bahsetmek istiyorum, asenkron yapısı ile güçlü bir backend oluşturan nodejs sektördepopülerliğini kazandı. Şuna değinmek istiyorum ki profesyönel kariyer platformu olan
linkedin backend servislerini nodejs e geçirdikten sonra sunucu sayısını 40 adetten 3 adete indirdi. Nodejs in asenkron yapısı sayesinde çok fazla isteği non-block olarak kolaylıkla karşılayabiliyor.

Mobil için Ionic Framework ile hybrid android ios uygulama geliştirebiliyorsunuz , yazdığım bir web projesinin mobil uygulamasını angularjs ve ionic kullanarak apiler yardımıyla rahatlıkla mobil uygulama haline getirdim. Çokta memnun kaldım açıkçası internetten veri etkileşimi olan bir uygulama yapacaksanız ionic ile yapmanız size bir çok kolaylık sağlar.

Desktop için ise github ın electron projesini duymadıysanız kesinlikle inceleyin. Electron – Build cross platform desktop apps with JavaScript, HTML, and CSS.

Electron ile arkaplanda chromium çalıştırarak web tasarımı yapar gibi html css kullanarak masaüstü program yapmanızı sağlar. Electron projesi ile yapılmış bir çok uygulama mevcuttur, bunlardan bazıları bir çoğumuzun kullandığı Atom editörü, git clienti olan Gitkraken ve aklıma gelmeyen daha bir çok proje. Projelere sitesinden bakabilirsiniz.

Sektör : Javascript sektörde front end olarak oldukça fazla kullanılır. Web Tasarımcı olacağım diyorsanız kesinlikle javascript öğrenmelisiniz. Ayrıca javascriptin yanında angularjs , reactjs gibi bir framework öğrenmenizi şiddetle tavsiye ederim. (Sahibinden ön yüzünde angularjs kullanıyor.)

Nodejs developer ların junior maaşları bile yüksektir arkadaşlar, kaynak daha azdır, öğrenmesi size karışık gelebilir ilk başta callbackler ile vs ama zevklidir, güzeldir. Web taraflı nodejs için express frameworkünü kullanabilirsiniz.


Veritabanı : Nodejs ile en yaygın olarak mongodb kullanılır, bunun yanında bir çok db ile etkileşime geçebilir.

Artılar : Bir çok yer front-end developer arar ve javascriptçi ister. Ve backend de nodejs kullanan şirketler az olsa da maaşları yüksektir.

Eksiler : Pek fazla eksiği yok , en büyük eksiği öğrenme sürecinde bazı sıkıntılar çekebilirsiniz. Biraz üstüne düşerek kolaylıkla aşabilirsiniz bunu.

Kitaplar :

Angularjs İle Web ve Mobil Uygulama Geliştirme | D&R – Kültür, Sanat ve Eğlence Dünyası Elimde bulunan angularjs kitabı, hem frontend hemde mobil için angular anlatıyor, gayet güzel.

Node JS | D&R – Kültür, Sanat ve Eğlence Dünyası Angularla beraber aldığım nodejs kitabım, gayet güzel anlatım ve örnekler var.

React Native | D&R – Kültür, Sanat ve Eğlence Dünyası

Bu Yazımızda Okuyun :   Veri Yapılarında Kullanılan Temel Terminolojiler Nelerdir ?

6 – ) C / C++

Kullanım alanı : Her yer (açıklamaya dikkat edin)

Arkadaşlar bu iki dil ile istediğinizi yapabilirsiniz, işletim sistemi yazmaktan, uçak savarların yazılımına kadar her şeyi. Örneğin web programlama yapmak için php bu dillerle yazılmış. (kaynak isteyenlere : wikipedia)

Bir çok işletim sisteminin temelinde bu diller var. Oyun motorları temelinde bu diller var, gömülü sistemler bu dillerle yazılır , işletim sistemlerine driverlar bu dillerle yazılır. Aklınıza gelebilecek bir çok şey bu dillerle yapılabilir. AMA , bir masaüstü yapmak istiyorsanız hayati performansa ihtiyacınız yoksa bu iki dil ile yapmanız saçmalıktır, bir web sitesi yapacaksanız bu iki dil ile yapmanız gene saçmalıktır. Saydığım diğer diller ile rahatlıkla yapabilirsiniz.

Eğer sistem programcılığına, gömülü sistemlere, robotiğe , sinyal işlemeye , oyun motoru gibi farklı farklı sektörerl konulara yoğunlaşacaksanız bu diller sizin için uygundur.

Sektör : Gömülü sistemci , savunma sanayi , sistem admin pozisyonlarındaki iş ilanlarının çoğunda bu iki dili isterler. C ve C++ ı bilen adam işsiz kalmaz.

Veritabanı : Hepsi

Artılar : Çok geniş kullanım alanı vardır. Sistemin arkaplan olaylarını , memory işlemlerini ve daha bir çok şeyi kavramanızı sağlar. Maaşları yüksektir.

Eksiler : Zordur arkadaşlar diğer dillere göre oldukça zordur, yıllar ister, çok fazla yıl. printf ve struct öğrenenin tamam ben C yi çözdüm demesi komiktir, saçları beyazlatır bu dil , 48 yaşına geldiğinizde 65 yaşında gözükürsünüz.

Arkadaşlar yukarıda saydığım diller en popüler dillerdendir, bunlar haricinde bir oldukça dil vardır, mesela web taraflı ruby (ruby on rails) , data analizinde R , genel amaçlı bir dil olan Go , sistem programlama için yazılmış Rust ve dahası..

Hepsini araştırıp hedefinize uygun olan dili öğrenmelisiniz. Ama her şeyden ilkin, veri yapılarını algoritmaları , fonksiyonel ve object oriented programlamayı öğrenmelisiniz.

Bakın siz masaüstü yada web programlamaya başlayacaksınızdır bunun için C öğrenmenize gerek yok fakat en azından , pointer yapısı nedir , bir dizi tanımladığınızda arkaplanda ne olur, o dizinin elemanlarına indexi ile erişmenizi elde eden hesaplama nelerdir bunu öğrenmelisiniz. Ne vakit dizi ne zaman sıralama kullanacağınızı veya kullanmayacağınızı bilmelisiniz.

Programlama dili yanında, sektörde kullanılan öteki araçlarıda bilmenizde yarar var, örneğin unit test yazımını öğrenin arkadaşlar, kurumsal şirketler projeleri unit kontrol yazarak geliştirir. Keza bununla birlikte takım halinde kodlandığı için git – git flow kullanımını öğrenin. Bir github-bitbucket hesabı açıp iyi fena demeden kodlarınızı oraya atın. Başkalarının kodlarına projelere bakın. Elinizden geliyorsa katkıda bulunmaya çalışın. İyi kod yazmak için iyi kodları okumak gerekir arkadaşlar.
Bunun yanında eğer kariyer amaçlı bu işe giriştiyseniz , bir oldukca alanda bilgi sahibi olmaya çalışın.

Bilgisayar mühendisliği yada yazılım mühendisliği okuyorsanız, her alanda malumat sahibi olmaya çalışın, bakın uzmanlaşın demiyorum ama eğer mühendis olacaksanız biri sorduğunda cahil kalmamanız icap eder. Network , sistem , yazılım , donanım hepsinde genel kültür olarak giriş seviyesinde de olsa bilginiz olsun. Hepsinde uzman olmanızı kimse sizden beklemez, maksat cahil kalmamak.

Ve dostlar şunu belirteyim, birden fazla dili öğrenebilirsiniz , ama ihtiyacınız var ise. Başlangıçta hiç birden fazla dille başlamayın , alanınızı seçin, dilinizi belirleyin onun üstüne yoğunlaşın . İlerledikçe sonradan ihtiyaçlarınıza yanıt veren başka bir dili öğrenebilirsiniz.

E-bültene Abone Ol Merak etmeyin. Spam yapmayacağız.

İlgili Yazılar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Hızlı yorum için giriş yapın.

meritking meritking giriş kingroyal meritking güncel giriş madridbet güncel giriş
grandpashabet grandpashabet giriş cratosroyalbet betwoon
deneme bonusu veren siteler
deneme bonusu veren siteler

Giriş Yap