Yazılımcı Gibi Düşünmek Ne Anlama Gelir?
Steve Jobs’un ünlü bir sözü vardır: "Bu ülkedeki herkesin bilgisayar programlamayı öğrenmesi gerekir. Çünkü bu size nasıl düşüneceğinizi öğretir.” Aslında bu söz ile yazılım dünyasının efsanelerinden biri olan Jobs yazılımcı gibi düşünmenin ne anlama geldiğini sorgulamamızı sağlıyor.
Temelde yazılımcı gibi düşünmek, problem çözme odaklı düşünmek olarak özetlenebilir. Problem çözme, bir yazılımcının profesyonel yaşamında sürekli ihtiyaç duyduğu becerisi olacaktır. Yazılan her kod, küçük ya da büyük bir problemin çözümüdür. Bir çözüm önerisi denenir, işe yaramazsa bir yenisi... En etkin çözüm bulunana kadar bu süreç devam eder.
Peki başarılı bir yazılımcının bir problemle karşılaştığında nasıl bir yol izlemesi gerekir?
Problemi anlayın
Karşınızdaki problem, tam olarak ne anlama geliyor? Zor problemler genellikle çözümü bilmediğimiz için değil, problemi anlamadığımız için zordur. Bu nedenle problemi anlamak, atılması gereken ilk adımdır. Peki bir problemi anladığınızı nasıl bilirsiniz? Eğer problemi basit bir şekilde açıklayabiliyorsanız, anlamışsınız demektir.
Plan yapın
Bir sonraki adımı planlamadan çözüme girişmeyin. Çözümünüzün adımlarını planlayın. Problemi analiz edin ve elinizdeki bilgileri değerlendirin. Pek çok çözüm arasından en iyisini bulana kadar planınızı güncellemekten çekinmeyin. Kodlar arasına yazacağınız yorumlar sayesinde planınızı daha somut halde uygulayabilirsiniz.
Bölümlere ayırın
Bu belki de en önemli adımlardan bir tanesi. Dev bir problemi tek adımda çözmeye çalışırsanız, sonunda büyük pişmanlık yaşayabilirsiniz. Bunun yerine problemi parçalara bölün ve bu alt problemlerin her birini adım adım çözün. En basit olandan başlayın. Daha sonra çözdüğünüz alt problemleri birleştirdiğinizde büyük resmi göreceksiniz.
Hata ayıklama ile barışın
Çözümü her zaman beklediğiniz hızda bulamayabilirsiniz. Derin bir nefes alın, yalnız değilsiniz. Bu herkesin başına geliyor. Bu aşamada, öncelikle hata ayıklama yani debugging devreye giriyor. Adım adım kodun hatalı kısmını inceleyin. Probleme farklı açılardan yaklaşmayı deneyin. Hala sonuca ulaşamıyorsanız forumlarda araştırma yapın. Aynı sorunu yaşayanların nasıl çözümler denediğine bir bakın.
Pratik yapın
Yazılım işinde başarılı olmak istiyorsanız sürekli pratik yapmanız gerekiyor. Ne kadar çok problemle karşılaşırsanız problem çözme beceriniz o kadar gelişir. Sadece bilgisayar başında yaptığınız pratikler değil, satranç, sudoku, Go, Monopoly oynadığınız her an problem çözmeye yaklaşımınızı güçlendirir.