Kullanıcı avatarı
Elawachi
Mesajlar: 2
Kayıt: 18 Haz 2017, 19:34
Konum: Hatay
İletişim:

Makale | Programlamaya Başlamak İstiyorsan Okumalısın!

19 Haz 2017, 16:07

Merhabalar,

Kiminin ilgisinden dolayı göz atmak isteyeceği, kiminin de merakına yenik düşüp kendini bu yazının içinde bulacağı "sıradan makaleler" çemberi dışında kalan yazıma hoş geldiniz. Bu yazımda kendimin "Programlama'da İlk Adım" olarak basitce tabir ettiğim konudan bahsedeceğim ve bunu yaparken de makale yapısı farklılığı itibariyle sizi sıkmadan daha sempatik bir yazı hazırlamayı umuyorum. Tek yapmanız gereken arkanıza yaslanıp kahve veya çayınızı kapıp makalemin tadını çıkarmaktır! :)



Bu Makaleden Sonra Karşılaşacağınız Muhtemel Sorunlar!

Kafanızda dönüp duran basit veya zorlu yapılacak projeler sorunu!

Hayatınızdaki günlük olayları istemsiz olarak programlama mantığına kolayca dökme sorunu!

Kodlarda ki mantık ve düzeni kavrayabilme sorunu!

Öğrenilen yeni bilgiler ile eskiden öğrenilmiş bilgilerin çatışma sorunu!

Okuyup öğrendikçe daha çok öğrenilecek bilgileri fark etme ve yılgınlık sorunu!

...

Tüm bunları göğüslemeye hazır mısınız?




Öncelikle eğer;

˟ Programlama dalını önemsiyor ve öneminin farkındaysanız,
˟ Programlama için gereken becerinin ve azmin kendinizde var olduğuna inanıyorsanız,
˟ Programlama da daha fazla dil öğrenme gereği duyuyor ve buna zaman ayırıyorsanız / ayıracaksanız,
˟ Projelerinizde ilk zorlandığınız yerde vazgeçmeyecekseniz,
˟ Proje veya gelişimlerinizi belirsiz bir tarihe ertelemeyecekseniz, siz de bir Yazılımcı olabilirsiniz.



Bilmek mi Yapabilmek mi?

Programcılık bilgi değil beceridir.

Bilgi, beceri ve arzunun kesişimi alışkanlıkları oluşturur. Bilgi, kuramsal bir paradigmadır; "Daha iyisi yapılabilir mi?, Uygulanabilir bir proje mi?, Hangi kod dizinlerini kullanmalıyım?" sorularının cevabıdır. Beceri, 'bu teknikleri ve mantığı nasıl uygulayabilirim?' sorusunun cevabıdır. Arzu ise dürtüdür ki "yapma isteği" sözüyle ifade edilebilir. İyi bir programcı olmak istiyorsanız bu üçüne de sahip olmalısınız.

Resim

Bill Gates '21. yüzyıl bilgiyi toplama çağı değil bilgiyi kullanma çağı olacaktır' diyor. Ancak bilgiyi kullanabilmek için önce ona sahip olmak gerekir.

Bir diğer önemli nokta ise programlamaya adımlarınızı atarken bu ilk adımların kıymetli olduğunun farkına varmanız gerekiyor. Yani araştırmalarınızı sadece bu tür makaleler ile sınırlı bırakmayın. Gün geçtikçe bu konular üzerine her türlü seminerler düzenlenebiliyor. Sizinde bu seminerlere katılmanız daha iyi bir seçim yapmanızı ve becerilerinizi geliştirmenize olanak sağlar. Aslında seminer kavramını da içine alan bir grup planlarsak;

˟ Bilgi kazandıran eğitimler (Konferanslar, kısa süreli seminerler vb.)
˟ Beceri kazandıran eğitimler (Kurslar, stajlar vb.)

Bu programlardan ilki, sizi bilinçlendirir. İkincisi ise bilgilerinizi beceriye dönüştürür. Bu bağlamda bu iki noktanın önemi de oldukça büyük. Özellikle ikinci nokta gelişiminiz ve hayatınız açısından daha ön planda. Bu noktanın önemini şu şekilde anlatırsam sanırım daha iyi farkına varacaksınız. Örneğin bir bisiklet sürmek hakkında kılavuzlar ve kitaplar okuyabilirsiniz fakat bu bilgiler bisikleti ilk kez sürmeniz için yeterli değildir. Aynı şekilde basketbol hakkında da bir çok kitap okumuş olabilirsiniz. Ama bu bilgiler sizi topu potadan geçirmek konusunda ustalaştırmaz. Aynı şekil de programlama konusunda da bir çok kitaplar satın alıp okuyabilir, videolar izleyebilirsiniz. Fakat bunları eyleme dökmedikten sonra bilgi kuruntusundan ziyade ertesi güne aklınızda bile kalmaz. Özellikle toplumumuzda birçoğumuz bildiklerimizi eyleme geçirme konusunda yeterince çaba göstermiyoruz. Halbuki asıl güç, bilgide değil eylemdedir.




