Blog (tr) Programming

Yaratılış Parmaklarına İndi

En önce ana bir dil seçmen gerekiyor. Java, PHP, Ruby, C++, C# vb. Ben kendimi C# üzerinden geliştirmeye karar verdim. Niye diye sorarsan tamamen çevremle alakalı bir şeydi bu. Çünkü takıldığım bir şey olduğunda hemen arayıp sorabileceğim pek çok C# developer var etrafımda. Ayrıca Türkiye’deki genel trend C# ve Java üzerine. Çalıştığım şirkete (Sağlık bilişim firması) yazılımcı arandığında yönetimdekiler direk Java veya C# bilmeyen herkesi çağırmadan eliyorlar ki buna pek çok şirkette de rastladım. Doğal olarak yazılım dili tercihin yaşadığın ülkenin trendlerine göre olmalı. Mesela Iran’da siyasi tüm bu olaylar nedeniyle C# bilmek nerdeyse hiç bir işine yaramayacak. Yine yakınlarda firmamız, doktor-yazılımcı bir arkadaşın ürününü Delphi 6 ile yazdığını öğrendiklerinde işbirliği/yatırım ihtimalini rafa kaldırdılar (Arkadaşın inanılmaz egosu da bunda etkiliydi).  Yine kendi kendine yazılım öğrenen bir başka arkadaşımın sadece PHP bilmesi iş arama süreçlerinde ciddi zorluklar oluşturuyor.

İkincisi olarak öğrenmek istediğin dil için community olarak ifade edilen topluluğunun güçlü olması seçim için çok önemli bir faktör. Topluluğu güçlü bir dil doğal olarak değişen koşullara daha iyi uyum sağlayacaktır. Ayrıca güncelleştirmeleri daha sık olacaktır. Bu kişisel anlamda seni zorlayacak bir şey olsa da uzun vade katkıları çok olacaktır. Eğer bir dile odaklandıysan o dilin güncellemeleri ve gelişmelerini takip etmen gerekiyor. Mesela ben C# ve ASP.Net MVC’ye başladığımda ikisinin versiyonları da 5’ti. Ben hala 5. versiyonunu öğrenememişken adamlar 6. versiyonunu yayınladılar geçenlerde. Fakat bu seni korkutmasın, nesne yönelimli programlama gibi devrim niteliğindeki güncellemeler belki de 10 yılda bir olacaktır. Bunun dışındaki güncellemeler ise geç adapte olsan bile seni o kadar zorlamayacaktır. Onu öğrenmen için yeterince vaktin olacağından emin olabilirsin.

Üçüncü olarak sana tavsiye edebileceğim şey ise yazılım süreçlerinde nereye odaklanman gerektiğini iyi bir şekilde tanımlamandır. Kendimden örnek vermem gerekirse ben asıl olarak web programlaması üzerine odaklanmaya karar verdim. Bu noktada ASP.NET in MVC modülü inanılmaz bir şey. Kodlama süreçlerini belli başlı bölümlere ayıran MVC’de; M modeli yani programında kullanılacak veri tabanını; V view yani kullanıcının karşılaşacağı görsel ara yüzde yapılacak kodlamaları; C yani controller ise yapacağın C# kodlama kısmını yani bir açıdan programın know-how’ını temsil ediyor. Bu gruplandırmadan yola çıkarak yazılımcıların bahsettiği front-end back-end kodlamayı sana kısaca anlatmak istiyorum.

Front-end kodlama genelde HTML5, CSS3, ve JavaScript (Java ile aynı şey değil aman ha!) ile yapılan görsel ve kullanıcı ile etkileşime girecek süreçleri ifade ediyor. Burada tasarımcılar klavyeyi ellerine alarak o gördüğünüz muhteşem siteleri tasarlıyorlar. Benim gibi tek tabanca tipler “Hadii! C# zaten zordu bir de bunlar karşıma çıktı diyebilir!”. Ama inanın üçünü toplasanız bir C# etmiyor. Back-end kodlama ile programın sistem ve veritabanı süreçlerini ele alarak programın arkasında devam eden işlemleri kast ediyorlar. Yazılım öğrenmeye başladığımda MT Panel’deki o malum arkadaşımla yüzleştim. Yeni savunması bu şekildeydi: “Abi ben front-end hakkında çok zayıfım o yüzden istediklerin benim için çok zordu. Bizim işte ben arka planı tamamlayıp direk tasarımcıya yolluyorum ve görselleri falan hep onlar hallediyor.” (Sanırım biraz kindar olabiliyorum – olayın üzerinden 2 sene geçtiğini düşünürseniz.)

Şaşırtıcı bir şekilde öğrendiğim şey şuydu: Yazılımcıların da doktorlar gibi uzmanlık alanları mevcut. Hepsi her şeyi bilmiyor ve bilmek zorunda da değil. Veritabanı, güvenlik, tasarım, test hepsi ayrı bir uzmanlık alanıymış. Peki benim gibi amatör hevesliler ne yapacak? Tabi ki bir profesyonel kadar her şeye vakıf olmanız gerekmiyor ama iyi bir takımınız yoksa bu dillerin/süreçlerin en azından syntax ve/ya genel kurallarını bilmeniz gerekiyor. Evet HTML5, CSS3’yi en ince ayrıntılarına kadar öğrenmenize gerek yok internette bir sürü ücretli ve ücretsiz tema var ve bunu çok rahat programınıza entegre edebilirsiniz. Fakat… Gerçek hayatta bir sorun var: indirdiğiniz o temalar site de durduğu gibi durmuyor programınızda. Bunu eğer çözebilecek bir arkadaşınız yoksa ya da benim gibi her şeye müdahale etmeden duramıyorsanız: temel düzeyde HTML5, CSS3 ve JavaScript öğrenmeniz gerekiyor. İşin güzel yanı bunlarla alakalı o kadar çok ücretsiz kaynak var ki sadece araştırmanız gerekiyor.

Kaynakların çoğu genelde İngilizce ya da üst düzeyde yazılmış olması yeni başlayanlar için bir dezavantaj olabilir. Ne yazık ki Türk yazılımcılar bu konuda biraz tembel ve bencil (İstisnalar kaideyi bozmaz). Ben de üzerime düşeni yapmak adına bu sitede size öğrendiklerimi okuduklarımı paylaşacağım. Özelden bana ulaşan kişilere de elimden geldiğince destek vermekten memnun olurum. Sadece bana yazmanız yeterli olacaktır. Bu gereğinden fazla uzamış yazıyı son bir link ile kapatmak istiyorum: Açık Akademi! Bu site özellikle benim için muhteşem bir başlangıç oldu. Dilinin türkçe olması eğitimcilerin eğlenceli insanlar olması ise büyük bir artı. Ve en güzeli buradaki eğitimlerin hepsi ücretsiz!!! Eğer yazılıma bir yerden başlamak istiyorsanız, burası güzel bir başlangıç olacaktır.

Nice güzel eserler çıkarmanız dileğimle,

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: