Programcılık kitabı seçerken işinize yarayacak ipuçları / Yazılım / Milliyet Blog
Mlliyet Milliyet Blog Milliyet Blog
 
Facebook Connect
Blog Kategorileri
 

02 Mart '09

 
Kategori
Yazılım
 

Programcılık kitabı seçerken işinize yarayacak ipuçları

Birkaç gün önce Çok Satan Kitaplar adında kısa bir yazı yazıp burada sizinle paylaşmıştım. Sonra yazıya kitap seçimi konusunda birkaç ipucu eklemiştim. Baktım aklıma gelen bu ipuçların sayısı fazla olmaya başladı ben de bu ipuçlarını ayrı bir yazı olarak değerlendirmeye karar verdim.

· Seçtiğiniz kitabın yazarı elindeki birden fazla bilgiyi formun üzerinde kullanıcıya göstermek için size "ListBox kullanın" önerisini yapmayı akıl edebiliyor mu? Örneğin kitabın yazarı veritabanından çok sayıda veri veya kayıt çekip bunları kullanıcıya gösterirken en uygun sınıfın ListBox olduğunu keşfeden yazar mı değil mi mutlaka öğrenmek gerekir. Düşünsenize yazarın birisi veritabanından çektiği 40-50 satırı formun üzerinde nasıl gösterebileceği konusunda aylarca çalışıp yararlanılabilinecek sınıflardan birisinin ListBox olduğunu akıl ediyor. Sonra da başka yazarlar hazıra konup okurlarına başka kontroller önermek yerine ListBox öneriyorlar. Bu durumda ListBox kullanımı konusunda buluş yapan yazarın kitabı dururken başka yazarların kitabının yüzüne bakmanızı önermem.

· Varsayalım ki .NET programcılığıyla ilgilisiniz ve satın almak istediğiniz kitaptan SQL Server veritabanından bir tablonun içeriğini çekip DataSet'teki DataTable nesnesine nasıl çekildiğini öğrenmek istiyorsunuz. İncelediğiniz kitabın yazarı bu işlemler için kitabında orijinal buluşlara mı yer veriyor mu vermiyor mu ona bakmak lazım. Örneğin yazarın birisi aylarca çalışıp bu işlem için en uygun sınıfın .NET Framework ile birlikte gelen SqlDataAdapter olduğunu keşfediyor. Veritabanından veri çekip DataTable'a bilgi aktarırken en uygun sınıfın SqlDataAdapter olduğunu keşfeden yazar araştırmalarına devam edip veri çekme işlemini yaparken en uygun metodun Fill() metodu olduğu buluşuna imza atıyor. Tabi bu buluşu yaptıktan sonra kitabında o güne kadar henüz hiç kimsenin varlığından haberdar olmadığı bu Fill() metodunun nasıl kullanıldığını bir güzel anlatıyor. Hazıra konmayı alışkanlık etmiş diğer yerli yabancı çok sayıda yazar Fill() yerine kullanılabilinecek başka metotlar bulmak keşfetmek yerine gece gündüz demeden çalışan yazarın kitabından yararlanıp Fill() metodunu kullanın diye öneride bulunuyorlar. Oldu mu şimdi? Yerli yazarın birisi Fill() metodunu keşfediyor, diğerleri beleşe konup kullanıyorlar. Bana sorarsanız Fill() metodunu keşfeden yazarları desteklemek gerekir. Bu sayede onların zirve yolundaki yürüyüşlerine katkı sağlamış olursunuz. Ne o kullanımı son derece basit metotları kullanıp veritabanından veriler vs çekmek? Kimse hazıra konmasın, Microsoft'un programcılarının yazıp sır gibi sakladıkları Fill() metodunu yerli bir yazar gece gündüz çalışıp ortaya çıkaracak sonra dünyanın belli başlı yazarları hazıra konup Fill() metodunu kullanacaklar. Beni dinlerseniz bu hazıra konan yazarların kitaplarından uzak durun. Bu hazıra konan yazarlardan birisi de Memik Yanık'tır. Gidip kafasını çalıştırıp Fill() metodundan daha güzel bir metot keşfetmek yerine başka yazarların keşfettiği metotları kullanıyor.

