Programcılık ve Eğitimi Üzerine
Bu makaledeki asıl amaç programcılık ve öğrenim süreci üzerine aldığım farklı soruları yanıtlandırmaktır. Bana gelen maillerde; farklı platform üzerinde çalışan kişilerin yeni bir dili öğrenme süreci, programcılık üzerine sorular, eğitim kuruluşları hakkında bilgi, yazılım dillerinin zorluğu gibi sorular yer almakta. Bu yüzden bu makalenin yeni başlayanlara ya da başlamak isteyenlere bir noktada yardımcı olacağını düşünüyor.
Programcılık ve Yazılım Dilinde Profesyonelleşme
Programcılık temelde kolay olmayan ama zevkli bir iştir. Tabii kullanılan yazılım dili yapılan işlem ve uygulamalar da birbirinden farklı olduğu için buradaki ölçü göreceli oluyor. Diğer taraftan bana göre programcılık bir yazılım dilini öğrenmek değil programlamayı öğrenmektir. Kullanılan yazılım dilinin bir hedef değil de araç olarak görülmesi gerektiğini düşünüyorum. Genele baktığınızda zaten bir programcı yazılım diline bağımlı kalmadan farklı platformlarda çalışabilir. Yani eğer Actionscript 3.0 kullanıyorsanız Java veya JavaScript kullanmamanız için hiçbir neden yok. Tabii bu diller yapı olarak birbirine benzeyen diller, ama benim varmak istediğim nokta eğer bir dilde programlama yapabiliyorsanız, bu dilden bağımsız tamamen alakasız olan bir dili de kullanabilirsiniz. Farklı dil kullanımlarında önemli olan nokta dilin yapısını öğrenmektir, diğer bir deyişle dilin sözdizimini öğrenmektir. Geriye kalan parçalar ise ihtiyacınız oldukça yerine oturacaktır.Burada bir noktayı yanlış anlamanızı istemem, programcılığa yatkın olmakla bir programlama dilinde profesyonelleşmek birbirinden farklı şeyler. Programcılıkta iyi olmanız farklı platformlara daha kolay uyum sağlayabilmeniz demektir. Bir programlama dilinde profesyonelleşmek ise bir çalışma alanında gelişmeniz demektir. Profesyonellik ise her zaman daha iyi iş ortamı belirli çalışmalar demektir.Bunu şöyle düşünebilirsiniz, ben temelde bir web tasarımcısıyım. Kullandığım yazılım ve işaretleme dilleri temel olarak CSS, HTML, PHP, MySql, JavaScript. Uzmanlık alanım ise Actionscript 3.0. Flash, Flex veya AIR alanında herhangi bir müşterim proje aldıklarında uzmanlık alanım olduğu için benimle görüşüyorlar. Aldığım işlerin hemen hemen %60 ından fazlasında ise yukarıda saydığım platformları kullanıyorum. Aradaki farka gelirsek, kimse beni PHP’de çok iyiyim diye arayıp iş teklif etmeyecektir. Ama dinamik bir Flash sitesi yaptığımda ve bu sitenin arka planını PHP ile oluşturma kabiliyetine de sahip olmam gerekir.Web programcılığı ile masaüstü programcılığı arasındaki farklar çok büyük. Web programcılığında bir alanda uzmanlaşmış olabilirsiniz ama diğer alanlarda da gelişmeniz bazen kaçınılmazdır bazen gereklidir. Eğer Flash ve Actionscript ile çalışıyorsanız muhtemel olarak aşağıdaki platformlara bir şekilde ihtiyacınız olacak ve kullanmak zorunda kalacaksınız;PHP, MySql, JavaScript, XML, CSS, HTMLYukarıda sayılanlar web tasarım ve programlamanın temelleri sayılır. Belki PHP, Mysql yerine Asp.net ve Mssql olabilir ama diğer platformlara da her halükarda ihtiyacınız olacaktır.
Öğrenim Süreci
Programcılık bir süreçtir. Bir kitabı okuyarak programcı olamazsınız, bir kursa giderekte programcı olamazsınız. Maalesef üniversite bilgisayar bölümlerine giderekte programcı olamazsınız. Umarım yanlış anlaşılmam, bana göre programcının gelişme süreci çok uzundur. Yani Amerika ve İngiltere’de yayınlanan ve 24 Saatte Php, 24 Saatte Javasciprt ve benzeri kitaplardan 24 saatte hiçbir şey öğrenemezsiniz. 24 Saatte bir dili öğrenme yeteneğine sahipseniz zaten o kitaba ihtiyacınız yoktur. Programcı uzun yıllar sonucu programcı olur.Bence ideal süre 7 ila 10 yıl arasındadır. Bir dili çok iyi öğrenebilirsiniz, tüm zayıflıklarını, hatalarını, eksikliklerini, artılarını ama bu sizi daha iyi bir programcı yapmaz. İyi programcı geçmişte yazdığı kodu beğenmez. Yani yaptığınız uygulamanın aynısını 5 ay geçtikten sonra tekrar yapmanız gerektiğini düşünelim. 5 ay önce yazdığınız kod ile yeni yazdığınız kod arasındaki farka bakıp eski kodu beğenmeyen kişi iyi yazılımcıdır bence. Tabii buradaki ana mantık programcının mantıken sürekli olarak kendini geliştirmesidir. Geliştikçe daha önce yaptığınız hataları görüp yenileri yapmamaya ayrıca yeni yöntemlerle kodları daha kısa yazmaya başlayacaksınız. Mesela bir yıl önce 800 satırda yaptığınız uygulamayı bir yıl sonra 300 satırda yapmak gibi.
Programcılık Üzerine Eğitimler
Yazılım dilleri ile ilgili eğitimleri birçok kurumdan alabilirsiniz. Hangi eğitim kurumunun daha iyi ya da daha bilgili olduğu konusunda tarafsızım. Ama 1,5 yıl eğitim merkezinde a dan z ye her şeyin eğitimini alıp sonra hiç bir şey yapamayan insanlarla da çok karşılaştım.Programcılık eğitimi; eğitimi alan kişiye göre göreceli şekilde değişir. Kimi 6 ay eğitim alır ama bilgisi çok az bir şekilde artmıştır, kimisi 6 aylık eğitimi 4 ayında bırakır çünkü eğitimin yeterli olmadığını düşünür. Burada unutmamanız gereken sizin kişisel kapasiteniz ve öğrenme sürecinidir. Eğer kendi başınıza öğrenebileceğinizi düşünebiliyorsanız kitap ile de herhangi bir yazılım diline giriş yapabilirsiniz. Ama tek başınıza öğrenmek yerine bir grupla öğrenip sıkıştığınızda sormak istiyorsanız kurstaki eğitim sizin için faydalı olabilir.Benim kişisel fikrim öğrenme süreciniz için iyi olanı belirleyip onu yapmanız ama bu süreci belirlerken de gerçekçi olmanız gerekli. Bir kursa gittiğinizde ya da bir kitap aldığınızda kurs bitiminde veya kitabı bitirdiğinizde o yazılım diline hakim olamazsınız. Bu sadece başlangıçtır, devamı getirmek ise ancak ve ancak pratik ile mümkündür, çünkü teorikte her şey basittir pratikte ise gerçek problemlerle karşılaşır ve kendi kendinize sorular sormaya başlarsınız. Bu soruları bazen kendiniz bazen başkası çözer ama sorun size ait olduğu için bir dahaki sefere çözümü daha kolay olur. Ki bence bu gelişmenin temel sürecidir.Bence bir yazılım dilini öğrenmek için aşağıdaki aşamaları yapmanız gerekli;
- Öğrenmek istediğiniz dil ile ilgili gerekli araştırmalar yapın, dilin yapısı, çalışma şekli, örnekler, kaynaklar, bu konu hakkında yazanlar, soru sorabileceğiniz yerler, forumlar vb.
- Eğer öğrenmek istediğiniz dilin bir programı/ara yüzü var ise (Actionscript : Flash, Flex – Asp.net : Dreamweaver, Visual Studio – PHP : Php Designer, Dreamwevaer) gerekli olan ara yüzü öğrenmek.
- Dilin söz dizim ve ana yapısını öğrenmek: nasıl yazılır, nelere dikkat etmeniz gerekir, büyük-küçük harf duyarlımıdır vb.
- Eğer kursa gidiyorsanız gittiğiniz kurs size gerekli gördüğü temelleri verecektir. Büyük ihtimalle kurs size kitap tavsiyesinde de bulunacaktır. Eğer kitap seçiminde özgürseniz alacağınız kitapta karşılaştırma yöntemiyle hangisinin sizin için iyi olduğunu düşünüyorsanız onu almanızı tavsiye ederim.
- Eğer kitap aldıysanız, aldığınız kitapta sizin için gerekli olan bilgileri seçerek kitabı okumanız. Mesela Actionscript öğrenmek istiyorsanız, ilk öğrenmeye başladığınızda Bitmap bilgisine ihtiyaç duymayacaksınız. Bu bilgi ilerisi için mutlaka gereklidir ama ilk olarak bu tarz bir bilgiye ihtiyaç yoktur. Veya PHP öğrenmek istediğinizde ilk başlangıçta Zend Framework’u öğrenmenize gerek yoktur.
- Dilin temellerini aldıktan sonra pratikte geliştirme yapmanız gerekli. Geliştirme aşamasında size en çok yardımcı olacak kaynak ise sizin yaşadığınız sorunlar olacaktır. Çünkü öğrenilen bilgilerin kaynağı sorunun çözümüdür. Bu aşamada arkadaşlarınızdan veya
forumlardan yardım alabilirsiniz. Eğer kitap varsa ilgili konuların üzerinden tekrar geçerek nerde hata yaptığınızı bulmaya çalışabilirsiniz.
Kapanış
Bir yazılım dilini tamamen öğrenmek ve uzmanlaşmak uzun bir süreçtir. Süreç uzun olduğundan bu süreci etkileyen etken sayısı da hayli da çoktur. Ama bunların en önemlisi çalışılan iş yeridir. Çalıştığınız yerin yapısı sizin kendi alanınızda nasıl ilerleyeceğinizi belirler. Eğer çalıştığınız işyerinin sizin için yeterli olmadığınız ve daha iyi bir yerde çalışabileceğinizi düşünüyorsanız benim tavsiyem bunu yapmanız. Web tasarım ve programlama ülkemizde hala tam olarak hak ettiği değeri almış bir iş değil. Bunun en büyük sebebi de bence kendi ülkemizin insanı. Öyle ki maalesef hala ailemden kardeşim hariç hiçbir kimse ne işle uğraştığımı bilmiyor.Kolay GelsinEngin!
12 Responses to “Programcılık ve Eğitimi Üzerine”
Leave a Reply