Hangi Programlama Dillerinden Başlamalıyım?

Bu soruya doğru yanıtı aramadan önce bir takım seçimler yapmanız gerekiyor. Örneğin; "Seçeceğiniz bölümün size ne gibi faydaları olabilir? Hayatınızda ne gibi değişiklere yer verebilir? İleride mesleki hayatınızı nasıl yönlendirebilir?" Bu soruları kendinize sormanızı ve cevaplamanızı rica ediyorum. Ortaya çıkan cevaplarla programlamada ki alanınızı da bulabilirsiniz.
Öncelikle Programlamayı tüm yüzüyle yansıttığımızda; Mekanik, Elektronik, İşletim Sistemi Tabanlı ve Web Tabanlı Programlama şeklinde sıralayabiliriz. Bu alanlar kendi aralarında sayısız dil barındırıyor. Ayrıca bu alanlardan bazıları günümüzde ve gelecekteki teknolojiyi yaratırken; bazılarıda günümüzde kullanıcıya hizmet edip, günlük yaşantımızı daha kolay biçimde sunuyor. Düşündüğünüz mesleki hedefe göre bu alanlara da yönelebilirsiniz. Veya öncelikli olarak bir alandan başlayıp tam olarak hakim olduktan sonra diğer bir alana geçebiliriniz. Bu sizin kariyerinizde daha yüksek noktalara imza atmanızı sağlar. Aranızda Mekanik ve Elektronik alanına ilgi duyan biri olmayacağını tahmin ediyorum. Zaten bu dalları açarsak çok daha uzayacaktır. İşletim Sistemi Tabanlı (iSTP) ve Web Tabanlı Programlamadan (WTP) devam edelim biz.

İşletim Sistemi Tabanlı Programlama
    • Visual Basic Ailesi ve .NET Dilleri
    • C ve C++ Dilleri
    • Microsoft C# (6.0)
    • Java
    • Delphi
    • Pyhton
Tabii işletim sistemi tabanlı programlamayı (iSTP), sadece bu diller ile sınırlandıramayız. En başta özelliklerini belirgin bir şekilde ortaya koyan bir çok dil var. Yukarıdaki listede bulunan ilk 4 dil günümüzün en etkin iSTP dilleridir. Özellikle de aranızda C ailesine ve Java'ya göz atan birileri varsa bu 2 dilin birbirine çok benzediğini görecektir; dizilimler, syntaxlar vs. İşletim Sistemi Tabanlı Programlamanın sizlere ne gibi faydaları olabileceği konusuna gelirsek; günümüzde ve geleceğin anahtarı Elektronik ve Mekanikle birlikte İşletim Sistemi Tabanlı Programlama'da gizli. Örneğin; yapay zeka çekirdekli yazılımlar, ticari, endüstriyel, askeri sanayi gibi alanlarda işletim sistemi tabanlı programlama kullanılıyor. Bu alanlarda kendi içlerinde çok sayıda bölüme ayrılıyor. Ayrıca iSTP'yi etkin bir biçimde kullanıp hakim olmanız demek; ister özel şirketlerin ister devlet kurumlarının sizi havada kapması gibi bir şeydir.


Web Tabanlı Programlama
    • HTML
    • PHP
    • CSS
    • ASP
    • Java / JavaScript
    • VBScript, J#, JS ile ASP.NET
Daha önce bahsettiğim gibi Programlama alanlarının bazıları günümüzü ve geleceğimizi yönetirken bazılarıda günümüzde günlük deneyimlerimizi olabildiğince lüks şekilde yaşamamıza olanak sağlıyor. Web Tabanlı Programlama (WTP) ise günlük yaşantımızda etkin rol oynayan bir dal. "Örneğin YemekSepeti.com bulunduğu alanda hakim bir web sayfası. Bununla beraber yıllık kazancı 500 milyar doların üzerine çıkıyor. Aranızda bu fikri yapabilecek çok kişi vardır. Fakat başarısız olmanız kaçınılmaz. Çünkü Yemek Sepeti bulunduğu alanda koltuğunu güvenceye almış durumda. Bir başka örnek de aynı şekilde Sahibinden.com olarak da verilebilir."*1


Programlama dillerine nereden; nasıl başlamalıyım?

