Online soru sorma

Hadi Tok
4 min readApr 4, 2021

Bir süredir online/offline olarak yazılım topluluklarının içerisindeyim. Elimden geldiğince bildiklerimi paylaşmaya çalışıyorum. Bunun bir yolu da Slack, Telegram gibi ortamlarda soru cevaplamaya çalışmak. Yazılım alanında tecrübe kazandıkça nasıl soru sorulması gerektiği daha çok anlaşılıyor fakat yazılıma yeni başlayanların da bu kuralları bilmeleri sorularına cevap alma şanslarını arttıracaktır. Türkçe böyle bir kaynak var mı diye bakındım fakat bulamadım. Sizin de aklınıza gelen eksik kalan yerler varsa yorum yazarsanız sevinirim.

Soru sormadan önce

Probleminizi Google’da aratın. Google’da arama yapabilmek bir yazılımcı için en gerekli becerilerden birisidir. Ne kadar tecrübeli olursa olsun bir insanın herşeyi bilme veya hatırlama şansı yok. Yazılım’a yeni başlıyorsanız sormak istediğiniz şey %99 daha önce sorulmuş ve cevaplanmıştır. Bu yuzden bir an önce bir probleminiz olduğunda bunu Google’dan nasıl aratacağınızı öğrenin.

Nasıl arama yapacağınızın detaylarına çok girmeyeceğim ama uygulamanız crash alıp kapanıyorsa crash ile alakalı bilgilerin yer aldığı stacktrace bir yerlere loglanıyordur. Android’de stacktrace’ler Logcat’e loglanır. Karşılaştığınız stacktrace’in ne demeye çalıştığını anlatan bu yazıyı da incelemeniz faydalı olacaktır. Stacktrace’in ne dediğini anlamak kendi kendinize sorunu bulmanızı sağlayabilir.

Bulduğunuz cevabın probleminizi çözeceğini anlamak ilk başlarda zor olabilir. Bu yüzden bir çok şeyi denemeniz gerekebilir. Stackoverflow’da daha yüksek oy almış cevapları uygulamak başarı şansınızı arttırır. Ama bazen bir problemin farklı kaynakları olabiliyor. O yüzden problem çözülene kadar farklı çözümleri deneyin. Bir cevap sorununuzu çözüdüyse oy verebiliyorsanız oy verin. Bu başkalarının da doğru cevaplara ulaşmasını sağlayacaktır.

Google’da arama yaptınız çözüm bulamadınız ya da bulduğunuz çözümler işinize yaramadı. Artık soru sormanız gereken noktaya geldiniz.

Nerelerde sorularımı sorabilirim?

Bu konuda ilk akla gelen yer tabiki stackoverflow.com. Stackoverflow’da nasıl soru soracağınız ile alakalı bu yazıyı okuyabilirsiniz. Bu yazı genel olarak nasıl soru sormanız gerektiği konusunda da yardımcı olacaktır. Stackoverflow’da soru sormak biraz daha tecrübe gerektiriyor fakat bu sizi alıkoymasın. En fazla eksi oy alırsınız ya da sorunuz cevaba kapatılır. Stackoverflow’da reputation denilen bu internet puanlarının pek bir önemi yok açıkcası. Soru sorabilme becerisini kazanmak daha önemli.

Stackoverflow dışında Android ile akla gelen türkçe soru sorabileceğiniz platformlar: GDG İstanbul slack, Android Türkiye telegram, Android İstanbul slack. Diğer teknolojiler ile alakalı benzer gruplar var. Google araması ile bulabilirsiniz.

Nasıl soru sorabilirim?

İlk olarak şunu bilmeniz gerekiyor. Problem sizin probleminiz ve problemin çözümü için çaba göstermesi gereken kişi sizsiniz. Sizin yapmanız gereken şeyleri başkasının yapmasını beklemeniz sorduğunuz soruya cevap alma şansınızı düşürür. Sorunuzu sorarken bunu aklınızda bulundurmanızda fayda var. Yani soruyu cevaplayacakların işini ne kadar kolaylaştırabilirim diye düşünün.

