Yazılımdan Sıkılmadan Nasıl Öğrenilir? (Mükemmeliyetçilik Tuzağı ve Acı Gerçekler)
Şu an muhtemelen bir yandan bu yazıyı okuyor, diğer yandan yan sekmede açık olan AI penceresine "Lütfen şu kodu düzelt, neden çalışmadığını anlamıyorum, yalvarırım" kıvamında promptlar yazıyorsun. O "hacker" filmlerindeki yeşil akan kodların yerini, AI'nın yazdığı kodu kopyalayıp kendi projenizde patlamasını izlemek ve sonra yine AI'ya bu hatayı neden yaptığını sormak aldı. Hoş geldiniz; modern yazılım dünyasına giriş yaptınız.
Öncelikle bir gerçeği masaya yatıralım: Bilgisayarlar üzerinden bir şeyler üretip para kazanmak, sanılanın aksine kolay ve eğlenceli değildir. Aksine, oldukça mekanik, tekrarlayan ve bazen ruh emici derecede sıkıcı bir iştir. Eğer bunun farkına vardıysan ve "Ben nerede hata yapıyorum?" diyorsan, muhtemelen öğrenme sürecini bir memuriyet disiplinine sokmaya çalışıyorsundur.
Bu yazı, yazılıma yeni başlamış (evet, 6 aydır yazıyor olsanız bile hala yenisiniz) kişiler için bir "hayatta kalma" rehberidir.
"Proje Maymunu" Olun: Bağlanmayın, Keşfedin
Yazılım öğrenmenin tek eğlenceli tarafı nedir biliyor musun? Sürekli farklı bir şeyler üretip, tam sıkılmaya başladığında yenisine geçmek. Eğer daha yolun başındayken tek bir "mükemmel" projeye odaklanmaya çalışırsan, o iş artık senin için bir öğrenme süreci değil, "mesai" haline gelir. Henüz yolun başındayken bir projeye sadık kalmana gerek yok.
- Bir hafta bir bot yaz.
- Sıkılınca hemen basit bir web sitesine geç.
- Oradan sıkılınca bambaşka bir şey dene.
Tek bir projeye saplanıp kalmak, en başından o en sıkıcı yolu seçmektir. Öğrenme aşamasında "maymun iştahlı" olmak bir kusur değil, sizi canlı tutan bir motordur.
Mükemmeliyetçilik: En Büyük Zaman Hırsızı
Yeni başlayanların düştüğü en büyük tuzak, daha ilk satırdan "en temiz" kodu yazmaya çalışmaktır. Mükemmeliyetçilik, öğrenme sürecini öldüren en sıkıcı şeydir. Henüz emeklemeden maraton koşmaya çalışmayın. Kodunuz kirli olsun, "spagetti" olsun ama çalışsın. Onu mükemmelleştirmeye (refactoring) çalışmak, aslında henüz bilmediğiniz kurallarla kendinizi dövmektir. Bırakın o buton yamuk dursun, bırakın o fonksiyon 50 satır olsun. Önemli olan o işin mantığını kavramak, akademik bir sanat eseri üretmek değil.
"Derinlik" Tuzağı: JS mi, Assembly mi?
Kendine kolay yoldan, hızlıca bir şeyler üretebileceğin bir dil seç. JavaScript (JS) veya Python bu konuda rakipsizdir.
"Ben her şeyi en temelinden, donanım seviyesinden öğreneceğim, o yüzden C ile başlıyorum" diyorsan; neden Assembly diliyle başlamıyorsun o zaman? Madem derine iniyoruz, işlemcinin register'larına manuel veri girmeye ne dersin?
Benim tavsiyem kesinlikle JavaScript. Yelpazesi o kadar geniş ki, muhtemelen yapmak istediğin her şeyi bu dilde yapabilirsin. Hızlı sonuç almak, beynindeki dopamin seviyesini canlı tutar.
Hesap Makinesi Yapmayı Bırakın
Kimsenin size "Hadi bir hesap makinesi yap" demesine izin vermeyin. Bunlar dünyanın en ruhsuz projeleri. Aklında küçük de olsa bir proje fikri varsa çok şanslısın, hemen ona başla.
Eğer bir fikrin yoksa, sana meydan okuma (challenge) sunanları dinle. Kendi ihtiyacını belirle: "Benim her gün şu web sitesindeki fiyatları kontrol etmem lazım" de ve onu otomatize etmeye çalış. Bir derdin olsun ki, çözümü için AI'ya yalvarırken bir amacın olsun.
Video İzlemeyi Bırak, Kodun İçine Dal
Şiddetle tavsiye ediyorum: Kodlama videoları izlemeyi bırakın. Birinin kod yazmasını izlemek, birinin spor yapmasını izleyip kaslanmayı beklemek gibidir. İnternetteki o 20 saatlik videolar senin için çok karmaşık veya çok yavaş.
- AI'yı bir hoca gibi kullan: "Şu mantığı nasıl kurarım?" de, kodu al ve ne yaptığını sorgula.
- Kendi kodunu yaz: Birinin 1 saatte anlattığı konuyu, kendin 10 dakikada bozup yaparak çok daha iyi öğrenirsin.
- Forumları kurcala: Kodun bir kısmını forumlarda bulmaya çalışmak, sana gerçek bir "sorun çözme" yeteneği kazandırır.
Kapanış: Sıkılmak Bu İşin Bir "Feature"ıdır
Yazılım öğrenmek bir varış noktası değil, sürekli bozup yeniden yaptığınız dijital bir oyun alanıdır. Eğer aklında bir proje fikrin, çözmek istediğin ufak da olsa bir problemin yoksa maalesef bu işten verim alamayacaksın. Önce kendine "Benim şuna ihtiyacım var" dediğin bir dert bulmalısın.
Sıkılmak, bu işin doğasında var. Ancak o sıkıcılığı, bir bulmacayı çözmenin verdiği o tuhaf tatmine dönüştürdüğünüzde gerçekten ilerlemeye başlarsınız. Mükemmel olmaya çalışmayın, sadece "yapan" olun. Kirli kod yazın, projeleri yarıda bırakın, her hafta yeni bir dile merak salın ama o klavyenin başından kalkmayın.
Çünkü yazılım, sadece kuralları öğrenmek değil; o kuralları kendi merakınızla esnetme sanatıdır. Sıkıldığınızda kulvar değiştirin ama merakınızı asla susturmayın. Şimdi o sohbet penceresine geri dön ve AI'ya o aklındaki "saçma" fikri nasıl yapabileceğini sor.
İyi bozun, iyi yapın.