İlk kez programlamaya atıldığımda 13 yaşındaydım. Pek araştırma yaptığımı da söyleyemem. Size şuan "Kararınızı emin bir şekilde verin" diyorsam o günlerin pişmanlığı ve tecrübesidir. :) Yanımızda çalışan genç bir abiye heveslenerek programlamaya girmiştim. Direkt olarak Visual Basic 6.0 ile başladım. O zamanlar için eski bir dildi. Fakat bunu çok daha sonra farkettim. Bu süreçte bir çok kitap satın alıp öğrenmeye çalıştım. Zamanla projeler büyüyünce kodlar da büyümeye başladı. Daha pratik bir dilde mesela .NET ailesi veya C ailesinde 2,3 satırlık bir işlem VB 6.0'da çok daha fazla satıra sıçrıyordu. Ayrıca kodlardaki pratiklikde rezaletti. Bir süre sonra artık projelerimi karşılamamaya başladı. Bende artık VB 6.0'a ve dolayısıyla 2 yıllık serüvenime veda edip bir araştırma içerisine girdim. Gerek mesleki hedefim gerek bana hitap eden yönlerinden dolayı .NET ailesi ve C ailesinin en genç ferdi olan C# ile tanıştım. Gördüğünüz gibi bu işe araştırma yapmadan girmek büyük bir kayıp demektir. Bunları ciddiye almayıp rastgele bir alan seçerseniz bir süre sonra çeşitli sebeplerden dolayı zararlar görürsünüz.

Bir yazılım veya web uygulaması geliştirmek istiyorsanız mutlaka yukarıda verdiğim dillerden birini benimsemelisiniz. Aranızda işin ciddiyetini fark etmeyen arkadaşlarımız, "İlk önce biraz şu dilden ardından biraz da ötekinden öğrendim mi tamamdır." gibi bir düşünceye kapılıyor. Bir dile hakim olmadan başka bir dile atılmak felaketiniz olabilir. O yüzden dil seçimini iyi yapmalısınız. Seçtiğiniz dili diğer dillerden ayıran belirgin özellikleri ve kolaylık sağlayan yönleri önemlidir. Bazı yazılımcıların nedendir bilmem ama Cobol ile başladıklarını dahi gördüm. Önemli olan neyi, ne zaman ve nasıl kullanmanız gerektiğini bilmek; Programlama yeteneğini ve Nesne Yönelimli Programlama dillerinin metodolojilerine hakim olmanızdır. Ondan sonra C++, C# veya Java programlama dillerinin birbirine çok benzediğini göreceksiniz. Bunlar dil olarak benzer, fakat kullanılan teknolojiler ve UI aradaki farkı yaratır.

Bir developer olarak yapmanız gereken; dili öğrendikten sonra dil ile beraber kullanabileceğiniz teknolojilere hakim olmaktır. Örneğin; C# öğrendiğinizde, Windows Masaüstü programlama mı, Windows Phone programlama mı, Web programlama mı yoksa hepsine birden mi hakim olmak istiyorsunuz, bunu bulmanız gerekir. Bu teknolojilere çok kolay bir şekilde adapte olacağınıza eminim.

Eğer bir öğrenciyseniz, bu genellikle ilk işe girdiğiniz şirketin yaptığı işlerle doğru orantılı olmaktadır. Daha sonra uzmanlık alanınızı değiştirebilirsiniz. 


Programlama Dillerinin Yararları Nelerdir?

Programlama, hayatınızda daima bir adım önde olmanızı sağlar. Bir çok dil üzerinde uzman olmak kariyerinizde ciddi farklar yaratabilir. Hatta hayatınızı baştan aşağı değiştirebilir. 
Ayrıca programlama dilleri insana en başta düşünmeyi öğretir. Programlama sırasında işlevsel açıdan mantığı kurmak, empati yapmak gibi şeyler her daim sizin düşünme ve hayal kurma becerinizi üst düzeylere taşır. Bu nedenden dolayı, ileride mesleğiniz bilgisayar hakkında olmayacaksa bile boş vakitlerinizde programlama ile uğraşabilirsiniz. İlk zamanlarda beyninizi hayli zorlasa da ileri ki zamanlarda size artık bir hobi; eğlence kaynağı olacaktır. Hatta bazı insanlar bu işi sırf sinirlerini yatıştırmak ve dikkat toplamak için yapar. Kısacası düşünmenin programlama dilleri üzerindeki etkisini anahtar olarak açıklayabiliriz. Düşünce kabiliyetlerinizi geliştirmek size daha pratik daha stratejik bir aklın yolunu açar.

Makaleme burada nokta koyuyorum. Bir önceki makalemin açıklarını elimden geldiğince sizlerin önerisi ve yorumlarıyla desteklemeye çalıştım. Ayrıca eklemek istedikleriniz olursa konu altından yorum atabilirsiniz. Unutmayın ki bu makalenin sizlerinde desteğiyle zenginleşmesi; bu yolda ki yeni okurlarımız için bir ışık olacaktır. Tekrar görüşmek üzere.


Yazım : Yusuf DURAK | Software Developer & Interpreter   
Best Wishes  




*1 - Symbiosis'den alıntı yapılarak düzenlenmiştir.

Kimler çevrimiçi

Bu forumu görüntüleyen kullanıcılar: Kayıtlı kullanıcı yok ve 1 misafir