Programlamaya Nereden Başlamalı?

Çoğu insan programlamaya başlamak ister ancak nereden başlayacağı konusunda bir fikirleri olmaz. Başta bir kursa gitmek şart diye düşünen programcı adayları bu konuda bilgili tanıdıklarıyla kısa bir konuşma ve internette kısa bir araştırmadan sonra kursa gitmenin aslında şart olmadığını, programlamanın internetten faydalanarak kendi başlarına öğrenebilecekleri bir şey olduğunu fark ederler. Bu keşfi yapan programcı adayları bu sefer da başka bir soruyu aratacaklardır google'a, "Programlamaya nereden başlamalıyım?". Bu sorunun cevabı her aday için farklıdır ancak bazı kaynaklar tarafından yanlış yönlendirilip daha sonra pişman olabilecekleri bir yola girebiliyorlar bu adaylar. Bu yazımda programlamaya yeni başlayacakları veya kendine programlama konusunda yeni bir yol çizmek isteyenleri elimden geldiğince bilgilendirmeye çalışacağım.



Sizin için doğru yolu bulmak için önce yapmanız gereken şey programlama öğrenmeyi ne için öğrenmek istediğinize karar vermek olmalıdır. Programlamada çeşit çeşit alanlar mevcuttur. Bunlardan en başlıcaları şunlardır:

  1. Masaüstü Uygulama Programcılığı
  2. Web Uygulama Programcılığı
  3. Konsol Uygulama Programcılığı
  4. Mobil Uygulama Programcılığı
Buna karar verdikten sonra seçtiğiniz alana en iyi hizmet edecek programlama dilini seçmeniz gerekmektedir ancak bu diller de çeşitliliği çoktur. Yazımın bundan sonraki kısmını alanlara göre bölümlere ayıracağım, zamanınız var ise tüm alanları okumanızı ve öyle karar vermenizi öneririm ancak kesin olarak ilgilendiğiniz bir alan varsa doğrudan o bölüme de geçiş yapabilirsiniz...

Masaüstü Uygulama Programcılığı


    Bu alanda dil seçiminizi etkileyecek önemli bir faktör kullandığınız işletim sistemidir. Masaüst uygulama programcılığında, yani kaba tabirle görsel, pencere pencere uygulamalar yapmakta başı C#, VB.Net gibi Microsoft dilleri çekse de bunun yanında Java'nın da çok hatrı sayılır bir yeri var diyebiliriz ancak Microsoft dilleri olarak adlandırdığım dilleri Windows dışında bir işletim sisteminde geliştirme yapmak mümkün olsa da kesinlikle önermiyorum. Yaptığınız uygulamalar cross-platform olarak adlandırdığımız her platformda çalışan bir uygulama olmayacaktır. Anlayacağınız bir .exe programı olacak ve OS X, Linux gibi diğer işletim sistemlerinde çalışmayacaktır. Peki nedir bu C#'ın VB.Net'in artıları? Bu iki dilin masaüstü uygulama programlamada bana göre en büyük artısı sürükle bırak yöntemi ile windows form applications oluşturmayı sağlamalarıdır. Bu şimdi size çok anlamlı gelmeyebilir ama zamanla bu dilleri başka diller ile karşılaştırdıkça artılarının farkına varacaksınız. Java'da gerek cross-platform olduğu için gerekse köklü, çok tercih edilen ve haliyle çok fazla kaynağı bulunan güçlü bir dil olması nedeniyle kesinlikle düşünülmesi gereken bir başka opsiyondur.

    Buraya kadar yazdıklarım kısa bir rehber niteliğindeydi. Bölüm sonlarında bu yazacağım tercihler ise tamamen benim kişisel tercihlerimdir ve katılmayanlar olabilir, bu nedenle kararınızı sadece burdan sonra yapacaklarıma göre vermeyin, iyi bir araştırma yağın.

    Bana göre amacınız Windows platformları için uygulama geliştirmek ise, cross-platform uygulama geliştirmek gibi bir amacınız yok ise kesinlikle C#. Bana göre C# gibi bir dil varken VB.Net'i tercih etmeye gerek yoktur. Ancak cross-platform geliştirmek yapmak istiyorsanız, ileride Android için mobil geliştirmeye de kayabilirim diyorsanız kesinlikle Java.



