" Proglama Dili Seçimi Hakkında " Nasıl tek bir dil bilmek yetmiyorda insanlar ingilizce, almanca öğreniyorsa bilgisayar dünyasında da tek bir dil bilmek yetmiyor. Günümüz programlama ortamlarında farklı dillerle yazılmış parçaları beraber calıştırabilmek mümkün olduğu için, en az iki programlama dili bilmeniz iyi olur. Dilinizi seçerken soracağınız sorular: 1- Ürününüz birden fazla işletim sistemini destekleyecek mi? 2- Ürününüz web, istemci/sunucu, tek başına calişabilecek biçimde dizayn edilecek mi? 3- Ürününüz en son yazılım tekniklerini ve teknolojilerini uygulayabilir mi? 4- Kullanmayı düşündüğünüz veritabanlarını destekliyor mu? 5- Yazılım aracı/dili için eğitim verecek kuruluş var mı? 6- Diploma, sertifika veriliyor mu? 7- Dünyada başka kimler kullanıyor? 8- Örütbağında arama yaptığınızda kaç tane sonuç dönüyor? 9- İş bulma sitelerinde, sizin düşündüğünüz yazılım aracı/dili ile ilgili ne kadar iş ilanı var. 10- Ürününüzü dünya genelinde satmayı düşünüyor musunuz? 11- Araç/dil bu dizayna izin veriyor mu? 12- Yazılım aracı/dili üreten firma ile birlikte başka hangi firmalar bu araca/dile destek veriyor. 13- Ne kadar para harcamayı düşünüyorsunuz.? Buradaki araştırmaların hepsini Türkiye çapında değil dünya çapında yapın. En son versiyonları ve teknolojileri satın almaya bakın. İkinci dil ile ilgili olarak tamamen karşıt bir firma/teknoloji seçin. Mesela VB ve Delphi, Java ve C++, C# ve Perl, PHP ve XML vs. İşletim sisteminide değiştirebilirsiniz. Mesela Linux/Kylix ve Windows/C++, Unix/Python ve Windows/XML, Linux/PHP ve Windows/HTML vs. Listeleri uzatmak mümkün. Nasıl Başlanır Dilinizi seçtikten sonra ilk yapacağınız iş, ortama olan göz alişkanlığınızı kazanmak için menülerde ve ekranlarda gezinmeniz olacaktır. Burada ortam dediğimiz programlama yaptığınız dilin arayüzü olan IDE hakkında bilgi sahibi olmak ve menülerde ne nerede bilgisini oluşturmak içindir. Eğer ingilizce biliyorsanız menüler üzerindeyken F1 tuşu ile yardim alabilir ve ne işe yaradığını öğrenebilirsiniz. Bundan sonra başlangıç seviyesi kitapları ile yola çıkarak adım adım dili öğrenmeye başlarsınız. Kitap dışında deneme-yanılma yolu ile küçük projeler yapıp, dilinizin nelere imkan verdiğini öğrenebilirsiniz. İlk başlarda cok fazla zaman harcayarak mümkün olan her şeyi deneyin. Belli bir seviyeye geldikten sonra, belli konuları daha derin öğrenmeye başlarsınız. Dili biraz öğrendikten sonra bıranşlaşma için, veritabanı, donanım, sistem, ticari programlama gibi konulara eğilebilirsiniz. Kitaplar Her yeni başlayana tavsiye ettiğim yazarlar, İhsan Karagülle, Memik Yanık, Zeydin Pala dışında kullandığınız dilin üreticisinin kitapları yada 3. parti firmaların kitaplari çok yararlı olabilir. İlgilendiğiniz konularda referans kitaplarınızın bulunması ve ihtiyacınız olduğunda konu başlıklarını kullanarak yardım almanız çok iyi olur. Eger merkezlere uzak yerlerde oturuyorsanız örütbağ üzerinde sipariş verebileceğiniz yerler oldukça fazla. Aldığınızın kitapların yayınevlerinin sitelerinden kitapla ilgili düzeltme var mı kontrol edin. Örütbağ Üzerinde E-posta listeleri çok yararlıdır ve teknolojileri günlük takip etmenizi sağlar. Özellikle Microsoft, Rational, IBM, CA, Inprise gibi büyük firmaların gazete e-postalarına üye olmanızı tavsiye ederim. Bu sayede yeni ürünler çıktığında veya seminerler olduğunda hemen haberiniz olur, ayrıca gidip bu firmaların sitelerinde debelenmekten kurtulursunuz. Haber sunucuları, programlamaya özel siteler'de işinizi görür. Önemli olan bir şekilde teknolojileri takip etmek ve güncel konulardan haberdar olmak. Yahoo gibi sitelerin gruplarına da bakabilirsiniz. Hangisinde daha fazla üye ve mesaj varsa ona üye olun. Teknolojiler Seçtiğiniz programlama dili ile son teknolojileri uygulamak mümkün mü? Fazla kod değişikliği yapmadan hem internet ortamını hem istemci/sunucu yapılarını destekleyebiliyor musunuz? Yada daha da önemlisi seçtiğiniz dil ile, bitmek tükenmek bilmeyen müşteri isteklerine cevap verebilecek misiniz. Platformlar arası veri alisverişi konularına destek veriyor mu? Hangi veritabanlarını destekliyor? Yada sizin istediğiniz veya kullanmayı düşündüğünüz veritabanını tam olarak destekliyor mu? Teknoloji demekle neyi kastediyoruz. ActiveX, SOAP, COM, DCOM, COM+, . NET, Web Services, RMI, IIOP, TCP/IP vs. gibi pek çok metod bahsettiğimiz teknoloji alanina girer. Seçtiginiz dil ile bu teknolojilerden bazılarını desteklemek istiyor musunuz? Analiz Program yazarken kullanacaginiz analiz metodolojileri en az kodlama yapmak kadar önemlidir. İster yolun başında bir programcı adayı olun ister programlama konusunda uzman olun metodoloji ve o metodolojiyi doğru uygulamak çok önemlidir. İyi yazılım, iyi bir analiz ile başlar. Analiz sizin programınızla neler yapacağınızın ve müşterinin problemlerinenasıl çözüm getireceğinizin bir taslağıdır. Analiz iş senaryolarınızı ortaya çıkarmanıza ve müşteri isteklerine daha iyi cevap vermenizi sağlar. Analiz Metodolojileri nelerdir? Ornegin Modül Tabanlı Analiz , Nesne Tabanli Analiz , Unified Modelling Analiz , eXtreme Programming . Bu metodolojileri doğru biçimde projelerinizde uygularsanız verimlilik ve zamanında yetiştirmek açısından pek sorununuz olacağını zannetmiyorum. Yukarıda bahsettiğim konuları tek tek açiklayan makalelerde yazacağım. Düzenli Çalışma Kendinize bir hedef vermeden bilgisayarın başına oturmayın. Hedefinizi belirleyip ona göre yol alın. Projelerinize hep bir isim verin ve anlamlı bir isim verilmiş bir dizine kaydedin. Form'larınızın isimlerini ve başlıklarını muhakkak değiştirin. Bu sayede farklı formları farklı projelerde kullanmak istediğinizde isim çakışmaları olmaz. İsimlerden formlarınızın ne işe yaradığını kolayca anlayabilirsiniz. Her yiğidin bir yoğurt yiyişi olduğu gibi ordularında uyulması gereken kuralları vardır. Bir yazılım firmasında çalışmaya başladığınızda, ilk yapacağınız şey firma standartlarını öğrenmektir. Bu sayede ekip içi bilgi alış verişi hızlı ve kesin olur. Dökümantasyon Yaptığınız çalışmaları, ufak projeleri kısacası ileride kullanabileceğiniz her kod parçasını yazıya dökün ve ne işe yaradığını, nasıl çalıştığını, amacının ne olduğunu ister kodun içine yorum satırı olarak, ister bir word dosyasına yazarak saklayın. Hangisi pratik geliyorsa. Bu tür bir çalışma ileride bir kod parçasına ihtiyacınız olduğunda kolayca bulmanızı sağlar. İngilizce Kaynaklar Yabancı dil bilmek pek çok konuda işimize yaradiği gibi, programlama konusunda da işimize yarayacaktır. Fakat öyle sular seller gibi bilmeye veya konuşurken aksanlı konuşucam diye ağzımızı burnumuzu bükmenin anlamı yok. Sonuçta bizler Türk'üz ve konuşurken yabancı olduğumuzun anlaşılmasıda gayet doğal ve gereklidir. Yabancı dil bilgimiz, konumuzdaki yabancı yayınları takip edecek ve derdimizi anlatabilecek kadar olsa yeter. Bu nasihatlerden sonra gelelim yabanci yayınlara, örütbağ üzerinde bir arama ile pek çok yayına ulaşabilirsiniz. Bunların dışında Microsoft yayınları ve kitapları, Wrox yayinevinin kitapları, Visual Studio ile gelen MSDN tıkızları çok işinize yarayabilir. Inprise ürünleri ile birlikte gelen yardım dosyalarıda çok yararlı olabilir. Ek olarak firmaların sitelerinde her zaman deneme sürümlerinin tıkızlarının adresinize postalanması için gerekli formları bulup doldurabilirsiniz. Ayrıca pek çok teknik dokumanı, gerçek projeleri, eğitimle ilgili yazıları bilgisayariniza indirebilirsiniz. Firmaların Türkiye temsilciliklerinden birer bağlantıya sahip olmanızda iyi olur. Kurslar Kursların piyasa tarafından tanınmış ve verdikleri sertifikaların dünya çapında geçerli olmasına dikkat edin. Çalışmalarınızın kurs ile sınırlı kalmaması için, evinizde de bazı projeler geliştiriyor olmanız gerekir. Türkiye'de çoğu büyük şehirlerde pek çok kurs mevcut. Kurs ile birlikte çevrenizde oluşacak arkadaş grubu iyi bir yönlendirme ile birlikte iyi projelere imza atabilir. Unutmayın çevrenizdeki grup ileride iş arkadaşlığına dönüşebilir.