· Bilirsiniz Windows işletim sistemi bazı işlemleri Mac'ten esinlenerek destekledi. Sürükle-bırak tekniği Mac'tan alınan esinlenerek geliştirilen tekniklere örnek olarak gösterilebilir. Sürükle-bırak tekniğinin çok değişik uygulamaları olmasına rağmen programcılık kitaplarında yazarlar sanki önceden aralarında anlaşmışlar gibi ListBox'lar arası eleman taşıma kopyalamayı örnek olarak veriyorlar. Hal bu ki bu teknik yani ListBox'lar arası eleman taşıma kopyalama işlemini patenti 2003 yılından bu yana yerli bir yazarın elinde bulunmaktadır. Bu yerli yazarımız gece gündüz demeden çalışmış sürükle-bırak tekniğiyle ListBox'lar arası eleman taşıma kopyalama işlemini keşfetmiştir. Bu keşfin kaymağını tam yemek üzereyken çok sayıda yerli yabancı programcılık kitabı yazarı kitaplarında sürükle-bırak tekniğinden söz etmek istediklerinde forma 2 ListBox yerleştirip pişmiş aşa su katıyorlar. Benim size önerim programcılık kitabı seçerken yazarının ListBox'lar arası eleman taşıma kopyalama tekniğinin mucidi midir yoksa başka yazarların keşfini kullanan birisi midir öğrenmelisiniz. İlgilendiğiniz kitabın yazarı sürükle-bırak tekniğiyle ListBox'lar arası eleman taşıma işleminin mucidi değilse o yazarın kitabından uzak durun derim. Orijinal buluşların birden fazla sahibi olamayacağına göre Türkiye'de kitaplarını önerdiğim tek yazar mesleğinin zirvesinde olup ListBox'lar arası eleman taşıma kopyalama işlemini bulup programcılık dünyasına hediye eden yazardır.

· Bana sorarsanız programcılıkta değişken ve nesne adları çok önemlidir. Bu nedenle kitap seçerken kitapta verilen üç beş satırlık kodlarda kullanılan değişken adları kitabın yazarına mı aittir yoksa başka yazarlara mı? Örneğin yazarın kitabında for döngüsünü anlatacak. Gece gündüz düşünüp araştırma yapıp döngü kontrol değişkenine vereceği adı tespit ediyor. Sonra başka yazarlar hazıra konup "i" adındaki bu değişkeni kendi kitaplarında kullanıyorlar. Bu haksızlığa karşı çıkıp kitap seçerken "i" değişkenin sahibi yazarın kitabını tercih etmenizi öneriyorum. Programcılık kitaplarının yazarlarının kitaplarında tanımladıkları değişkene ad seçerken çaldıkları tek değişken "i" değildir. Başkasına ait olmasına rağmen haksızlık yapılıp kullanımı yaygın olan değişkenlere “j”, “dizi”, “sayi”, “deger”, “satir” örnek olarak gösterebilir. Kısaca özetlemek gerekirse programcılık kitabı satın almadan önce kitabın yazarına Mail gönderip kitabında kullandığı değişkenlerin kendisine ait olup olmadığını öğrenmek gerekmektedir. Siz siz olun kitabında başkasına ait olan değişkenler kullanan yazarların kitaplarından uzak durun. Hatta başka yazarlara ait değişken adlarını kitaplarında kullanan yazarlara mail gönderip "başkalarına ait değişken adlarını kullanmak sana yakışıyor mu?" anlamını içeren sorular yöneltebilirsiniz.

