Benim tabirim ne kadar çok çamura batarsan o kadar gelişirsin.
Ne kadar çok kod yazarsan o kadar güzel kod yazabilmeye başlarsın. Ama yazdığın kodlar küçük projeler şeklinde olacak. Gerçi bu biraz nasıl daha güzel kodlarsın sorusunun cevabı oluyor ama bilgi bilgidir.
Nasıl algoritma yeteneğini geliştirirsin? Birkaç tavsiyede bulayım,
1-Veri yapıları konusuna çalış. Hatta çok çalış. Hangi veri yapıları neden kullanılır, hangisini günlük hayatımda kullandığım uygulamalarda kullanmış olabilirler gibi düşünmeye çalış. En basitleri zaten stack (yığın), queue(kuyruk), liste diye gidiyor. Sonra ağaçlar konusu ve graf konusu geliyor. Bunların nasıl çalıştığını ve nerelerde kullanacağın hakkında çalış ki çok büyük oranda sorunlarının çözümü bu konulardan geliyor. Hatta google'da nasıl iş alınır gibi bir blog sayfası vardı, yazar özellikle graf konusuna vurgu yapıyordu.
2-Arattırma, sıralarttırma algoritmalarının nasıl çalıştığına bak.
3-Bunlardan sonra knapsack, traveler-salesman gibi konular var onlara da bakabilirsin.
4-Codingame sitesi çok güzel bir sitedir. İngilizcen yeterliyse orada çok güzel puzzle sorular var çözmeye çalışabilirsin, ya da benzeri siteler var hackerrank, codingwars gibi.
5-Ben ilk başlarda oyun yazmaya çalışıyordum. Yılan, araba yarışı, tetris gibi oyunlar çok güzel antrenman oluyor.
6-Linux kullanımı güzeldir, konsol üzerinden işlemlerini yap kafan sürekli kodlama mantığıyla düşünecek şekle gelsin.
7-Algoritmalar kitabı olması lazım, Türkçe'si de çok güzel. Linkini veriyorum, bu kitaptan faydalanabilirsin. Ben bayağı okumuştum zamanında.
http://www.dr.com.tr/Kitap/Algoritmalar/Vasif-Vagifoglu-Nabiyev/Egitim-Basvuru/Is-Ekonomi-Hukuk/Yonetim-Is-Gelistirme-Kalite/urunno=0000000455400
Şimdilik bu kadar.