Soru sorabilir miyim?

Online ortamlarda soru sormanın birinci kuralı budur: ‘Soru sorabilir miyim?‘ diye sormayın. Zaten soruyu soracağınız ortam muhtemelen soru sormak için kurulmuştur. Bu yüzden direkt sorunuzu sorun. Benzerbir soru kalıbı “Android’den anlayan kimse var mı?”. Bunu da sormanız çok gereksiz. Zaten sorduğunuz sorunun cevabını bilen varsa cevaplayacaktır.

Özelden yazma

Soruları cevaplayanlar gönüllü insanlar. Bu işi para için değil, insanlara yardım etmek ve birlikte öğrenmek için yapıyorlar. Sorduğunuz soru cevaplandığında başkaları da bu cevaptan faydalanabiliyor. Bu yüzden eğer karşı tarafı tanımıyorsanız ya da özelden sormak için olur almadıysanız özelden yazmak çok iyi karşılanmaz. Çünkü birisinde özelden yazdığınızda bu topluluk faydası olmaktan çıkıp bireysel faydaya dönüyor. Bence kişisel olarak birinden problemimizi çözmesini beklemek için alacağımız hizmetin ücretini ödememiz gerek. Sonuçta bu işten para kazanıyoruz/kazanacağız ve bizim yapmamız gereken bir işi başkasının bizim için yapmasını istiyoruz.

Spesifik olun

Bir chat uygulaması nasıl yazabilirim?” gibi bir soruya cevap almanız çok olası değil. Bu online platformda kısa sürede açıklanabilecek bir soru değil ne yazık ki. Böyle bir uygulama yapabilmek için belki yıllarca tecrübe gerekli ve boyle bir soru sormanız böyle bir tecrübeniz olmadığının kanıtı. Sormanız gereken soru daha çok “Chat uygulamasının backendi için hangi teknolojiyi tavsiye edersiniz?” ya da “Chat uygulaması geliştirmek için tavsiye edebileceğiniz bir kaynak ya da kaynak kod var mı?” ya da “Chat uygulaması geliştiriyorum, mesajlar çok geç geliyor. kodum bu adreste. Gecikmenin sebebini nasıl anlayabilirim ve çözebilirim?” gibi olmalıdır.

Soru sorma formatı

Sorunuzu sorarken:

  • Yazdığınız kodun ne yapmasını beklediğinizi fakat ne yaptığını
  • Sorunun çözümü için denediğiniz şeyleri ve aldığınız sonuçları
  • Kodunuzun gerekli kısımlarını
  • Aldığınız hata mesajlarını veya stack trace’i

paylaşmanız güzel olur.

Bazen bir problemi çözmeye çalışırken başka bir problemle karşılaşırız. Bu durumda sorumuzun içerisinde asıl problemimizi de belirtmemiz faydalı olur. Denediğimiz şeyleri paylaşmamız başkalarının denediğimiz şeyi önermesini ve vakit kaybını önler. Kodumuzu veya stacktrace’i paylaşırken screenshot alıp paylaşmayın. Bu aldığımız hata mesajını ya da kodu aratıp çözüm bulmaya çalışacakların işini zorlaştırır. Paylaşmak istediğimiz kodu gist üzerinden github hesabımız ile paylaşabiliriz.

Soru sorduktan sonra

Sorduğunuz soruları kimsenin cevaplama zorunluluğu yok. Bunu aklınızda bulundurun. Beklediğiniz türde cevap gelmese bile saygılı olun. Verilen cevabı anlamaya çalışın ve denemelerinizin sonuçlarını bildirin. Sorunuzu başka bir şekilde çözerseniz bile nasıl çözdüğünüzü sorduğunuz ortamlarda paylaşın.

Son olarak soru sorulan ortamların parçası olmaya çalışın. Başka insanların sorularını cevaplamaya çalışın. Bu sizin daha fazla şey öğrenmeniz için faydalı olacaktır.

--

--

Hadi Tok

Google Developers Expert for Android | Software Engineer @Facebook | ⋰Ẍ⋱Circassian⋰Ẍ⋱