İnternet henüz hayatıma girmeden önce gerçekten aradığım bilgiye ulaşmak benim için neredeyse imkansızdı. Ancak konuyla ilgili kişileri bulursak şans benden yana olabiliyordu. Yazılım konusunda bilgi sahibi kişileri bulmak zor oluyordu.
İnanması şimdilerde zor olacak ama o dönemlerde herkes bildiklerini saklıyordu. Böyle bir düşünce vardı. Ne program paylaşımı vardı ne de bilgi. Bana ilk defa karşılıksız bir program veren kişiye önceden karşılıksız program vermemenin utancını yaşadığım günü şimdi gibi hatırlarım. Ama ister istemez bu akıma bizde kapılmıştık.
Şimdi ne mutlu ki İnternet var. Ve elbette "Bilgi paylaştıkça büyür" düşüncesi tüm dünyayı sarmış durumda. Her ne kadarda bizlere geç intikal etmiş olsada.
Konumuz itibariyle geçmişi boş verelim. Eğrisiyle doğrusuyla yıllar geçti ve bugünlere geldik. Artık internetimiz var ve o artık evimizde. Cebimizde, içimizde.
Öğretirken öğrenmek
Birçoğunuz belkide benim gibi kendi başına programlama öğrenmeye başladınız. Böyle bir süreçte elbette bir çok kişinin başını ağrıtmak ve sorular sormak kaçınılmaz. Ama insan iyi niyetlide olsa yinede birilerine bir şeyler sormaktan çekiniyor. Hele hele önceden bir kaç defa soru sorduysanız aynı kişiye. Aslında sorulan sorulara cevap vermek sadece cevabı alan kişiyi değil aynı zamanda cevaplayan kişininde gelişimini sağlar. Biz buna öğretirken öğrenmek diyebiliriz ki ben bunun sayesinde bir çok konuyu çok iyi pekiştirdim.
Nihayet aramak. Ama nasıl?
Dedik ya internet artık evimizde. İşte araştırmalarımızın büyük çoğunluğunu internet vasıtasıyle yapmaya başladık. Ancak bir mevzuyu nasıl araştırmaya başlıyacağımızı bilmemiz gerekir. Herşeyden önce, kafamızda yapmak istediğimiz işin bir planını çizmemiz gerekmektedir. İş kafamızda tam oturmadıysa ne arayacağımızı da bilmemiz zorlaşacaktır.
Acaba aradığımız şey istediğimiz şey mi?
Kim bilir belkide boşu boşuna vakit kaybediyoruz. Diyelim ki, Delphi'de bir formun bir köşesine küçük bir kırmızı (içi dolu) daire çizdirmek istiyor ya da orda olmasını istiyorsunuz. Ve siz temel düzeyde Delphi bilgisine sahip olduğunuzu düşünün. Ancak bu söylediğim sorunu çözecek bilginiz yok. Yani oraya formun canvası yardımı ile bir şeyler çizdirebileceğinizi biliyorsunuz, ama nasıl olacak bu? Peki sizce formun bir köşesine kırmızı bir daire çizdirmek için gerçekten de formun Canvas'ını mı kullanmak gerekir?. Sabit ve kafasının dikine giden bir kişi illa bu konu üzerine yoğunlaşır o arama mototu senin bu arama motoru benim araştırır durur. Şanslıysa ve işi biliyorsa elbette aradığını bulacaktır. Dilediği şeyide yapacaktır. Tabiki bu kişi için şunu söyleyebiliriz, "Sen önce kullandığın araçları bir tanı lütfen". Neden kullandığı araçları tanıması gerektiğini söylemeliyiz. Çünkü o küçük kırmızı daire için zaten bileşen tablomuzda bir bileşen var. TShape bileşeni.
Gördüğünüz gibi, çözümü basit olan ama bilinmediğinde çözümü çok zor olabilecek bir durum. İşte bu noktada belki bir kişiye bu sorundan bahsedilebilir. Muhtemelen işini bilen kişi o küçük kırmızı daire için TShape bileşenini kullanması gerektiğini söyleyecektir.
Şimdi örneğimize geri dönelim, kişi o kırmızı daire meselesinde neyin kendinde eksik olduğunu biliyormuydu? Henüz Delphi'nin temel bileşenleri hakkında bir haber olduğunun farkındamıydı? Tabiki bilmiyordu, bilseydi yapacağı şey belliydi. Demekki bilmeden aramak buna benzer birşey diyebiliriz. Biz bu adama şunu desek: Biliyon da mı arayon bilmiyon da mı arıyon?
Biz bilerek aramayı öğrenmeliyiz. Bilmeden de araştırmayı..
Araştırmak mı aramak mı?
Araştırmak ile aramak çok farklıdır. Teoriden öte, arama yapacağımız kaynakların çoğunluktan daha da fazlası İngilizcedir. Bu durumda örnekteki gibi bir olayda kişi, doğruca komutsal bir sonuç aramak yerine, konuyu araştırmayı seçebilirdi. Tabi bunun için öncelikle kendinin yetersiz olduğu durumu kabullenmesi gerekiyordu. Küçücük bir özeleştiriyle bunu yapabilirdi: "Ben henüz yeterli bir bilgisayar programcısı değilim."
Kendini bilen bir kişi olsa idi, hemen tarayıcısından "www.google.com" sayfasını açar. Ve basit olarak şunları aratırdı: delphi circle shape
Fakat o da ne? bir sürü sonuç. Ama bundan önce neden ingilizce? Az önce de bahsettiğim gibi, kaynakların çoğunluğunun ingilizce olmasından dolayı. Neden başta delphi dedik? Çünkü arayacağımız şeyin içinde delphi geçsin istiyoruz. Tamam bu sonuçlardan bir ikisine bakalım. Muhtemelen fazla araştırmacı biri değilse, ilk elde ettiği bilgileri değerlendirir ve hemen kodlamaya başlar. Fakat araştırmacı biri daha da detaya iner. Basit bir daire çizmek için bir alay kod yazmak niye ki diye düşünür. (y.n.: ilerleyen zamanlarda bu yazdıklarımla ters düşecek şeylerde yazabilirim) Evet niye bir alay kod yazacaz?
Daha da derin bir arama yapalım.? Kişi şöyle bir şeyi arasa: delphi graphics components. Yani sonuçta bir grafik işi yapılacak ve bir komponent arıyoruz. Acaba böyle birşey var mı? Hani bir alay kod yazmak zor geliyor ya. Bakalım mutlu sona ulaşabilecek mi?
Tabiki hemen ulaşmak mümkün olmayacak. Çünkü yine bir çok sonuç çıkacak. Bir sürü kod örneği. Kişi görecek ki, küçük bir daire çizmek için farklı yöntemler kullanılıyor. Tabi bu arada iyi araştırmacı ise, bu minik daire sorunu ile uğraşırken enterasan ip uçlarıyla da karşılaşacaktır. Tavsiyem bunların bir yere not edilmesidir. Bir gün lazım olabilir.
Şimdi biz TShape olayını bildiğimiz için arama yapan kişinin doğruca TShape konusuna nasıl ulaşacağını bilemeyiz. Ancak tahmin yürütebiliriz. Sanırım en iyi yöntem sentez yapmaktan geçiyor. Elde edilen bilgileri değerlendirmek ve kendimiz için iyi sayılabilecek bir sonuç hazırlamak. Kimbilir arama yapan kişi belki TShape olayına erişti, belkide bambaşka bir component buldu ve işini halletti. Ya da kafayı çalıştırıp, DelphiTurkiye gibi bir foruma sordu. Ben olsam o düzeydeyken öyle yapardım.
Acaba, araştırmayı örneklerle yapsam daha mı iyi olur? Evet buda kısmen iyi fikir. O zaman şunu arasak: delphi circle samples. He he, biliyorum bir alay karmaşa daha. En iyisi gidip balıkçı kasabasında balıkçılık yapmak.
Keşke ingilizceyi iyi bilsek.
İmkanı olanlar şanslı. "Bir form üstüne bir daire çizdirmek" şeklindeki bir soruyu google'a yazsam sanki daha mı iyi sonuç alırdım. Ama bunu ingilizceye çeviremem ki. Olsun sizde bire bir çevirmeyin. Sanki bire bir ingilizce yazsanız google size: "yes sir" (başüstüne efendim) mi diyecek. Bence hemen sözlüğümüzü açalım, temel kelimelerin karşılığını bulalım ve aramayı şöyle yapalım: delphi how circle draw form. Sanki biraz daha mı mantıklı sonuçlar elde ettik. Evet biraz daha faydalı bilgiler geldi.
Şimdi bu örneği bırakalım ve ana konudan da fazla uzaklaşmayalım. Arama yapmak için etkili yöntemlerden bahsedelim. Ve tabiki, kullanmamız gereken araçlardan.
Arama araçları
Bir sözlük ve google. Bu sizin işinizi görecektir. Meşhur MoonStar ingilizce-türkçe sözlüğü işinize yarayacaktır.
Haber gruplarında arama yapın
Google'da hep WEB'te mi aramı yapıyorsunuz? Birde Google haber gruplarını deneyin: http://groups.google.com.tr bayağı fazla bilgi bulacağınızı garanti ederim.
Özel bir siteden arama yapın
Tamam kabul ediyorum, DelphiTurkiye formunda bir şey aramak zor, en azından google gibi bir arama mantığı yok. Ama bilgi içerde bir yerlerde. Hem yöneticiler şikayet ediyor: Lütfen soru sormadan önce arama yapın. Tamam bizde arama yapalım ama forum arama motoru ile değil. Google ile. Nasıl?
google'ı açın ve şunları yazın: daire çizmek site:delphiturkiye.com. Gördünüz özel bir siteden arama yaptık. Bu genelde ilgili sitede arama yaparken iyi sonuçlar elde etmediğinizi düşündüğünüzde işe yarar. Tabi böyle bir aramanın işe yaraması için google gibi bir arama motorunun ilgili siteyi indekslemiş olması gerekmektedir.
Şunu söylemek istiyorum, özel bir sitede arama yapacaksanız, önce ilgili sitede bir arama aracı var mı ona bakın ve varsa arama aracı ile ilgili yardım var mı? Yani nasıl arama yapılır vb. gibi. Çünkü her sitedeki arama araçları farklı olabilir. Google burada sadece tesadüfi bir yardım sağlıyabilir. Ama denemeye değer.
Daha fazla arama yapmak
Google'da arama yaparken bir çok şekilde arama yapabilirsiniz. Şöyle bir şey aradığımız düşünelim, formu şeffaf yapmak ile ilgili bişiler arıyalım. Ve bunun için google'da şunu aratalım: delphi transparent form. Evet oldukça çok sonuç elde ettik. Ama elde edilen sonuçların içinde delphi, transparent form kelimelerinden en az biri var ise bu sonuçlar bize geri döndü. Elbette en iyi sonuçlar en tepede görünmektedir. Frekans olarak en fazla kelimeyi barındıran sayfalar baştadır. Peki birde şöyle yapsak: delphi "transparent form". Burdaki çift tırnak işareti önemlidir. Google çift tırnak içindeki cümleyi olduğu gibi arayacaktır. Yaptınız mı bu aramayı ve gördünüz mü farkı? İlk aramada en baştaki bir kaç linkte TRANSPARENT FORM geçiyor sonrakilerde ayrı ayrı yerlerde bu kelimeler geçiyordu, ikinci aramada ise bu iki kelimenin yan yana olan şekli ile aradık. Daha kesin bir sonuç için ideal.
Daha da derine
Ben denemek için; delphi transparent form kelimelerini arattım google'da 427.000 sonuç çıktı. Ve ben şeffaf bir form yapmak istiyorum ama illaki bir komponent ile yapmak istiyorum. Şimdi şöyle arama yapayım: delphi transparent form component sonuç:272.000 sayfa bulundu. Tabi bunu "transparent form" diye yazarak daha da kısaltırız. Öyle yapalım. Ancak arama yaparken şunu da unutmayın; kelimelerin yan yana gelme ihtimalini. Ben şöyle yazarsam elbette daha az sonuç çıkacaktır ama istediğim sonuçlar olacak mıydı: delphi "transparent form component". TRANSPARENT FORM COMPONENT cümlesinin olma ihtimali ne çıkar acaba: 9 sonuç çıkar. Yeterinden az ama öz. Belki işe yarar.
Daha çok sonuç istiyorum ama illa bu işi yapmak için bir komponent arıyorum: delphi "transparent form" +component. Evet burda ARTI (+) işareti nedir? COMPONET kelimesi mutlaka her sayfada olsun demektir. Bulduğun sonuç: 1.110 sayfa çıktı. Daha güzel bir sonuç.
Merak ettim, + diyince oluyorda (-) eksi dersek ne olacaktı, elbette component kelimesi geçmeyen sayfalar listelenecekti: delphi "transparent form" -component, sonuç: 616 sayfa. Yani buda alternatif olabilir. Siz component ile değilde kodlarla şeffaf bir form yapmak istiyorsunuz, o zaman bu tip arama makuldur.
Oooo bir alay karmaşık arama şekli. Daha da kolayı yok mu?
Tabi ki var, hiç (+) ya da (-) işaretleriyle çift tırnaklarla uğraşmayın. Google abiniz size ne güzel hizmetler sunuyor. http://www.google.com.tr/advanced_search yani gelişmiş arama. Hemen sayfaya bağlanın göreceksiniz. Ne güzel bir form değil mi? Şöyle acele etmeden bir göz geçirin, 15 dk. sadece keyfine bu sayfayı inceleyin, basit denemelerden karmaşık denemelere kadar alıştırmalar yapın. Sadece 15 dk. sonra hayatınız boyunca işinize yarayacak bir alışkanlık kazanacaksınız.
Bence biraz daha vakit harcayın ve şunu okuyun: http://www.google.com.tr/intl/tr/help.html
Zaten verdiğim linkte aynen benim dedilerimi göreceksiniz. Zaten bende ordan öğrendim. Çünkü google aranan bir arama motoru olduğunda inceledim ve özelliklerini öğrendim. Vaktiyle google'ı keşfetmek için ayırdığım 15 dk. sayesinde artık aradığımı daha rahat bulabiliyorum.
Sonuç!
Bir özet çıkartalım
1. Kendi bilgimizi sınayıp, seviyemizi her zaman bilmeliyiz. Hangi durumdayız.
2. Öncelike ne aradığımızı bilmemiz gerekiyor.
3. Aradığım ya da araştırdığım şeye ihtiyacım var mı? Gerekli bir şey mi? Vakit harcamaya değer mi?
4. Kendimize bir soru sormalıyız: Ben neyi arıyorum neyi araştırıyorum?
5. Birine sormam gerekiyor mu? Doğrudan bilgiye ulaşmak. Kişi ya da bir forum.
6. Bir örnek kodamı yoksa detaylı bilgiye mi ihtiyacınız var?
7. Kodlar işinizi çözer, ama kodu bilerek kullanırsanız aklınızda kalır. Derin araştır.
8. Ararken neler kesin olacak neler olmayacak.
9. Delphi size kısıtlı sonuç verir, birazda C, C++, VB öğrenmek daha iyi olmaz mı? (en azından okuma düzeyinde)
10. Gözlerinizi her saatte bir 30 saniyeliğine bir noktaya sabit tutun ve dinlendirin.
11. Sigaranı içmiyorsan söndür, kahven buz gibi oldu.
Makaleden yırtma planları
Elbette anlattığım bunca ipucuna rağmen daha ne fikirler çıkacaktır ortaya. En iyi öğrenme yöntemlerinden biri her zaman deneme yanılma olduğunu bilirim. Size yukarıda dediğim 15 dk. lık öğrenme sürecini daha da arttırarak kendinizi bir hafta boyunca arama ve araştırma konusunda geliştirmenizi öneririm. Tabi buna paralel olarak okuyacağınız kitaplar -ki hepside her zaman doğru şeyleri anlatmaz- size faydalı olacaktır. Kendinizi sadece programlama konusunda değil, gerçek hayat meseleleri ile de geliştirin. Hayatımızdaki gerçek kodları iyi inceleyin. Bir kuşu bir balığı inceleyin. Yaradılış kodlarına inmeye çalışın ve orda bir çok şeyi öğreneceğinizi garanti ediyorum.
Maalesef Türkçe kaynak bulmak zor oluyor, en azından başlangıç seviyesinden daha ileri bir programlama yapmak istiyorsanız; ingilizcenizi azar azar geliştirin. Ben ingilizce konuşamam, yazamam ama okumada algılama ile bildiğim kelimeler vasıtasıyle ingilizce bir metni anlayacağıma inanıyorum.
Son olarak, lütfen ama lütfen bildiklerinizi paylaşın -ki bizlerin de kaynağı olsun-
Not: Bu makale altında sizlerinde aklına gelen ve bizlerle paylaşmak istediğiniz ip uçlarını burada görmek beni memnun edecektir.
** Bu makaleyi aleni mekanda mangal yapıpta durduk yere benim gibi et düşkünü adamı masrafa sokan adamlara adıyorum.

Sevgiler ve saygılar..