Soru Sorarken Sıkça Düşülen Hatalar

Merhaba! Foruma hoş geldiniz! Buraya yönlendirilmiş olma nedeniniz özellikle yeni gelenlerin sıklıkla yaptığı hatalardan birini yapmış olmanız. Sorun değil! Yaptığınız hatanın açıklamasını ve çözümünü aşağıda bulabilirsiniz. İlgili kısmı okuduktan sonra yazınıza geri dönüp düzeltmekten çekinmeyin lütfen. Kolay gelsin!


1. Kodunuzu oldugu gibi yapistirmissiniz

Kullanmakta olduğunuz forum yazılımı, yazıları biçimlendirmek için bir takım kurallara sahip. Kodunuzu yazı kutusuna olduğu gibi girdiğinizde okuması zor ve hatalı bir şekilde çıkıyor. Bunu önlemek için aşağıdaki yöntemlerden birini kullanmanız gerekiyor:

  • Kodu iki ``` satırı arasına almak
  • Kodu [code] ve [/code] satırları arasına almak
  • Kodu seçip </> butonunu (veya CTRL+E kısayolunu) kullanmak

Cümle içinde gecen/tek satirlik kod parçaları için söyle bir yöntem daha var:

  • Kod parcasini iki ` arasına almak

Bu hataya düşmüş olmanız maalesef daha vahim bir duruma işaret edebiliyor:


2. Yazdiginizi geri okuma aliskanliginiz yok

Potansiyel onlarca insandan okumasını rica ettiğiniz yazıyı, kendiniz vakit ayırıp okumamışsınız. Bu büyük bir bencillik örneği. Lütfen sorunuza, en az başka insanlardan göstermelerini istediğiniz özeni gösterin.


3. Yazdiklariniz okunmuyor veya anlasilmiyor

Kimseden edebi şaheser yaratmasını beklemiyoruz fakat arada bir noktalama işareti kullanmanızda fayda var. Birbiriyle alakası olmayan konuları en azından aralarına boşluk koyarak ayırırsanız, bizi insan olduğunuza (ve bizi insan yerine koyduğunuza) ikna edebilirsiniz belki.


4. Kodunuzu veya baska bir yaziyi resim (goruntu) olarak paylasmissiniz