” Öyle ki maalesef hala ailemden kardeşim hiçbir kimse ne işle uğraştığımı bilmiyor. ”
:))
Hocam çok güzel bi yazı olmuş bekliyorduk gerçekten.. Elinize sağlık.
Engin selamlar,
yazını zevkle okudum, gittiğine üzüldüm…
Ayfer
Çok teşekkürler Ayfer. Temelli gitmedim zaten gelecek ay yine Ankara’yım bir kaç günlüğüne. Ayrıca arada sırada Türkiye’ye gelip gidicem.
Çok güzel bir yazı olmuş.. bi yerden tekrar tutmama ve devam etmeme sebep oldu.. Çok teşekkürler..
ben emrah çini bende büyüdüğüd zaman dizin gibi olmaak istiyorum .
ellerine sağlık çok güzel olmus savredecem en buyuk hayalım bu cunku
Benim gibi genç programcılara rehber olabilecek bir yazı olmuş. Teşekkürle =)
Güzel bir yazı olmuş zevkle okudum. Birçok insanın muallakta kalan araştırıpta bulamadığı sorularada cevap vermişsiniz teşekkürler.
mrb. ben ecem suan lise 3. sınıfa gectim programcı olmak isitoyrum bilgisayar bölümü öğrencisiyim ve yazılım alanında okuyorum üni. hakkında bilgi almak istiyorum önerebileceğiniz site falan varsa paylasırsanız cok sevinirim tesekkrler.
Perfeksiyonist olmayan bir yaklasimla yazmissin makaleni. Cok güzel, fitili atesleyici ve cok ictenlikli bir niteligi var.Hepimize kolay gelsin.
Saygilarim ve sevgilerimle.
Emek edip, bilgilerinizi bizimle paylaştığınız için teşekkür ederiz.
Hocam düşüncelerinizde sonuna kadar haklısınız.Keşke çoğu kişi sizin gibi düşünce bende bi üniversitede bil.müh.okuyorum ama 2 yıllık bitiripde başladım bu bölüme burda öğretilen başlangıç ve her zaman başlangıç olarak kalıyor herşey insanın kendisinde onun için okullar sadece diploma olarak kalıyor bana göre…