· Bildiğiniz gibi mevcut veritabandaki mevcut tablolar üzerinde yapılabilinecek işlemler topu topu 4 tanedir: Kayıt ekleme, silme, değiştirme ve kayıt arama. Kayıt ekleme işlemi SQL dilinin INSERT INTO, silme DELETE, değiştirme UPDATE kayıt arama yani veri çekme işlemi SELECT deyimiyle yapılmaktadır. Programcıların mevcut veritabanındaki mevcut tablolar üzerinde işlem yaparken kullandığı SQL kodunu veritabanına kaydettiğinde yani Stored Procedure hazırladığında bu işlemlerin sayısı yakın bir zamana kadar 3 taneydi. Çünkü yerli yabancı bütün programcılar yazarlar Stored Procedure kodu içinde SQL dilinin SELECT deyiminin kullanılabileceğinden habersizdi(!). Sonra 2003 yılında yerli bir yazar Stored Procedure’lar aracılığıyla veritabanından veri çekilebilineceğini kanıtlayıp bu buluşunu register etti. Buna rağmen bazı yerli yazarlar kitaplarında yine hazıra konup Stored Procedure’ler ile veritabanları üzerinde yapılabilinecek işlemlerin sayısının 4 olduğunu yazmaya anlatmaya başladılar. Hal bu ki madem Stored Procedure’ler ile veritabanından veri çekme tekniğini yerli bir yazar buldu, kitaplarında bundan söz etme hakkı bir tek bu yazara ait olmalıdır. Bu nedenle siz siz olun kitabında Stored Procedure’den söz ederken verdiği örneklerde SQL kodu içinde SELECT deyimini kullanan yazarların kitaplarından uzak durun. Başka bir deyişle size Stored Procedure’de SELECT deyiminin kullanılabileceği buluşunu yapan yazarların kitabını tercih etmenizi önermekteyim. Çünkü Türkiye’nin bilişim alanında gelişip zirvelere çıkabilmesi için buluş yapan yazarları desteklemek gerek.

· Programcılık kitabı seçimiyle ilgili bu ipucumuz .NET programcıları içindir. Malumunuz olduğu üzere DataSet’teki DataTable’lara aktarılan satırların yani kayıtların içeriğini kullanıcıya göstermek üzere zaman zaman forma TextBox, CheckBox vs nesneleri yerleştirilmektedir. Ardından bu nesnelerle DataTable’ın ilgili alanı arasında bağlantı kurulur. DataTable’daki satırların arasında dolaşmak istendiğinde Form sınıfının BindingContext özelliğinden yararlanılmaktadır. DataTable’daki satırların arasında dolaşmak ve mevcut satırlar üzerinde işlem yapmayı kolaylaştırmak için Microsoft firması CurrencyManager adında bir sınıf hazırladı. Her ne kadar Microsoft firması böyle bir sınıf hazırlamış .NET Framework 1.1’den itibaren dağıtmaya başlamış olsa bile bu sınıfı anlatmayı mesleğinin zirvesinde olan yerli bir yazara ihale etti. Anlayacağınız programcılık kitaplarında bu sınıftan söz hakkı yalnızca bir yazar sahiptir. Buna rağmen bir çok yerli yabancı yazar kitaplarında CurencyManager sınıfından söz edip haksız rekabete neden oldular. Bu nedenledir ki ADO.NET sınıfları hakkında bilgi içeren programcılık kitabı edinmek isteyenlere CurrencyManager sınıfını yasal olarak anlatma hakkına sahip yazarların kitaplarını öneriyorum.

· Programcılık kitabı seçerken elinize aldığınız kitabı öncelikle ayrıntılı bir incelemeden geçirmelisiniz. Bu inceleme sırasında yazarın kitabında kullandığı algoritmaların mucidinin kendisi olup olmadığını mutlaka öğrenmelisiniz. Örneğin Selection veya Quick Sort algoritmasını geliştirip programcılık dünyasına armağan eden yazarın kitabı dururken beleşe konup bu algoritmaları kitabında kullanan yazarlara prim vermemek gerekir. Her ne kadar bu 2 algoritma geliştirileli en az 30 yıl olsa bile bu algoritmaları yeniden geliştirdiğini kanıtlayan yerli yazara destek vermek gerekir. Başka bir deyişle başkalarına ait algoritmaları kullanan yazarların kitaplarına dönüp bakmanızı önermem. Her şeyden önce kitabını almak istediğiniz yazarın buluşçu bir yanının olması gerekir, gerek kitap gerekse de beyin olarak mutlaka mesleğinin zirvesine çıkmış olması gerekir.

 
Toplam blog
: 21
: 849
Kayıt tarihi
: 02.08.08
 
 

1992 yılından başlayarak bilgisayar ve programcılık üzerine dergilerinde çok sayıda makale yayınladı..