Web Uygulama Programcılığı


Web sektörü aslında web tasarımcılığı ve web programcılığı olarak ikiye ayrılır ancak bu iki grup da birbirleriyle çok iç içedir hatta küçük projelerde aynı kişi bile yapabilir bu iki görevi. 

Web tasarımcılar isminden de tahmin edebileceğiniz gibi bir websitesinin görünen yüzünü tasarlama işini üstlenirler. Bu insanlara Front-End Developer da denir. Web programcıları ise websitesinin arka, görünmeyen yüzünü programlama işini üstlenir. Bir sitede üye olma paneli, anket ve benzeri bir şey görürseniz bilin ki o siteye bir web programcının eli değmiştir. Bu kişilere Back-End Developer da denir.

Eğer bir renk uyumuyla ve öğelerin dış görünüşlerini düzenleme ile aranız iyi ise ve tam bir programcı olup algoritmaların arasında kendinizi kaybetmek istemiyorsanız web tasarım sizin alanınız. Front-End Developerlar HTML ve CSS dillerini iyice öğrenmiş, Javascript ile sitelerine istedikleri aktifliği verebiliyor ve aynı zamanda çeşitli programları kullanabiliyor olmalıdırlar.

Eğer istediğiniz şey gerçekten bir programcı olmaksa ve sitelerin güzel görünmesiyle değil doğru işlemesiyle uğraşmak istiyorsanız web programcılığı yani Back-End Developerlık tam size göre. Bir Back-End Developer'ın olmazsa olmazları HTML ve CSS hakkında orta düzey bir bilgi, ve seçecekleri bir web programlama dillinde uzmanlaşmak. Daha sonrasında Javascript gibi çeşitli diller ile bilgilerini kuvvetlendirebilirler.

Nelerdir bu web programlama dilleri:
  1. PHP - Açık kaynak kodlu, hakkında bol kaynak bulunan ve amaçları hobi olarak programlama yapmak ya da freelance işler almak olanlar için ideal bir dildir. Ayrıca sayacağım diller arasından öğrenmesi en kolay olan kabul edilir.
  2. ASP.NET - İsminden de tahmin edebileceğiniz gibi bu da .NET dillerinden biri yani Microsoft'un geliştirdiği bir dil. Türkiye'de profesyonel web programcısı olarak bu dil ile daha fazla iş olanağı bulabilirsiniz. PHP'ye göre daha güvenli olduğu söylenir. C# ya da VB.NET bilginiz varsa bu dili öğrenmeniz çok kolay olacaktır.
  3. JAVA - Asıl amacı web programlama olmasa da web programlama da hala aktif olarak kullanılan bir dil. Hali hazırda JAVA biliyorsanız bu dili web programlam için kullanmanız da hiç zor olmayacaktır.
  4. Python Django - Aslında bu tam olarak bir dil değildir. Asıl amacı konsol uygulamaları yapmak olan Python dilinin Django modülünden bahsediyoruz. Halihazırda Python biliyorsanız kullanılabilir ancak web programlama için sıfırdan Python ve Django öğrenmeyi kesinlikle önermiyorum.
Web programlamanın başlıca dillerini de verdikten sonra geldik bir bölüm sonu şahsi görüşüme daha. Tekrar ediyorum bu kısım tamamen benim şahsi görüşümdür ve sadece bu paragrafı okuyup bir seçim kesinlikle yapmayın. Bana göre bir Back-End Developer olmak için ya PHP ya da ASP.NET öğrenmelisiniz, tabi HTML ve CSS üzerine bir süre çalışıktan sonra yoksa PHP de ASP de oturmaz kafanızda. Bu iki dil arasından sizin tercihiniz ne derseniz PHP ama bu kişiden kişiye kesinlikle değişebilir.


Konsol Uygulama Programcılığı