Lütfen kodunuzu ve ilgili yazıları yazı olarak paylaşın. (Sorun çıkmaması için #1’i de okumak isteyebilirsiniz.) Bir sonraki paragraf bunun nedenini anlatacak, ilgilenmiyorsanız atlayabilirsiniz.

Yazıdan resme geçerken oluşan bilgi kaybını bir kenara koyduğumuzda bile uç büyük problem kalıyor: Resimdeki yazının fontunu, boyutunu ve rengini zevkimize ve okuma becerilerimize göre ayarlayamıyoruz, compiler, shell gibi yazı bekleyen yerlere kolayca aktaramıyoruz ve üzerinde değişiklik yapamıyoruz. Problemin çözümünün büyük ihtimalle kodda değişiklik gerektirdiğini göz önünde bulundurursak, kodun değiştirilemeyen bir şekilde sunulması ayrıca ironik.


5. Kodunuzu paylasmamissiniz

“Kodda bir hata olabilir” cevabi sizi tatmin ediyor mu? Çünkü kodun kendisini görmeden probleminizle ilgili daha fazla bir şey söyleyemiyoruz. Lütfen kodunuzu paylaşın. (Sorun çıkmaması için #1’i de okumak isteyebilirsiniz.)

Bahsettiğiniz sorunun ne olduğunu çok iyi bir şekilde anlamış olsak bile, buna yol açacak olası kod parçaları sonsuz. Bu sonsuzluk uzayındaki problemleri ve çözümleri olasılıklarına göre sıralayıp beğeninize sunmak yerine kodu paylaşmanızı beklemeyi tercih ediyoruz.

Kodunu paylaşamayan insanlarla cevaplarımızı paylaşamayabiliyoruz.

Ayrica hic bir kod parcasi paylasmazsaniz, veya paylastiginiz butun kod parcalari alinti ise (bkz: #15) size dogru seviyede cevap vermemiz zorlasir.


6. Kodunuzun tamamini paylasmamissiniz (veya kodunuz calismiyor)

Kodunuzu paylaşmışsınız, fakat paylaştığınız kısım eksik veya hatalı. Kendi bilgisayarımızda çalıştıramıyor, çözmeye çalıştığımız problemi olusturamıyoruz. (Veya problem paylaştığınız kodda yok.) Kodunuzun geri kalanı hakkında bir fikrimiz yok, varsa bile varsayımda bulunmak istemiyoruz. Yanlış varsayımda bulunursak yanlış (yani sorulmamış) bir soruyu cevaplayıp boşa vakit harcamış olabiliriz.

Lütfen kodunuzun tamamını, kendi bilgisayarımızda çalıştırabileceğimiz şekilde paylaşın. Yanında, çalıştırmak için gereken ekstra bilgileri (bkz: #7) vermeyi de unutmayın.


7. Kodunuzun nasil calistirilacagini soylememissiniz veya gereksinimlerini paylasmamissiniz

Kodunuz bir noktada dışarıdan bir girdi istiyor; bir dosyayı, vertitabanını veya başka kaynağı okuyor. Bizden bir şey bekliyor ve biz bu şeyin ne olduğunu bilmiyoruz.

Kodunuza gereken kullanıcı girdilerinin ne olduğunu söylemeniz, kullandığı dosyaları, veritabanlarını paylaşmanız lazım. Veya daha da iyisi, kodu girdi beklemeyen bir hale getirebilirsiniz. Mesela kullanıcıdan girdi alıp meyve değişkenine atayan kod kısmını meyve = "elma" gibi bir satırla değiştirirseniz size yardım etmek daha kolay olur. Ayni şekilde, sorunu çıkartan bir database’i sıfırdan yaratan kodu programınızın başına ekleyebilirsiniz.


8. Bahsettiginiz duruma (probleme) nasil vardiginizi soylememissiniz

Bulunduğunuz yerdeki sıkıntıyı anlamak, bahsettiğiniz problemi çözebilmek için oraya nasıl geldiğinizi bilmeye ihtiyacımız var. Varsa takip ettiğiniz yazı, video, vs.den başlayarak yaptığınız adımları ve sonuçları yazın lütfen. Bir terminalde çalısıyorsanız, girdiğiniz komutları ve çıktılarını paylaşın. Bir soru veya ödev uzerinde çalısıyorsanız, kendisini paylaşın.

Bu arada ne yapmaya çalıştığınızı da bilsek fena olmaz. Sizi amaçladığınız sonuca yaklastırmayacak bir adım hakkında soru soruyor olabilirsiniz. (“XY problemi”)


9. Soru sormamissiniz

Hatalı bir kodu veya dersinizin ödev metnini olduğu gibi paylaşmışsınız. Teşekkürler, fakat bu bilgiyle ne yapacağımızı bilmiyoruz. Bir konuda yardıma mı ihtiyacınız var?


10. Veritabani semaniz eksik

Bir veritabanı ile ilgili bir soru soruyorsunuz, belki bir query ile ilgili yardım istiyorsunuz. Size yardım edebilmemiz için ilgili tabloların neye benzediğini bilmemiz, hatta belki kendi database’imizde kopyalarını yaratmamız lazım. Lütfen veritabanını bir kod yardımıyla yaratıyorsanız o kodu paylaşın, veya aşağıdaki yöntemlerden birini kullanarak şemayı veya tablo tanımlarını alın:

  • SQLite kullaniyorsanız .schema komutu
  • PostgreSQL (psql) kullanıyorsanız \dt <tablo> komutu
  • MySQL kullanıyorsanız SHOW CREATE TABLE <tablo> sorgusu

11. Kullandiginiz program, kutuphane, sunucu veya hizmetin ne oldugunu belirtmemissiniz

Sorduğunuz sorunun cevabi –özellikle arama motorları tatmin edici bir cevap veremiyorlarsa– kullandığınız şeyin markasına veya modeline (versiyonuna, sürümüne) bağli olabilir.

Kullandığınız programların, programlama dilinin, kütüphanelerin, üzerinde işlem yapıyorsanız işletim sisteminin, bağlandığınız sunucu ve hizmetlerin isimlerini ve versiyonlarını (sürümlerini) belirtmeniz lazım.


12. Ne oldugu belirsiz bir aciliyet var

Durumunuzun “acil” olduğunu söylüyorsunuz fakat bu aciliyetin neden, nasıl, ne kadar süreliğine olduğunu belirtmemişsiniz. Sorunuz on dakika içinde cevaplanmazsa bir şirket mi batacak, yoksa pazartesiye yetişmezse kotu bir öğrenci sınıfta mi kalacak bilemiyoruz.

Lütfen durumun niye ve ne kadar süreliğine acil olduğunu, ve bu detayın bizi neden ilgilendirdiğini açıklayın. Veya “acil” ifadesini, ünlemlerini kaldırın.


13. Hata mesajini paylasmamissiniz

Bahsettiğiniz şeyin hata vermesine üzüldük, fakat hata mesajını bizimle paylaşmadığınız sürece yapabileceğimiz çok bir şey yok. Daha doğrusu, yapabileceğimiz sonsuz şey var fakat hangisinin size yardımcı olabileceğini tahmin etmemize imkan yok. Lütfen hata mesajının tamamını, yazı olarak paylaşın.


14. “Kodlar” degil, “kod”

"Kod"un eski anlamı “kanun sistemi”, daha da eski anlamı "kitap veya yazı"dır. (bkz: https://en.wiktionary.org/wiki/code) Tekil bir nesnenin kodlarından bahsedemeyiz, çünkü birden fazla kodu varsa bile, bunlardan bahsederken, bunlar birleşip daha büyük veya daha karmaşık tek bir koda dönüşeceklerdir.


15. Paylastiginiz kodun alinti oldugunu soylememissiniz

Başkasının kodunu paylaşmanızın bizim için hiç bir sakıncası yok*, fakat bunu belirtmezseniz sizin en az paylaştığınız kodu yazabilecek kadar deneyimli/bilgili olduğunuz varsayılır. Bunun üzerine “if’i nasıl yazacağım” gibi [temel] bir soru sorduğunuzda bizimle dalga geçiyor gibi durursunuz. Lütfen kodunuzu nereden aldığınızı ve ne kadarını anladığınızı belirtin.


16. Alintiyi nereden yaptiginizi soylememissiniz

Yaptığınız alıntı eksik, veya bağlamı dışında olduğu için pek bir şey ifade etmiyor. Özellikle, hakim olmadığınız konularda doğru alıntı yapma olasılığınız çok düşük. O yüzden iyisi mi siz kaynağını yazın, biz eksik bir şey bulursak kendimiz gidip bakalım.


17. Buradaki insanlarin arkadasiniz, calisaniniz veya borclunuz oldugunu dusunuyorsunuz

Buradaki çoğu kişi kendini geliştirmek, ölçmek veya pratik yapmak için burada. Kimsenin sizin işinizi görme zorunluluğu olmadığı gibi, konuyla ilgileneceğinin bile garantisi yok. Derdinizi ilginç ve yardım etmesi kolay kılabilmek sizin sorumluluğunuz. Para teklif etmeyi de deneyebilirsiniz; “internetteki rastgele bir insan” ile “müşteri” veya “işveren” arasında dağlar kadar fark var.


18. Sorunu parcalara bolmemissiniz

“Tusa basildiginda network istegi giden bilgisayardaki program database’e yanlis kayit ekliyor” gibi bir probleminiz var, ve bunu butun olarak ele almaya calisiyorsunuz.

Tus mu calismiyor? Veya network baglantisi mi koptu? Belki de hic olusturulmamistir. Programlardan birinde hata olabilir mi? Belki de calistirilmasi unutulmustur. Database ayarlari duzgun mu, yoksa yanlis veri mi paslaniyor? Yoksa birden fazla mi problem var?

Nasil anlasilacak? Parcalara bolerek.
Tusa basildiginda ekrana “hah” yazan kod calismiyorsa, network uzerinden program uzerinden database’e kayit ekleyen kod da calismaz. IP ayarlarini kurcalamaniza gerek yok.
Database’e “X tusuna basildi” mesaji kaydeden kod cagirdigimizda calismiyorsa, network uzerinden program uzerinden tusa basildigi icin cagrildiginda da calismaz. Klavyenin dil/duzen ayarlarina bakmaniza gerek yok.

Sorunu birbiriyle etkilesime giren parcalara bolup her parcayi kendi basina test etmeniz lazim. Basit bir tus algilama veya database’e kayit ekleme sorununuz varsa, bizi (veya kendinizi) network yapinizin inceliklerine, calismak icin uc dosya isteyen GUI programiniza bogmayin. Once tek basina calisip calismadigina bakin.

Bu yontemi fraktal bir sekilde gitgide kuculen kod parcalarina uygulamaniz da mumkun! Bir fonksiyon database’e elle girdiginiz “X tusuna basildi” kaydini alamiyorsa, koddan eklediginiz “X tusuna basildi” kaydini da alamayacaktir. Veya print("X tusuna basildi") satiri ekrana cikti vermiyorsa, database’den alinan kaydi yazdirdan kod da cikti vermeyecektir.

Bu arada bu yontemi kodu yazarken de uygulayabilirsiniz! Tus algilamayi test etmek icin network protokolunu tasarlamayi beklemenize gerek yok.




Meta: Eklemek istediginiz olursa asagiya yeni bir cevap olarak, 100’den buyuk bir sayi ile ekleyin lutfen.

Basliklari Turkcelestirmeyin, anchor’lar degisiyor ve yuzlerce link bozuluyor.

24 Beğeni

101. Gönderi başlık bölümü içeriğe uygun değil

Sıkça yapılan hatalardan birisi de budur. Gönderi başlığınız aramalarda benzer sorunları yaşayanlara kılavuz olacak şekilde konuya uygun olmalıdır. “Yardım lütfen”, “takıldım”, “kodumda hata nerede” ve benzeri başlıklar içeriğiniz hakkında en ufak bir ipucu vermez ve ne google aramalarda ne de site içi aramalarda çıkar. Bu da benzer sorunların ve problemlerin defalarca yazılmasına sebep olur.

9 Beğeni

102. Google kullanmayı denememişsiniz

Çok sık yapılan hatalardan birisi ise google'dan önce bize gelmeniz ve “Bu uygulama ne yapar”,“Bu uygulamayı nerde kullanabilirim” gibi soruları bize sormanız.Bu hareketiniz hem enerji hem zaman kaybı olur.Lütfen bize sormadan önce google'a sorun.

5 Beğeni