Soruyu İyi Okuyun
Bir çok kez, verdiğim cevabın çok iyi olduğunu düşünüp soruyu tekrar okuduğumda aslında soruyu sorana çok da yardımcı olacak bir cevap veremediğimi gördüm.
Sorular yazılırken genelde kötü yazılırlar, önemli bilgileri içermezler, açık değildirler, uzun uzun kod parçaları içerip soruna sebep olan kod parçasını içermezler. Soruyu sorandan açık olmayan kısımlarla ilgili bilgi alabilirsiniz. Fakat kendi anladığınız şekilde, kendi varsayımlarınıza dayanarak cevap yazacaksanız, cevapta bu varsayımları tek tek ve açık bir şekilde yazın. Bu yanlış anlaşılmayı arttırtmaz aksine, soruyu soranın muallakta bıraktığı kısımlara işaret eder böylece soru daha açık hale getirilebilir.
Kod Örnekleri Önemlidir
Az kalsın bu yazıyı kod örneklerinden bahsetmeden bitiriyordum.
Sorulara bir kaç satırlık kod örneğiyle cevap vermek soruyu sorana çok yardımcı olur. Eğer verilen kod sorudaki problemi çözmede yardımcı oluyorsa, bununla ilgili hemen bir kaç noktaya değinelim
- Gönderdiğiniz kodun derlenebilir olduğundan emin olun. Bu herzaman mümkün olmayabilir, mesela işyerinde .Net yüklü olmayan bir makineden .Net kodu atıyor olabilirsiniz, yada trendesiniz dizüstü bilgisayarınızdan Java kodu yolluyorsunuz bilgisayarınızda Java olmayabilir. Böyle zamanlarda kendiniz kodu sıkı sıkıya kontrol edin, derlenebileceğinden emin olun.
- Kod parçaları kabul edilebilir ama hiç birşey baştan sona çalışan bir programın yerini tutmaz. Eğer kısa konsol programları yazma konusunda pratiğiniz yoksa edinmeye çalışın. Baştan sona çalışan bir uygulamayı 15 dakikada yazabilirsiniz fakat bu tüm çözümü vermeyebilir, önemli değil en azından çalıştığını göstermiş olursunuz. Kodun içinde ihticayınız olmayan herşeyden kurtulun, sade bir kod gerçekten soru sorana çok yardımcı olacaktır.
- Kodunuzun görünümünün, formatının düzgün olmasına dikkat edin. Mümkünse tek bir kod çağrısını bir satıra yazmaya çalışın kodu ortadan bölüp alt satırlara geçmeyin. Bu herzaman pratikte uygulanabilir değilsede yinede bu kuralı takip etmeye çalışın. İndentasyona dikkat edin, döngüler if,else blokları iç içe girdiğinde bunları 2 satır boşlukla ayırmaya çalışın.
- En son ortaya çıkacak kodda olması gerektiğini düşündüğünüz kısımları es geçmeyin. Örnek kodda yazmasanız bile yorum olarak koda girin. Mesela
//Buraya bir hata yakalama kodu gelecek şeklinde. Bu dediğim gibi, namespace, package gibi örnek kodda kullanılması gerekmeyen şeyleri içermiyor. Namespace ve packageları örnek kodda atlayabilir ve de hiç bahsetmeyebilirsiniz. Kodunuzda bellek tüketimi gibi konularda açık olmadığına dikkat edin çünkü kodunuzda böyle bir hata varsa bu örneğinizi kullananda da olacaktır.
Açıklamasız kod, nadiren bir işe yarar. Bu yüzden kodunuzu bir kaç cümle ile açıklamayı es geçmeyin.
Soruya Cevap Verin ve Muhtemel Yan Etkilerini da Gündeme Getirin
Yazılım geliştiriciler herzaman bir problemi bizimkiyle aynı yolu kullanarak çözmezler. Sorulan sorudanda bu açıkça anlaşılır, sundukları çözüm bizim için ilk başvurulması gereken çözümlerden biri değildir, yada bizim için makul bir çözüm değildir ya da tamamen kötü bir fikirdir.
Bazen sundukları çözümler çok kötü olsa, kullanıcılarına zarar verse ve güvenlik açıklarıyla dolu olsa bile yapılabilecek en iyi şey, soru sorana bunun neden kötü bir fikir olduğunu nelere yol açabileceğini dikkatlice ve kibarca açıklamaktır. Genelde en iyi yöntem, sorulan soruyu cevaplayıp daha iyi çözüm yollarını da cevaba eklemektir. Ben genelde önce alternatifleri sıralayıp sonra sorunun cevabını yazmayı tercih ederim bu sayede soru soran cevabımı okurken ilk önce alternatif çözüm yollarını okuyacağı için yaptığı yanlışı önceden farkedecektir. Onları kendi çözümlerinden vazgeçirecek kadar ikna edici olun. Yani “Bunun sakın yapmayın”, “Bunun yapmamalısınız çünkü” kadar etkili değildir.
Tahmin Edin, Ama Dürüst Olun
Stack Overflow’da iki kere, bir soruya çok emin olmadan cevap verdiğim ve cevabımın doğru olduğu hakkında ısrar ettiğim için, eksi puan aldım.
Bazı sorular uzmanlığınızın olmadığı alandan gelebilir fakat sanki daha önce bu sorunla karşılaşmış gibi hissedebilirsiniz. Bu durumlarda cevabınız belki yardımcı olabilir, en azından soruyu sorana doğru sizinki olmasada doğru cevabın hangisi olduğu konusundan fikir verebilir.
Mümkün Olduğunca Hatasız Cevaplar Verin
Doğru cevap, yanlış cevaptan tabi ki de herzaman daha yararlıdır. Stack Overflow’da mail gruplarında forumlarda bir çok soruya yanlış cevap verildiğini görürsünüz. Bunlara karşılık
- Yanlış cevaplara karşı mücadele edin.
- Doğru cevabı siz sağlayın.
Bunu yapmanın en kolay yollarından biri de kanıt sunmaktır. İddaanızı hiç bir şüpheye yer bırakmayacak şekilde kanıtlandırırsanız, kimsenin size inanmamak için bir sebebi kalmaz. Burada demek istediğim, verdiğiniz cevaba her karşı çıkan için kanıt aramak değil, ama cevabınızın yanlış olduğu konusunda ısrar edenler olursa kanıtlar tartışmaya son noktayı koyar.
Kanıtları bulabileceğiniz diğer bir kaynak da yazılım dokümantasyon ve spesifikasyonlarıdır. Benim için genelde eğer şüphelendiğim birşey yok ise genelde dokümantasyon yeterli bir kanıttır.
İlgili Kaynakların Linklerini Verin
Stack Overflow’da cevapla ilgili kullanılan kaynakların cevaba eklenip eklenmemesi ile ilgili bir soru var. Bana göre kesinlikle kullanılan kaynaklar belirtilmeli bu verilen cevaba değer katar.
Genelde aşağıdakileri kaynak linki olarak veririm
- MSDN veya JavaDoc dokümantasyonu ve diğer diller için muadilleri. MSDN linkleri eğer şu şekilde, http://msdn.microsoft.om/foo(VS80).aspx, bitiyor ise parantez içindeki kısmı attığınızda herzaman en son versiyona sizi yönlendirir. (http://msdn.microsoft.om/foo.aspx)
- Java ve C# spesifikasyonları. C# için word dosyasına link veririm fakat word dosyasına istediğiniz bölüme link verememe ve web tarayıcınızda açılmama gibi bir dezavantajı var.
- Kendi makale ve blog yazılarım.
- Wikipedia.
- Ulaşılabilir diğer kaynaklar.
Burada kaynağın ulaşılabilir olması önemli, ayrıca vereceğiniz linklerin kaynaklarının ileride kaldırılıp kaldırılmayacağından emin olamazsınız. Burada önemli bir nokta verdiğiniz kaynakla ilgili özet bir bilgi linkle beraber eklemek. Çünkü link tek başına okuyucuyu çekmez, ama verdiğiniz linkin özet bir içeriği okuyucunun ilgisini çekebilir.
Okuyucunuza Önem Verin, Dilbilgisi, Yazım Kuralları, Yazım Stili
Bu konuda şanslıyım çünkü ana dilim İngilizce ama buna rağmen sorulara cevap yazarken İngilizcemin anlaşılabilir olmasına çok dikkat ediyorum. Bir cümleyi en sade ve düzgün şekilde yazabilmek için bazen defalarca yazdığım oluyor. Burdan şöyle bir şey de gözlemledim, düzgün dilbilgisi ve yazım kullanılan cevaplar aynı içeriğe sahip olmasına rağmen, düzgün dilbilgisi ve yazım kullanılmayanlardan daha yüksek puan alıyorlar.
Yazım şeklinin içerikten önemli olduğunu iddaa etmiyorum sadece ikisininde önemli olduğunu savunuyorum. İnsanlar için en yararlı cevapları veriyor olabilirsiniz fakat bunu diğer insanlara düzgün bir şekilde aktaramadıktan sonra gerçekten cevaplarınızın onlar için çok fazla bir önemi yok.
Kısa da Olsa Cevap Vermek, Hiç Cevap Vermemekten İyidir
Boş vakit buldukça Stack Overflow’daki sorulara cevap vermeye çalışıyorum. Bir soruya iyi bir cevap verebilmek için yaklaşık 15 dakika harcamak gerektiğini düşünüyorum fakat ya sadece 30 saniyem varsa. Eğer soruya zaten cevap verilmişse, 30 saniyede vereceğim cevap çok şeyi değiştirmeyecek fakat soruya hiç cevap verilmemiş ise, püf noktalara değinen kısa bir cevap yazabilirim.
Daha sonra vakit bulduğumda geri dönüp verdiğim cevabı düzenlerim daha geniş ve açıklayıcı bir cevap veririm, bu zamana kadar verdiğim kısa cevap da soruyu sorana denemek için bir fikir verir.
Verdiğiniz Kötü Cevapları Silmekten veya Tekrar Düzenlemekten Çekinmeyin
Bir çok soruya cevap veriyorsanız bazılarının soruyu sorana çok yardımcı olmaması, verilen cevaplar arasında en iyi olmaması kaçınılmazdır. Verdiğiniz cevap belki de en iyi cevaptı ama daha sonra aynı soruya cevap verenler sizin verdiğiniz cevabı da kapsayan daha iyi cevaplar verdiler. Bu gibi durumlarda cevabınızı silebilir hatta daha iyisini yazmak için düzenleyebilirsiniz.
Örneğin verdiğin cevapta problemin kaynağı sizin tahmin ettiğinizden farklıydı. Ozaman verdiğiniz cevap yine soru soran için işe yaramazdır. Böyle durumları okuyucuların verdiği oylardan tanıyabilirsiniz bazende doğrudan kendiniz keşfedersiniz.
Kibar Olun
Bu bölümü eklediğim için kendimden utanıyorum, ve benimde bu konuya dikkat etmem gerektiği için daha da fazla utanıyorum. Ama altı üstü bir soru için kaba olmaya gerek yok. Sorulara cevap verirken insanlara karşı kırıcı ve sert olabilirsiniz, hatta verdiğiniz cevabı okumadıkları için bile insanlara karşı kırıcı olabilirsiniz. Bunun sonucunda gereksiz bir tartışma başlayabilir şunu bilin ki bu tartışmaların kazananı olmaz o yüzden bunlardan kaçının. Unutmayınki internetin öbür ucunda cevap verdiğiniz tartıştığınız insan oturuyor ve o da şuanda sizin ona sinirlendiğiniz kadar size kızmış durumda. Eğer tartışma kontrolden çıktıysa, bu tartışmaya devam etmenin yapıcı olmayacağını söyleyin ve bırakın. ( Söylemesi yapmasından daha kolay biliyorum. )
Bir daha ki sefere, bir soruya cevap verirken yukarıda anlattığım duruma düşersem lütfen bana bu yazıyı hatırlatın ve “Kesinlikle ben haklıyım” dersem kesinlikle bir özür olarak kabul etmeyin.
Cevap Verip Kaçmayın
Bazen verilen cevap hemen hemen neredeyse %99 oranında doğrudur. Ama bu kalan %1 çok fark yaratabilir. Okuyucu cevabı tamamen doğru anlamış yada tamamen yanlış anlamış da olabilir.
Stack Overflow cevabınıza yapılan yorumları takip etmenize oldukça kolaylaştırıyor. Burayı takip edip anlaşılmayan noktalara açıklık getirebilirsiniz. Çoğu forumda da bu konu değiştiğinde bana mail gönder gibi özellikler var bunları kullanabilirsiniz. Gerçekten soruyu soran için, sorununu çözecek gibi duran bir cevabı sadece bir kaç noktası muallakta kaldı açık değil diye uygulayamamak, veya cevabı yazandan ufak bir açıklama daha gelse herşey çözülecekken bunu yapamamak çok can sıkıcıdır.
Hepsini toparlarsam
Tadını Çıkarın
Tecrübelerime göre en iyi cevapları yazan kişiler, başkalarına yardım etmeyi en çok kişiler olmuştur. Bunu bir iş olarak yapmayın, çünkü bunun için kimse size para ödemiyor, kimse sizi bir soruya cevap veremediğiniz için suçlamıyor. Sorulara cevap vermekte istekli olduğunuz zamanlar ayırın kendinize ve bu işi yaparken tadını çıkarın zevk için yapın. Gerçekten bildiğiniz bir konuda yararlı bir cevap yazdınız kendinize bir kahve koyun ve YouTube da bir video izleyin yada zevk aldığınız başka bir şey yapın çünkü yeni soru varmı diye kontrol etmek veya onlara cevap vermek zorunda değilsiniz bu işi sevdiğiniz için yapıyorsunuz.
Not: Yazının orjinali için tıklayınız…