Bir yemek tarifi düşünün. "Soğanı kavur" adımını defalarca yazmak yerine, bir kez tarif edip ihtiyaç duyduğunuzda "soğanı kavur" diyebilirsiniz. Programlamada fonksiyon nedir sorusunun cevabı tam olarak buna benzer. Fonksiyon nedir programlama açısından tanımlandığında şu karşımıza çıkar: belirli bir görevi yerine getirmek üzere bir araya getirilmiş kod bloğu. Bu blok bir isim alır ve programın herhangi bir yerinden bu isim çağrılarak tekrar tekrar kullanılabilir. Fonksiyon nedir sorusunun arkasında "neden var?" sorusu da yatar. Programlamada en temel sorunlardan biri kod tekrarıdır. Aynı işlemi yapan kod parçası birçok yerde yazılırsa, o işlemde bir değişiklik gerektiğinde her yeri tek tek güncellemek gerekir. Bir tanesi atlanırsa hata çıkar. Fonksiyonlar bu sorunu ortadan kaldırır: tek bir yerde tanımla, istediğin kadar kullan. Fonksiyonun temel yapısı şu unsurlardan oluşur: - **Ad:** Fonksiyona verilen isim. İyi bir isim, fonksiyonun ne yaptığını açıklar. - **Parametre:** Fonksiyona verilen girdi. Her çalışmasında farklı bir değerle çalışmasını sağlar. - **Gövde:** İşin yapıldığı yer. Asıl kod buradadır. - **Dönüş değeri:** Fonksiyonun hesapladığı sonucu çağrıldığı yere geri göndermesi. Örnek olarak basit bir toplama fonksiyonu düşünelim: iki sayıyı alır, toplamı döndürür. Bu fonksiyon programın herhangi bir yerinde iki sayı toplamak gerektiğinde kullanılabilir. Toplama mantığı değişirse, sadece fonksiyonun içi güncellenir; geri kalan her yer otomatik olarak düzelir. Fonksiyon nedir sorusunun bir diğer boyutu okunabilirlik. İyi yazılmış fonksiyonlar, kodu neredeyse İngilizce bir cümle gibi okutabilir. "calculateTotal", "sendEmail", "validateInput" gibi isimler, kodu okuyan birine ne olduğunu anında anlatır. Yeni başlayan programcılar için fonksiyonlar bazen karmaşık görünebilir. Ama bir kez kavrandığında, fonksiyon olmayan kod yazmak zorunda kalmak çok daha zor hissettirmeye başlar. Bu yapı, programlamada düşünme biçimini de değiştirir: her görevi küçük, bağımsız parçalara ayırma alışkanlığı kazandırır.