Adem KALIN – Yazılım Mühendisi

Yazılımcının Araştırma Yöntemleri

Search

Bir sorunla karşılaştınız veya size verilen bir işi tamamlamak için o işi nasıl çözebileceğinizi öğrenmeniz gerekiyor. O zamana kadar hiç uğraşmadığınız bir konu… Peki bu nasıl olacak? Nasıl üstesinden geleceksiniz? Sinirler, stresler vs vs..

Tabi bu durum, neyi nasıl yapacağını ve nasıl araştıracağını bilmeyen bir yazılımcı için geçerli. Başarılı bir IT sektörü çalışanı olmak için öncelikle araştırma yöntemlerini, bilgiye erişme yollarını tam olarak çözmüş olmamız gerekiyor. İnsanların çözüm üretmesini istediği kişi biz olduğumuz için, her çözümü net olarak bilemesek de, ona giden yolları iyi bilmek durumundayız.

Bu konuda aslında en yakın bilgi kaynaklarımız, ofiste daha önce o tarz bir işle uğraşmış olan arkadaşlarımızdır. Çok meşhur tabiriyle tekerleği yeniden keşfetmeye gerek yoktur 🙂 Bazen en basit noktayı bile gözden kaçırdığımız olabiliyor. Bu anlamda da iş arkadaşlarımız bize farklı bir perspektif sunan kişi olabiliyor çoğu zaman. Fakat dikkat edilmesi gereken şey, sorumuzu sormadan önce “Ne sormak istediğimizi” bizim de gerçekten biliyor olmamız. Evet, bu cümleyi öylesine kurmuyorum. Şöyle ki, arkadaşınıza bir sorun ile gidiyorsunuz ancak üzerinde hiç düşünmemişsiniz. Hatta belki hiç konuyu bile anlamamışsınız. Böyle bir durum çoğu zaman hem soruya muhatap olanın sinir krizi geçirmesine, hem de vakit kaybına sebep olur 🙂 Soruya muhatap olan kişi sizin bütün işinizi analiz edecek, üzerinde kafa patlatacak üstüne bir de çözüm yolunu gösterecekse, bu durumda işi çözen kişi kim oluyor?

Bunu yerine asıl atılması gereken adımları genel çerçevesiyle aşağıdaki gibi sıralayabiliriz:

  • Öncelikle asıl sorunu anlamaya çalışmak
  • Çözüm yöntemi üzerinde kafa patlatmak
  • Benzer bir sorunun çözümü internette araştırmak (Daha ayrıntılı anlatıyor olacağım)
  • Ve tabi ki denemek…

Yukarıdakileri yapmaya çalıştık ve hala mı sonuç elde edemedik, işte o zaman arkadaşımızı ziyaret edebiliriz. Bu sebeple her ne kadar bize en yakın çözüm yöntemi iş arkadaşlarımız gibi görünse de başvurulacak ilk kaynak olmamalıdır.

Peki ya ilk adım ne olmalı o zaman? Yukarıda da bahsettiğim gibi, öncelikle konuyu kendimiz çözmek için efor sarf etmeliyiz. Bunun için de aslında elimizin altında İnternet gibi bir deniz-derya bulunmakta. Bu deryada boğulmak veya içinden ihtiyacımız olan nokta atışı bilgiye ulaşmak arasında doğru yolu bulmak ise tamamen bizim yeteneklerimize kalıyor. Evet, internetten “gerçek doğru” bilgiye ulaşmak gerçekten geliştirilebilen bir yetenektir. Bilinmesi gereken sadece yapılacak aramanın nasıl ve hangi kelimelerle yapılacağı. Buna belki (internet aramalarında en çok o kullanıldığı için) Google mühendisliği (!) de diyebiliriz 🙂 Mesela araba kullanırken nasıl vites değiştirileceğini öğrenmek isterken “Araba nasıl kullanılır” gibi çok geniş manalı bir arama yapmayacağımız gibi “Tavuk mu yumurtadan yumurta mı tavuktan” tarzı hiçbir noktaya ulaşamayacağımız aramalardan da uzak durmalıyız.

search-engines

Genel anlamda tüm arama motorlarında, özelinde ise Google ‘da arama yaparken sonuçlar arasında kaybolmamak için aslından çok basit ve küçük şeylere dikkat etmemiz yeterli.

  • Aramak istediğimiz konunun anahtar kelimelerini belirlemeliyiz.
  • IT sektörünün en büyük bilgi kaynağı İngilizce kaynaklardır. Bu yüzden aramımız için daha ağırlıkla İngilizce kelimeleri tercih etmeliyiz.
  • Bir yazılımcı olarak herhangi bir işin gerçekleştirilme yöntemini arıyor isek “How to…. ” ile başlayan yani “Nasıl yapılır” anlamındaki aramalardan daha nokta atışı sonuçlara ulaşabiliriz.
  • Herhangi sorun yada iş için örnek çözüm yolu arıyorsak, arama kelimelerimize “Example” yada “Sample” kelimelerini de eklemeliyiz.
  • Arama yapacağımız sorunun alanını da eklemeliyiz ki gerçekten doğru sonuca ulaşabilelim. Şöyle ki, Oracle ile bir iş yapacaksak bunu, Oracle’da Cursor lar üzerinde bir sorun çözeceksek de her iki ifadeyi arama kriterlerine eklemeliyiz.

