Tag Archives: stackoverflow

Stack Overflow Nedir? Etkİlİ Şekİlde Nasıl Kullanılır?

Günümüzde programcıların internette en çok başvurduğu yer Stack Overflow. Peki bu siteyi gerçekten kullanmayı biliyor muyuz? Nasıl kullanılır? Hangi sorular sorulabilir? Hangi sorular sorulmamalıdır? Kuralları nelerdir? Türkiye’deki 3. en yüksek reputation puanına sahip kişi olarak (kaynak: https://data.stackexchange.com/stackoverflow/query/90536/top-users-turkey) bu videoda bu altın değerindeki siteden en iyi şekilde nasıl yararlanabileceğinizi ve kurallarını anlatmaya çalıştım.

➡️ Stack Overflow nedir ve ilk olarak ne zaman kullanmaya başladım?

Stack Overflow en basit tabiriyle bir programlama soru cevap sitesi. Programlama ile ilgili bir sorunuz varsa sorabileceğiniz, başka programcıların sorularını yanıtlayabileceğiniz ve onlarla fikir alışverişi yapabileceğiniz (meta siteleri) bir internet sitesi. 2008 yılında Jeff Atwood ve Joel Spolsky tarafında kuruldu, ben de özellikle 2012 yılında askerden geldikten sonraki dönemde yoğun olarak kullanmaya başladım.

Kaynak: https://stackoverflow.com/tour

➡️ Stack Overflow’da hangi konularda sorular sorulabilir?

Stack Overlfow’da şu tip sorular sorabilirsiniz;

💡 Spesifik programlama problemleri

💡 Yazılım algoritmaları

💡 Programcılar tarafından düzenli kullanılan yazılım araçları

💡 Yazılım geliştirme ile ilgili spesifik cevap verilebilen sorular.

Sormak istediğiniz soru bu kategorilerde olsa bile aşağıdaki kategorilere uymaması gerekir;

🔴 “Kodum neden çalışmıyor” tarzı sorularda minimal bir kod örneği vermemek

🔴 Küçük yazım hatasından kaynaklanan sorular

🔴 Ev ödevimi yapamıyorum. https://meta.stackoverflow.com/q/334822/447156

🔴 Kitap, uygulama, yazılım kütüphanesi tavsiyeleri

🔴 Bilgisayar donanımı ve network ile ilgili sorular

🔴 3. web siteleri ile ilgili sorular

Kaynak: https://stackoverflow.com/help/on-topic

➡️ Stack Overflow’da hangi konularda sorular sorulmamalıdır?

Sohbet edici, açık uçlu sorular genellikle Stack Overflow’da sorulmaması gereken sorulardır.

🔴 Temel amacı programlama olmayan sorular.

🔴 Her cevabın doğru olduğu sorular. “Favori editörünüz hangisi?”

🔴 Gerçekte bir sorunun olmadığı sorular. “Diğer insanların bu konuda ne düşündüklerini merak ediyorum.”

🔴 Açık uçlu ve varsayımsal sorular: “Şöyle olsaydı ne olurdu?”

🔴 “Bu araç çok kötü, değil mi?” Kaynak: https://stackoverflow.com/help/dont-ask

➡️ Bir sorunun kapatılması ne anlama gelir?

Bir sorunun kapatılması, o sorunun muhtemelen Stack Overflow’a uygun olmadığı anlamına gelir. Kapatılan sorulara cevap veremezsiniz. Bu sayede kötü cevapların da önüne geçilmiş olur. Kapatılma nedenlerine bakacak olursak;

💡 Duplicate: Sorunuza çok benzer olan bir soru daha önce sorulmuş.

💡 Off-topic: Sorunuz konu olarak bu siteye uygun değil.

💡 Needs details or clarity: Sorunuz yeterince açık değil veya flu.

💡 Needs more focus: Tek bir soruda “tek bir soru”

💡 Opinion-based: Fikir bazlı sorular.

Eğer reputation puanınız 3000’den fazlaysa bir soruyu kapatılması için oylayabilirsiniz. Unutmayın ki, kapatılan bir soru her zaman tekrar açılabilir. Kaynak: https://stackoverflow.com/help/closed-questions

➡️ Nasıl iyi bir soru sorabilirim?

💡 Ara, ve araştır.

💡 Sorununuzu açık bir şekilde belirten bir başlık

💡 Önce açıklama, sonra kod

💡 Diğer kişilerin de aynı hatayı almasını sağlayın.

💡 Tüm ilgili tag’ları ekleyin.

💡 Submit etmeden sonra bir kez tekrar okuyun.

💡 Submit edin ve gelen feedback’lere cevap verin.

Kaynak: https://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/

➡️ Minimal ve tekrarlanabilir bir örnek nasıl oluşturulur?

Kaynak: https://stackoverflow.com/help/minimal-reproducible-example

➡️ Soruma kimse cevap vermezse ne yapmalıyım?

Bounty sistemi ile ilgi çekebilirsiniz: https://stackoverflow.com/help/bounty

➡️ Reputation sistemi nedir? Nasıl çalışır?

Reputation, topluluğun size ne kadar güvendiğinin bir ölçüsüdür; meslektaşlarınızı ne hakkında konuştuğunuzu bildiğinize ikna ederek kazanılır. Ne kadar çok reputation kazanırsanız, o kadar çok ayrıcalık kazanırsınız ve sitede o kadar çok araca erişebilirsiniz.

➡️ İyi bir cevap nasıl yazılır?

Kaynak: https://stackoverflow.com/help/how-to-answer

10 Milyon

Sabah rutinlerimden biri Stack Overflow‘a bakmak ki yolunuz bu bloğa düştüyse muhtemelen oradan gelmişsinizdir. Genellikle c#, datetime, veya timezone gibi ilgimi çeken etiketlere sahip sorulardan cevaplayabileceğim olanlar var mı diye bakarım. Belirli bir yerden sonra bağımlılık haline geldi bu durum bende. Bunu birkaç senedir düzenli yaptığımdan dolayı da Türkiye’deki en fazla rep puanına’a sahip kullanıcılar arasına girdim. Tabi bu istatistik yurt dışında yaşayan Türk kullanıcılarını saymadığından (sadece lokasyon bazlı) pekte havalı bir istatistik sayılmaz.

Birkaç hafta önce profilim sayfama baktığımda şunu fark ettim;

Bunun ne olduğunu bilmeyenler için şöyle özetleyeyim; Stack Overflow birkaç sene önce profil sayfasına kullanıcıların yaklaşık olarak kaç defa görüntülendiğine dair bir istatistik ekledi. Bu sayede hem kullanıcılar, hem de o kullanıcının sayfasını ziyaret eden herkes bu kişinin bu istatistiğini görebiliyor hale geldi.

Benim profilimde de bu sayı yazıyor. 10 milyon.. wow. Bu çok fazla. Gerçekten bu site içerisinde yazdığım içerikler bu kadar (kabaca kişiye) görüntülenmiş olabilir mi? Sonuçta Stack Overflow’da bir post’u birden fazla görüntülediğinizde o post içerisindeki görüntülenme sayısı artmıyor. 10 milyon kişi mi faydalandı benim yazdıklarımdan? Veya aynı mantık ile bir kişi 10 milyon defa mı faydalandı? Veya 10.000 kişi 1000 defa?

Biraz araştırdım, örneğin yazdıkları post içerisinde bu istatistiğin şu şekilde hesaplandığı yazılıyor;

  • Questions
    • Non-deleted only
  • Answers – Views of the parent question for answers that are:
    • Non-deleted AND
    • Score > 0 AND
    • Also meets one or more of the following criteria:
      • In the top 3 answers OR
      • Is the Accepted Answer OR
      • Score at least 5 OR
      • Has at least 20% of the total vote count

Hmm,  “views of the parent question for answers that are..” kısmı biraz garip. Yani benim verdiğim cevapların görüntülenme sayısı, sorulan sorunun görüntülenme sayısına göre belirleniyor. Aslında biraz anlaşılabilir, çünkü Stack Overflow verilen cevapların görüntülenme sayısını tutmuyor. Sadece soruların görüntülenme sayısı istatistiği var. Bu yüzden o soruyu ziyaret eden kişi, sizin cevabınızı görüntülememiş olabilir.

Stack Exchange Data Explorer içerisinde bu istatistiğe en yakın olacak şekilde bir sorgu yazılmış Martin Smith adlı kullanıcı tarafından. Buradan baktığımda benim için en fazla view alan cevabım 444.000 küsür ile Converting dd/mm/yyyy formatted string to Datetime sorusunda. Evet bu rakam sorulan sorunun görüntülenme sayısı. Benim cevabım burada seçilmiş cevap değil. Peki seçilen cevap gerçekten bu kadar görüntülendi mi? Ya benim cevabım?  Benim cevabım en fazla oy alan cevap bile değil. Fakat yukarıda bahsettiğim “In the top 3 answers” kuralına uyduğu için hesaplamaya dahil edilmiş görünüyor.

Hatta Joel Spolsky, Bits & Pretzels için yaptığı “How to write the script for the future” isimli konuşmasında da (05:00’ten sonra) Jon Skeet‘in 250 milyon’dan fazla kişiye yardım ettiğini belirtiyor.

Neresinden bakarsak bakalım, “people reached” garip bir istatistik türü. Hiçbir şekilde o kişinin sizin cevabınızı okuduğunu ispatlayamıyorsunuz. O zaman bu sayı ne tam olarak? Fikrimce sizin bir şekilde “katkıda bulunduğunuz” içeriğe ait sorunun görüntülenme sayısı. Bu sayı sizin içeriğinize ait doğru rakamı veriyor olabilir veya olmayabilir.

Fakat bu istatistiğin kullanıcılar arasında bir etkisinin olduğunu düşünüyorum. En azından benim tarafımda şöyle bir etkisi oldu; “Neden bunu daha fazla yükseltmiyorum ki?”. Jeff Atwood – ki kendisi Stack Overflow kurucularından biridir Joel Spolsky ile birlikte – Because Reading is Fundamental isimli yazısında şöyle diyor;

If I have learned anything from the Internet, it is this: be very, very careful when you put a number next to someone’s name. Because people will do whatever it takes to make that number go up.

Tabi ki asıl amacım hiçbir zaman sadece buradaki sayıyı yükseltmek olmadı. Stack Overflow’da yazmakta, yazabilmekten her zaman keyif aldım bir programcı olarak. Bilmediğim bir şeyi sormak, bildiğim bir konu hakkında bir şeyler yazmak, bilmesem bile ilgimi çeken bir konu ise o soruya cevap verilene kadar çözümü için araştırma yapmak bir programcılar için elzem bir durum olmalıdır düşüncesindeyim. Fakat burada Jeff’e katılmamak elde değil. İnternet ortamında hangi web sitesinde olursanız olun, klasik bir rep puan sayısı olsun, veya o sitedeki ilerlemenizi gösteren bir progress bar olsun, bu durum kişinin siteye karşı gösterdiği ilgilide otomatik olarak bir arttırım sağlıyor. 

Uzun lafın kısası, 10 milyon olmadı da diyelim ki 5 milyon oldu o da olumlu..