Programlama aslında çok dışarıdan bakan birinin göreceği gibi oyunlardan ya da GUI denen görsel uygulamalardan ibaret değildir. Bir de konsol üzerinden çalışan uygulamalar vardır. Hemen hemen her dille yazılabilir bu konsol uygulamaları, C# ile VB.NET ile yazabileceğiniz gibi C++ ya da Python denen başka dillerle de yazılabilir. Bu diller saymakla bitmez ancak ben en çok kullanılan ve benim önerim olan dillerden bahsedeceğim. Kendi şahsi favorim Python'dır. Python (ve Ruby gibi birkaç başka dil) programlama dili olarak değil script dilleri olarak adlandırılır ancak programlama mantığı tamamen aynıdır. Aralarındaki en önemli farklar ise script dillerinin yazımının çok daha kolay olması ancak daha yavaş çalışmalarıdır. Yazımları kolay olduğu için yeni başlayanlar için biçilmiş kaftandır diye düşünüyorum. Programlama mantığını kavramanızda çok yardımcı olacaktır ancak bu dillerle de GUI uygulama yapabilicek olmanıza karşın bir C# ya da VB.NET kadar kolay olmayacaktır.

Bu bölümü çok uzun tutmayı düşünmüyorum ancak C++'dan da biraz bahsetmek istiyorum. C# gibi C++ da C türevi bir dildir ancak C dilinden hiç bahsetmeyi düşünmüyorum çünkü yeni başlamak isteyen bir programcı adayı için, özellikle de kendi başına öğrenecek biri için C dilinin çok uygun olduğunu düşünmüyorum çünkü adayı başlangıçtan fazla zorlayıp programlamadan caydırabilir. C++ da bana göre benzer özelliklere sahiptir ancak C++ hala günümüzde yaygın olarak kullanılan bir dil olduğu için zorluklara göğüs gerebileceğinizi düşünüyorsanız bu dille de başlayabilirsiniz. Benzer diller olan C ve C++ işletim sistemleri gibi gömülü sistemler programlamada çok kullanılır.

Bu bölümün şahsi fikrim olan özeti ise programlamaya yeni başlayan bir yazılımcı adayının Python gibi kolay bir dil ile başlayarak programlama mantığını kavramasını öneririm. Eğer ben hiç zaman kaybetmeden istediğim alana, o alanın dili ile başlamak istiyorum derseniz zorluklara hazırlıklı olun ve kolay pes etmeyin.

Mobil Uygulama Programcılığı


Mobil uygulama programcılığı konusunda aslında söylenecek çok şey yoktur çünkü diller çok nettir. Bu konuda ilk seçmemiz gereken hangi mobil platformu hedefleyeceğimiz.

İOS - Bu platform için uygulama geliştirmek istiyorsanız seçebileceğiniz iki dil vardır: Swift ve Objective-C. Objective-C daha eski ve sağlam bir dil olarak nitelendirilirken Swift Apple'ın yeni göz bebeğidir. Şahsen mobil uygulama alanına biraz uzağım ancak bildiğim kadarıyla Apple artık Objective-C'yi geliştirmek yerine Swift'i geliştiriyor, bu da dili sıfırdan öğrenecek biri için Swift'i daha mantıklı bir seçenek yapıyor. Yalnız İOS platformuna uygulama geliştirmek için tek bir gereklilik bulunmaktadır, Mac sahibi olmak. Bunun nedeni ise bu iki dilin sadece Maclerde bulunan XCode programı kullanılarak yazılabilmesidir.

Android - Android platformuna uygulama geliştirmenin en sık kullanılan yolu Java dilidir. Android Studio programında Java dili kullanılarak bu platforma uygulama geliştirebilirsiniz.

Gördüğünüz gibi Java dili hem mobil hem web hem de masaüstü uygulamalarında kullanıldığı için çok güçlü bir dildir ve kesinlikle tercih edilebilir.

Windows Phone - Son olarak Windows işletim sistemli akıllı telefonlara nasıl uygulama geliştirebileceğinizden bahsetmek istedim. Aslında bunun da tek bir sık kullanılan yolu var, Visual Studio programında C# dilini kullanmak.


Bu yazı da bu kadar, bir sonraki yazımda görüşmek üzere...

Yorumlar

Bu blogdaki popüler yayınlar

Modül Nedir?

Python 2 vs Python 3

Programcı Köşesi'nin Amacı