Yukarıda sıralanan maddeleri uygularken dikkat edilmesi gereken önemli noktalardan biri, Google üzerinden arama yaparken gelen sonuçlar arasında, yazdığımız kelimelerin tamamının geçtiği bir sayfa var ise daha yukarılarda gelecektir ancak yine de bütün kelimeler geçmeyebilir sayfalardan birinde. Hatta sadece 1 kelimenin geçtiği sayfalar bile listelenecektir. Bu yüzden, sadece yazdığımız bütün kelimelerin de geçtiği sayfaların gelmesini istiyorsak arama kelimelerimizin arasına + işareti koyabiliriz.

Bir diğer nokta ise, eğer yazdığınız arama ifadesinin (bu kısa bir cümle yada örnek olarak bir şarkı sözü ise) -kelimelerin sırası dahil- tamamen aynı haliyle geçmiş olduğu sayfaları görüntülemek istiyorsak, bu arama ifadesini ” işaretleri arasında (bir alıntı söz gibi) yazabiliriz.

Bu iki örneği kendiniz de deneyerek sonuçlarını görüntüleyebilirsiniz.

Bazen de öyle bir teknoloji ile çalışıyoruz ki, o konuda internette yeterli örnek bulmakta zorlanıyoruz. Mesela ülkemizde kullanım alanı çok dar olan fakat bazı firmaların da neredeyse bütün altyapısını oluşturan PowerBuilder diye bir dilden bahsetsem acaba ne kadarınız “Evet bilgim var” diyebilir? (Bilenler yorum yazabilirler, böylece birbirimizden de haberdar olmuş oluruz 🙂 )

Böyle bir alanda çalışan sayısı az olduğu için kaynak, örnek çalışma yada sorunların çözüm yollarına ulaşmada sorun yaşıyoruz. Hele bir de bu teknoloji çok eskilerde kalmış ve hatta geliştirici firmanın bile desteğini çekmiş olduğu bir teknoloji ise.. Gel de çık işin içinden. İşte bu durumda devreye, o teknolojinin kendi online yada offline dökümanları giriyor.

Öncelikle bu tarz bir teknoloji ile çalışmaya yeni başlıyor isek, o konudaki dökümantasyonları ve mümkünse online/offline/yüzyüze eğitimlerini edinmeye çalışmalıyız. Herşeyden önce, IT sektöründeki her bir teknolojinin bir de felsefesi yada konulara yaklaşım tarzı vardır ve bu felsefeye aşina olmak, çözüm yöntemleri hakkında yorum yapmamıza da kolaylık sağlar.

Örnek vermek gerekirse .NET üzerinde veritabanı ile çalışırken DataSource dediğimiz bir kavram ve Connection objeleriyle uğraşmanız gerekirken, yukarıda bahsetmiş olduğum PowerBuilder içerisinde bunlarla uğraşmıyor, DataWindow yada DataObject denilen, biraz daha görsele yakın veritabanı bileşenleriyle çalışıyorsunuz. Başka bir örnekle daha açıklarsak, MS SQL Server ile veritabanında çalışırken -ihtiyaca göre kullanılabilse de- default olarak transaction larla uğraşmazsınız ve herhangi bir insert-update-delete işleminiz anında data üzerine yansımış olur. Ancak Oracle tarafına geldiğinizde transaction kavramı işin tam göbeğindedir ve data anlık olarak güncellenmez, commit-rollback mekanizmaları ile geri dönülebilir şekilde yönetilir.

Bunlar gibi, yaklaşım farkını öğrenmeden bodoslama işe girişmek bize zaman kaybettirmekten başka bir işe yaramaz maalesef.

İşte bu sebeplerle, yeni bir alanda çalışmaya başlıyorsak en öncelikli olarak, o teknolojinin felsefesini öğrenmemiz olmazsa-olmazlık boyutundadır. Bunu da elde etmenin yolları yine bu yazıda bahsedilenlerin tamamıdır diyebiliriz 🙂

Peki ya elimizde çalıştığımız teknolojiye ait online veya offline kaynaklar mevcut, nasıl araştırabilirim?

Bu noktada kullanılan teknolojinin o anda çalışacağımız parçacığı üzerine yoğunlaşabiliriz. Eğer mümkünse ortamın IntelliSense yada otomatik tamamlama özelliklerinden faydalanabiliriz. Mesela, yeni kullanacağımız bir component ‘in isminin yanına noktayı koyduğumuz anda açılan listede gözle gezerek ismi bizim amacımıza en uygun olan fonksiyonları bir yere not edebilir, daha sonrasında ise kaynaklar üzerinden o fonksiyonların açıklamalarını, parametreleri ile return değerlerini ve karar mekanizmalarını araştırabiliriz.

Özetlersek, çözüm sunmamız gereken ve bilgimizin eksik olduğu konuda

  • İlk önce teknolojinin felsefesi ve yeteneklerine hakim olmamız gerekiyor.
  • Buna hakim durumdayız fakat bir bileşen ile çalışmamız gerekiyor, bu durumda online-offline kaynakları, help yeteneklerini kullanmamız gerekiyor.
  • Buradan da bir sonuca ulaşamadık, bu durumda arama motorlarına başvurabiliriz:
    • Örnekleri araştırabiliriz
    • “How To” aramalarını kullanabiliriz.
  • Buradan da sonuç çıkaramamış isek, bu konuda daha önce çalışmış olan iş arkadaşlarımıza danışabiliriz artık 🙂

Hiçbir zaman denemekten korkmayın. Ya bundan olamaz dediğiniz şey yüksek ihtimalle olacaktır, bunu yazın bir kenara, bir gün hak vereceksiniz bana.

İyi araştırmalar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir