Harvard CS50 Kursunda sorun yaşamak

Kairay

Megapat
Katılım
20 Nisan 2017
Mesajlar
287
Çözümler
1
Harvard CS50 kursuna başladım. Her hafta başında bazı problem setleri var ve bunları çözüp kodu yazmanız isteniyor. Yeni başladığım için mi bilmiyorum fakat bunları çözemiyorum (Hafta 1'deki mario ve cash). Bu da bu konuda yeteneksiz veya yetersiz olduğumu düşündürüyor. Eğer başlangıç seviyesi için bunlar zor algoritmalarsa neden böyle zor algoritmaları çözmemizi istiyorlar? Programlamaya çok hevesliyim fakat anlayamamak beni çileden çıkarıyor. Pes etmeye niyetim yok fakat çok pratik yapıp iyi seviyeye gelememek beni endişelendiriyor. Sizin öğrenme süreçleriniz nasıldı? Yazılıma başlamak için CS50'deki bu problem setlerini çözememem bu konuda yeteneksiz olduğumu mu gösteriyor? Yazılımda iyi seviyeye gelmiş kişiler cevaplarsa sevinirim.
 
Yeni bir alana giriş yaparken, yeni bir şeyi öğrenirken herkes zorlanır. Birçokları ise öğrenme sürecini terk eder. Eğer bu aşamada direnç gösterirsen, yapmak için kendini zorlarsan, farklı yollar düşünürsen gerçekten "öğrenir"sin. Zorlanman oldukça normal, eğer bu aşamada bırakmadan devam edersen karşılığını alacaksın. Düşündüğün anlamda "yetenek" diye bir şey ise söz konusu dahi değil, hiç kimse kodlama bilerek doğmuyor bundan emin olabilirsin. Ne kadar çalışırsan o kadar karşılığını alacaksın. Kendini zorla, acelen yoktur umarım. Bir yolunu öğrenmeye çalış. Çok doğru bir kurs seçerek başlamışsın, bir an dahi şüphe etme "acaba başka bir şey mi yapsam" diye. Eğer yazılımın başlangıcında sürekli yöntem değiştirirsen bu çok büyük bir hata olur. Bir konu üzerine olağanüstü kafa yormana rağmen sonuç alamıyorsan bir miktar çözümüne bakabilirsin, ama burası çok dikkat etmen gereken bir nokta. Doğrudan çözümün tamamını inceleme, bir göz at ve sadece aklında kalanlarla benzerini yazmaya çalış. Kodu satır satır açıklayabilecek, anlatabilecek dereceye gelmediğin sürece o egzersiz boşunadır. İlerleyen zamanlarda da tekrar dön ve yardım almaksızın yazmaya çalış, problemi kafanda sürekli canlandır.
 
Yazın için teşekkür ederim. Bende böyle düşünüyorum fakat çözüme ulaşamamak beni mental olarak çok zorluyordu. Sabırlı olmak bu işin püf noktası sanırsam.
 
Genel yargilara varmakta acele etme. Ben yeteneksiz miyim, kafam yoksa bu ise hic basmiyor mu vs gibi seyler bir kenara birakip neden yapamadigini anlamaya calis.

Her programlama sorusunda verilen bir grup input ve sonunda istenen bir output olur.

Sana kagit kalem verilse ve ayni problemi cizerek yapman istense yapabilir misin? Evet ise koda dokemiyorsun, hayir ise algoritma kurgulamakta problem yasiyorsun.

Eger koda dokemiyorsan pratik yapmalisin. Algoritmada zorlaniyorsan bu sefer de verilen sorunun tarzina gore cozum uretebilmeyi ogrenmen gerekiyor. Mario nasil bir soru bilmiyorum ama eger senden string manipulasyonu isteniyorsa ona gore, dynamic programming isteniyorsa ona gore, greedy algorithm isteniyorsa da ona gore farkli sekilde algoritma kurabilmeyi ve sorunu bu sekilde cozebilmeyi ogrenmelisin. Egzersiz bu yuzden yapiyoruz.

Eger cs50 giris seviye dersi ise muhtemelen sadece conditional ve loop ile cozebilecegin bir sorudur. ( if-else-while-for ). Benzerleri uzerinde antreman yaptikca oturur, endiselenme. Sonucta bu bir meslek, nasil bir forvet oyuncusu gunde saatlerce topa duzgun vurma antremani yapiyorsa senin de problemi dogru modelleyip dogru cozebilme antremani yapman, kendini gelistirmen gerekli. Zamanla gelistigini fark edeceksin. Cogu insan bu yuzden 2 sene once yazdigi koda baksa "Bu ne lan, bunu ben mi yazmisim?" gibi tepki verir.
 
Algoritmada problem yaşamıyorum. Dediğin gibi koda dökemiyorum sadece. Yorumun için teşekkür ederim. Hem algoritma hem de kod olarak pratik yapmamı sağlayabilecek önerileriniz var mı?
 
Algoritmada problem yaşamıyorum. Dediğin gibi koda dökemiyorum sadece. Yorumun için teşekkür ederim. Hem algoritma hem de kod olarak pratik yapmamı sağlayabilecek önerileriniz var mı?
Çözmeye devam et bence. Denerken de bir şeyler öğreniyorsun en azindan. Soruyu ilk once analiz et hemen kod yazmana gerek yok. Mantigini anladiktan sonra kod kismini dusunursun.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…